From c327574106f470c72638e9f34c7f8cd26d78a2bf Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 24 一月 2024 23:48:36 +0800 Subject: [PATCH] 分类授权,数据授权接口修改 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 96 insertions(+), 8 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 ae522ff..e963093 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 @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; +import com.vci.ubcs.code.applyjtcodeservice.feign.MdmApplyGroupCodeProvider; import com.vci.ubcs.code.constant.MdmDuckingConstant; import com.vci.ubcs.code.dto.datapush.classify.JsonRootDataDTO; import com.vci.ubcs.code.dto.datapush.classify.NodeClassifyDTO; @@ -21,19 +22,23 @@ import com.vci.ubcs.code.dto.datapush.result.ResultNodeObjectDTO; import com.vci.ubcs.code.entity.*; import com.vci.ubcs.code.enumpack.SysIntegrationDataFlowTypeEnum; +import com.vci.ubcs.code.feign.MdmSearchItemCodeProvider; +import com.vci.ubcs.code.mapper.CommonsMapper; import com.vci.ubcs.code.service.*; +import com.vci.ubcs.code.vo.pagemodel.*; +import com.vci.ubcs.omd.feign.IBtmTypeClient; +import com.vci.ubcs.omd.vo.BtmTypeVO; import com.vci.ubcs.starter.util.HttpUtils; import com.vci.ubcs.code.util.WsErpClientUtil; -import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO; -import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO; -import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; import com.vci.ubcs.starter.web.enumpck.UserSecretEnum; import com.vci.ubcs.starter.web.pagemodel.SessionInfo; import com.vci.ubcs.starter.web.util.VciBaseUtil; import com.vci.ubcs.starter.web.util.WebUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.util.StringUtil; import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.tool.api.R; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -60,8 +65,22 @@ public class CodeDuckingSyncServiceImpl implements ICodeDuckingSyncService { @Value("${dataSyncPush.dataParamName:xmlData}") public String DATA_PARAM_NAME; - @Value("${dataSyncPush.dataId:itemOid}") + @Value("${dataSyncPush.dataId:itemid}") private String itemId; + + @Value("${erp.item.attrKey:xhdh}") + public String attrKey; + + /** + * 涓氬姟绫诲瀷鐨勬湇鍔� + */ + @Autowired + private IBtmTypeClient btmTypeClient; + /** + * 閫氱敤鏌ヨ + */ + @Resource + private CommonsMapper commonsMapper; @Resource private MdmEngineService mdmEngineServiceI; @@ -84,7 +103,8 @@ private IDockingSysIntParamService dockingSysIntParamService; @Resource private IDockingSysIntHeaderService dockingSysIntHeaderService; - + @Autowired(required = false) + private MdmSearchItemCodeProvider mdmSearchItemCodeProvider; @Override @@ -147,6 +167,74 @@ } }); return R.success("鎵嬪姩鎺ㄩ�佸畬鎴�,璇锋牳瀵规槸鍚︽帹閫佹垚鍔�"); + } + + /*** + * 鍚屾鍨嬪彿浠e彿 + */ + @Override + public void saveItemDataSyncScheduing(String btmName) { + SearchItemParam searchItemParam=new SearchItemParam(); + searchItemParam.setSystag("CODE"); //璋冪敤绯荤粺鏍囪瘑 + searchItemParam.setLastchangedon(new Date()); + searchItemParam.setStatus("1");// + SearchItemVO searchItemVO= mdmSearchItemCodeProvider.getppModelByElem(searchItemParam); + if(searchItemVO!=null) { + searchItemVO.getCode(); + searchItemVO.getMsg(); + List<CodeClassify> codeClassifyList = codeClassifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, btmName)); + try { + if (CollectionUtils.isEmpty(codeClassifyList)) { + throw new Throwable("鍒嗙被鏈煡璇㈠埌"); + } + CodeClassify codeClassify= codeClassifyList.get(0); + List<SearchItemDataVO> dataList = searchItemVO.getData(); + Map<String, SearchItemDataVO> dataVOMap = new HashMap<>(); + List<String> itemCodeList = new ArrayList<>(); + if (!CollectionUtils.isEmpty(dataList)) { + dataList.stream().forEach(searchItemDataVO -> { + String itemCode = StringUtils.isNotBlank(searchItemDataVO.getProjectitem()) ? searchItemDataVO.getProjectitem() : searchItemDataVO.getMmodelcode();//椤圭洰浠e彿 + dataVOMap.put(itemCode, searchItemDataVO); + itemCodeList.add(itemCode); + }); + String tableName = ""; + R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(btmName); + if (!r.isSuccess()) { + throw new Throwable(r.getMsg()); + } + BtmTypeVO btmTypeVO = r.getData(); + if (btmTypeVO == null) { + throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷瀵硅薄锛�"); + } + tableName = btmTypeVO.getTableName(); + if (com.alibaba.nacos.common.utils.StringUtils.isBlank(tableName)) { + throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷鐩稿叧鑱旂殑琛�"); + } + StringBuffer sb = new StringBuffer(); + sb.append(" select * from "); + sb.append(tableName); + sb.append(" where 1=1"); + sb.append(" and lastr=1 and lastv=1"); + sb.append(" and codeclsfid = '" + codeClassify.getOid() + "'"); + List<Map<String, String>> newDataList = commonsMapper.queryByOnlySqlForMap(sb.toString()); + newDataList.stream().forEach(dataMap->{ + String value= dataMap.getOrDefault(attrKey,""); + if(dataVOMap.containsKey(attrKey)){ + SearchItemDataVO searchItemDataVO=dataVOMap.get(attrKey); + + }else{ + + + } + + }); + + } + } + catch (Throwable e){ + log.error("鏌ヨ澶辫触--->"+e); + } + } } @@ -520,7 +608,7 @@ log.error("璋冪敤鎺ュ彛澶辫触:"+e); // throw new Throwable("璋冪敤鎺ュ彛澶辫触:"+e); ResultNodeObjectDTO resultNodeObjectDTO=new ResultNodeObjectDTO(); - resultNodeObjectDTO.setErroid("0"); + resultNodeObjectDTO.setErroid("1"); resultNodeObjectDTO.setMsg(msg); resultNodeObjectDTO.setCode(dockingSystemConfig.getPushType().equalsIgnoreCase("2")?dockingTask.getClassifyId():dockingTask.getId()); resultNodeObjectDTO.setItemid(dockingTask.getBtmOid()); @@ -530,9 +618,9 @@ for (ResultNodeObjectDTO resultNodeObjectDTO:resultNodeObjectDTOS){ String erroid = resultNodeObjectDTO.getErroid(); msg = resultNodeObjectDTO.getMsg(); - if("1".equals(erroid)){ + if("0".equals(erroid)){ isSend = true; - }else if("0".equals(erroid)){ + }else if("1".equals(erroid)){ isSend=false; }else{ isSend=false; -- Gitblit v1.9.3