From f9ca72d2c14bc64fce54aa2e8742d7b7f6ff3a35 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期四, 18 四月 2024 00:46:16 +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 | 120 +++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 82 insertions(+), 38 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 d21f912..c050f02 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 @@ -2,7 +2,9 @@ import com.alibaba.cloud.commons.lang.StringUtils; +import com.alibaba.fastjson.JSON; 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; @@ -59,11 +61,11 @@ 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; -import org.springframework.transaction.support.DefaultTransactionStatus; import org.springframework.util.CollectionUtils; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; @@ -78,6 +80,7 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; +import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_TAKEBACK; import static com.vci.ubcs.code.constant.MdmDuckingConstant.*; import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST; import static com.vci.ubcs.code.enumpack.CodeSecTypeEnum.CODE_CLASSIFY_SEC; @@ -111,34 +114,52 @@ @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; @@ -163,16 +184,14 @@ @Autowired(required = false) private MdmSearchItemCodeProvider mdmSearchItemCodeProvider; - @Autowired - HttpServletRequest request; + @Resource + private ICodeAllCodeService codeAllCodeService; @Override public void DockingDataSyncScheduing() { - // insertCache2(); initPushDataTaks(1); sendpushDataForService(); - } /*** @@ -261,7 +280,6 @@ } org.springblade.core.tool.utils.WebUtil.setRequest(new ServletRequestAttributes(request)); } - return request; } @@ -269,7 +287,7 @@ * 鍚屾鍨嬪彿浠e彿 */ @Override - public void saveItemDataSyncScheduing(String endDate) { + public void saveItemDataSyncScheduing(String endDate) throws ServiceException { String paramString=""; String backString="鎴愬姛"; String msg="鎴愬姛"; @@ -283,28 +301,30 @@ 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); + searchItemParam.setIsenabled(""); + searchItemParam.setStatus(itemStatus); + //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(""); + String sendParamString=JSONObject.toJSON(searchItemParam).toString(); + // 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",sendParamString,headers, HttpMethod.POST,MediaType.APPLICATION_JSON); + // String res= mdmSearchItemCodeProvider.getppModelByElem(searchItemParam); + SearchItemVO searchItemVO = JSONObject.toJavaObject(JSONObject.parseObject(res), SearchItemVO.class); if (searchItemVO != null) { + if(!"200".equals(searchItemVO.getStatus())){ + throw new ServiceException(String.format("鎺ュ彛杩斿洖鐘舵�佺爜涓猴細%s锛屽師鍥狅細%s",searchItemVO.getStatus(),searchItemVO.getMessage())); + } BladeUser finalUser; paramString = JSONObject.toJSON(searchItemVO).toString(); log.info("鍨嬪彿浠e彿鏁版嵁鍊�-------銆�"+paramString); @@ -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); } /*** @@ -930,7 +948,7 @@ /*** * 鍙戦�佺紪鐮佷富鏁版嵁 */ - private void sendpushDataForService (List<DockingTask> dockingTaskS){ + private void sendpushDataForService(List<DockingTask> dockingTaskS){ //姣忎釜task渚濇鎵ц鎺ㄩ�� for (DockingTask dockingTask:dockingTaskS){ //姣忎釜task涓�涓簨鍔★紝寮�鍚� @@ -951,9 +969,28 @@ List<CodeClassifyTemplateAttrVO> attrVOS = codeClassifyTemplateVO.getAttributes(); Map<String/**鑻辨枃鍚嶇О**/, String/**涓枃鍚嶇О**/> attrIdNameMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t.getName(), (o1, o2) -> o2)); Map<String, String> data = new HashMap<>(); - if (r == null) { - JSONObject josni = bladeRedis.get(DOCKING_CACHE2_DELETE + btmoid); - data = (Map) josni; + // TODO: 鍥炴敹缂栫爜鐨勬儏鍐碉紝浼氬嚭鐜版暟鎹凡缁忓洖鏀讹紝浣嗘槸浜嬪姟杩樻湭鎵ц鐨勬儏鍐碉紝 + // 瀵艰嚧鍙栦笉鍒扮爜鍊硷紝鎵�浠ヨ繖鍎块�氳繃鏌ヨ鐮佸�艰〃涓瓨鍌ㄧ殑宸插洖鏀剁殑涓氬姟鏁版嵁淇℃伅锛岃В鏋愬嚭鏉� + if (!r.isSuccess() || Func.isEmpty(r.getData())) { + List<CodeAllCode> codeAllCodes = codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getId, dockingTask.getId())); + CodeAllCode codeAllCode = codeAllCodes.get(0); + BaseModel baseModel = JSONObject.parseObject(codeAllCode.getBusinessData(), BaseModel.class); + Map<String, Object> objectMap = VciBaseUtil.objectToMap(baseModel); + for (Map.Entry<String,Object> entry : objectMap.entrySet()){ + if(entry.getKey().equals("data") && Func.isNotEmpty(entry.getValue())){ + Map<String, Object> dataMap = (Map<String,Object>)((JSONObject) entry.getValue()); + for(Map.Entry<String,Object> dataEntry : dataMap.entrySet()){ + String v = String.valueOf(dataEntry.getValue()); + data.put(dataEntry.getKey().toLowerCase(Locale.ROOT), v == null ? "" : v); + } + }else{ + String key = entry.getKey().toLowerCase(Locale.ROOT); + String value = String.valueOf(entry.getValue()); + data.put(key, value == null ? "" : value); + } + } + /*JSONObject josni = bladeRedis.get(DOCKING_CACHE2_DELETE + btmoid); + data = (Map) josni;*/ } else { data = r.getData().get(0); } @@ -983,8 +1020,10 @@ } if(isGroupCodeFlage){ code=data.getOrDefault("groupcode",""); - if(StringUtils.isBlank(code)) {//濡傛灉鏄泦鍥㈢爜锛屾病鏈夐鍙栧埌闆嗗洟鐮佸垯浠诲姟涓嶇粨鏉熺瓑寰呴泦鍥㈢爜鐢宠鍚庡啀閫氳繃瀹氭椂鍣ㄨ皟鐢ㄩ泦鍥㈢爜娈� + if(StringUtils.isBlank(code)) { + //濡傛灉鏄帹閫侀泦鍥㈢爜锛屾病鏈夐鍙栧埌闆嗗洟鐮佸垯浠诲姟涓嶇粨鏉熺瓑寰呴泦鍥㈢爜鐢宠鍚庡啀閫氳繃瀹氭椂鍣ㄨ皟鐢ㄩ泦鍥㈢爜娈� dockingTask.setDescription("绛夊緟闆嗗洟鐢宠闆嗗洟鐮�"); + // TODO锛氬彲鑳戒細鍑虹幇鏈幏鍙栧埌闆嗗洟鐮侊紝浣嗘槸鍙堢珛椹墽琛屼簡鍥炴敹锛屾鏃惰繖鏉′换鍔″氨姘歌繙鏃犳硶缁撴潫,鎵�浠ヨ繖鍎垮垽鏂彧瑕佹槸闆嗗洟鐮佷负绌猴紝骞朵笖鏄洖鏀剁殑灏卞叧闂帹閫佽繖鏉′换鍔� dockingTask.setSendFlag(MdmDuckingConstant.SEND_FLAG_FALSE); dockingTask.setLastModifyTime(new Date()); dockingTaskService.updateById(dockingTask); @@ -1044,7 +1083,7 @@ try { boolean usedFlag= dockingSystemConfig.getUsedFlag().equals("true")?true:false; if(!usedFlag){ - throw new Throwable("鎺ュ彛宸茬粡鍋滅敤锛�"); + throw new Throwable("鎺ュ彛宸茬粡鍋滅敤锛�"); } String type = dockingSystemConfig.getInterfaceType().toLowerCase(Locale.ROOT);//get/post/webserver/corba String paramType = dockingSystemConfig.getParamType();//xml/json @@ -1079,7 +1118,12 @@ for (DockingSysIntHeader dockingSysIntHeader : dockingSysIntHeaderList) { headers.add(dockingSysIntHeader.getHeaderKey(), dockingSysIntHeader.getHeaderValue()); } - backString = HttpUtils.postByMediaType(url, params, headers,MediaType.valueOf(dockingSystemConfig.getContentType())); + 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); @@ -1181,7 +1225,7 @@ /*** * 鏌ヨ闇�瑕侀泦鎴愮殑涓氬姟鏁版嵁浠诲姟 */ - private void sendpushDataForService (){ + private void sendpushDataForService(){ initSysadmin(); //鏌ヨ鍝簺浠诲姟杩樻病鏈夋墽琛屽畬鎴� //VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class); @@ -1201,7 +1245,7 @@ */ private void sendpushClsfForService(){ initSysadmin(); - /* //鏌ヨ鍝簺浠诲姟杩樻病鏈夋墽琛屽畬鎴� + /* //鏌ヨ鍝簺浠诲姟杩樻病鏈夋墽琛屽畬鎴� VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class); queryWrapper.addQueryMap("sendFlag",MdmDuckingConstant.SEND_FLAG_FALSE); queryWrapper.addQueryMap("btmId",DOCKING_DEFAULT_CLASSIFY.toUpperCase(Locale.ROOT)); -- Gitblit v1.9.3