From 2f3ddd502ceda48df79c63b3c0b5654585a04ddf Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期一, 19 六月 2023 11:38:18 +0800
Subject: [PATCH] 统一接口bug完善

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java |  167 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 105 insertions(+), 62 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
index 45a0980..4221c45 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -9,6 +9,7 @@
 import com.vci.ubcs.code.dto.CodeOrderDTO;
 import com.vci.ubcs.code.dto.CodeOrderSecDTO;
 import com.vci.ubcs.code.entity.*;
+import com.vci.ubcs.code.enumpack.CodeDefaultLC;
 import com.vci.ubcs.code.enumpack.CodeSecTypeEnum;
 import com.vci.ubcs.code.mapper.CommonsMapper;
 import com.vci.ubcs.code.service.*;
@@ -29,6 +30,7 @@
 import com.vci.ubcs.code.wrapper.CodeClassifyWrapper;
 import com.vci.ubcs.omd.feign.IBtmTypeClient;
 import com.vci.ubcs.omd.vo.BtmTypeVO;
+import com.vci.ubcs.starter.revision.model.BaseModel;
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
 import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
 import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
@@ -591,73 +593,112 @@
 			String classCode=condtionVO.getClassCode();
 			String library= condtionVO.getLibrary();
 			String queryFileds= condtionVO.getQueryFileds();
+			if(StringUtils.isBlank(library)){
+				errorid = "101";
+				msg = "鎺ュ彛鍙傛暟锛歭ibrary 涓簄ull";
+				throw new Throwable(msg);
+			}
 
-			List<CodeClassifyVO> codeClassifyVOS =new ArrayList<>();
 			//鍏堢畝绉版槸鍚︽湁鍏宠仈妯℃澘锛屾湁妯℃澘瑕佸厛鍒犻櫎
-			List<CodeClassify> libIdDos =classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId,VciBaseUtil.toInSql(classCode)));
+
+			List<CodeClassify> libIdDos =classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId,library));
 			if(!CollectionUtils.isEmpty(libIdDos)){
-				CodeClassify currentCodeClassify=libIdDos.get(0);
-				String oid=currentCodeClassify.getOid();
-				TreeQueryObject treeQueryObject=new TreeQueryObject();
-				treeQueryObject.setParentOid(oid);
-				treeQueryObject.setQueryAllLevel(true);
-				codeClassifyVOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject);
-				codeClassifyVOS.add(CodeClassifyWrapper.build().entityVO(currentCodeClassify));
-				Map<String, CodeClassifyVO> oidCodeclassifyDOMap = codeClassifyVOS.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
-
-				List<PropertyVO>  propertyVOS=condtionVO.getPro();
-				Map<String,String> condtionMap=new HashMap<>();
-				propertyVOS.stream().forEach(propertyVO -> {
-					condtionMap.put(propertyVO.getFiledName(),propertyVO.getFiledValue());
-				});
-				condtionMap.put("codeclsfid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oidCodeclassifyDOMap.keySet().toArray(new String[0])) + ")");
-
-				R<BtmTypeVO> r= btmTypeClient.getDetail(library);
-				BtmTypeVO btmTypeVO =r.getData();
-				String tableName=btmTypeVO.getTableName();
-
-				StringBuffer sb=new StringBuffer();
-				sb.append(" select * from ");
-				sb.append(tableName);
-				sb.append(" where 1=1 ");
-				sb.append(" id in (");
-				sb.append( VciBaseUtil.toInSql(oidCodeclassifyDOMap.keySet().toArray(new String[0])) );
-				sb.append(")");
-
-				List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap( sb.toString());
-				List<ClientBusinessObject> clientBusinessObjects=ChangeMapTOClientBusinessObjects(dataMapList);
-				List<com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO> dataObjectVOS=new ArrayList<>();
-				if(!CollectionUtils.isEmpty(clientBusinessObjects)){
-					CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(currentCodeClassify.getOid());
-					Map<String, CodeClassifyTemplateAttrVO> filedAttributeMap = templateVO.getAttributes().stream().filter(attribute -> attribute != null && StringUtils.isNotBlank(attribute.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
-
-					clientBusinessObjects.stream().forEach(cbo -> {
-						com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO dataObjectVO=new com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO();
-						dataObjectVO.setCode(cbo.getId());
-						dataObjectVO.setStatus(cbo.getLcStatus());
-						String codeclsfid=cbo.getAttributeValue("codeclsfid");
-						if(oidCodeclassifyDOMap.containsKey(codeclsfid)){
-							CodeClassifyVO classifyVO=  oidCodeclassifyDOMap.get(codeclsfid);
-							dataObjectVO.setClassCode(classifyVO.getId());
+				CodeClassify libCodeClassify=libIdDos.get(0);
+				List<CodeClassify> codeClassifyList=classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId,classCode));
+				if(!CollectionUtils.isEmpty(codeClassifyList)){
+					final CodeClassify[] currentCodeClassify = {null};
+					codeClassifyList.stream().forEach(codeClassify -> {
+						CodeClassifyVO codeClassifyVO=  classifyService.getTopClassifyVO(codeClassify.getOid());
+						if(codeClassifyVO.getOid().equals(libCodeClassify.getOid())){
+							currentCodeClassify[0] =codeClassify;
 						}
-						dataObjectVO.setLibrary(library);
-						String [] newQueryFileds=queryFileds.split(",");
-						List<PropertyVO> propertyVOList=new ArrayList<>();
-						for(String filed:newQueryFileds){
-							String value=cbo.getAttributeValue(filed);
-							if(filedAttributeMap.containsKey(filed)){
-								CodeClassifyTemplateAttrVO attrVO=  filedAttributeMap.get(filed);
-								PropertyVO propertyVO=new PropertyVO();
-								propertyVO.setFiledName(filed);
-								propertyVO.setFiledValue(value);
-								propertyVO.setOutname(attrVO.getName());
-								propertyVOList.add(propertyVO);
-							}
-						}
-						dataObjectVO.setPro(propertyVOList);
-						dataObjectVOS.add(dataObjectVO);
 					});
-					resultDataVO.setObject(dataObjectVOS);
+					if(currentCodeClassify[0]==null){
+						errorid = "101";
+						msg = "鎺ュ彛鍙傛暟锛歝lassCode 鏈煡璇㈠埌瀵瑰簲鐨勫垎绫讳俊鎭�";
+						throw new Throwable(msg);
+					}
+					List<CodeClassifyVO> dataCodeClassifyVOList =new ArrayList<>();
+					String oid= currentCodeClassify[0].getOid();
+					TreeQueryObject treeQueryObject=new TreeQueryObject();
+					treeQueryObject.setParentOid(oid);
+					treeQueryObject.setQueryAllLevel(true);
+					dataCodeClassifyVOList=classifyService.selectCodeClassifyDOByTree(treeQueryObject);
+					dataCodeClassifyVOList.add(CodeClassifyWrapper.build().entityVO(currentCodeClassify[0]));
+					Map<String, CodeClassifyVO> oidCodeclassifyDOMap = dataCodeClassifyVOList.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
+
+					List<PropertyVO>  propertyVOS=condtionVO.getPro();
+					/*Map<String,String> condtionMap=new HashMap<>();
+					propertyVOS.stream().forEach(propertyVO -> {
+						condtionMap.put(propertyVO.getFiledName(),propertyVO.getFiledValue());
+					});
+					condtionMap.put("codeclsfid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oidCodeclassifyDOMap.keySet().toArray(new String[0])) + ")");
+					List<String>statusList=new ArrayList<>();
+					statusList.add(CodeDefaultLC.RELEASED.getValue());
+					statusList.add(CodeDefaultLC.DISABLE.getValue());
+					statusList.add(CodeDefaultLC.TASK_BACK.getValue());
+					condtionMap.put("Lcstatus",  QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(statusList.toArray(new String[]{})) + ")" );
+					condtionMap.put("islastr", "1");
+					condtionMap.put("islastv", "1");*/
+					List<String>statusList=new ArrayList<>();
+					statusList.add(CodeDefaultLC.RELEASED.getValue());
+					statusList.add(CodeDefaultLC.DISABLE.getValue());
+					statusList.add(CodeDefaultLC.TASK_BACK.getValue());
+					R<BtmTypeVO>  r= btmTypeClient.getDetail(libCodeClassify.getBtmTypeId());
+					BtmTypeVO btmTypeVO =r.getData();
+					String tableName=btmTypeVO.getTableName();
+
+					StringBuffer sb=new StringBuffer();
+					sb.append(" select * from  ");
+					sb.append(tableName);
+					sb.append(" where 1=1");
+					propertyVOS.stream().forEach(propertyVO -> {
+						sb.append( " and  "+propertyVO.getFiledName()+"='"+propertyVO.getFiledValue()+"'");
+					});
+					sb.append(" and islastr=1 and islastv=1" );
+					sb.append(" and codeclsfid in (" + VciBaseUtil.toInSql(oidCodeclassifyDOMap.keySet().toArray(new String[0])) +")");
+					sb.append(" and Lcstatus in (" + VciBaseUtil.toInSql(statusList.toArray(new String[]{})) +")");
+					List<Map<String,String>>  newDataList= commonsMapper.queryByOnlySqlForMap(sb.toString());
+					List<ClientBusinessObject>clientBusinessObjects=new ArrayList<>();
+					newDataList.stream().forEach(stringStringMap -> {
+						ClientBusinessObject clientBusinessObject=new ClientBusinessObject();
+						DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,clientBusinessObject);
+						clientBusinessObjects.add(clientBusinessObject);
+					});
+
+					List<com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO> dataObjectVOS=new ArrayList<>();
+					if(!CollectionUtils.isEmpty(clientBusinessObjects)){
+						CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(currentCodeClassify[0].getOid());
+						Map<String, CodeClassifyTemplateAttrVO> filedAttributeMap = templateVO.getAttributes().stream().filter(attribute -> attribute != null && StringUtils.isNotBlank(attribute.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
+
+						clientBusinessObjects.stream().forEach(cbo -> {
+							com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO dataObjectVO=new com.vci.ubcs.code.vo.webserviceModel.data.DataObjectVO();
+							dataObjectVO.setCode(cbo.getId());
+							dataObjectVO.setStatus(cbo.getLcStatus());
+							String codeclsfid=cbo.getAttributeValue("codeclsfid");
+							if(oidCodeclassifyDOMap.containsKey(codeclsfid)){
+								CodeClassifyVO codeClassifyVO=  oidCodeclassifyDOMap.get(codeclsfid);
+								dataObjectVO.setClassCode(codeClassifyVO.getId());
+							}
+							dataObjectVO.setLibrary(library);
+							String [] newQueryFileds=queryFileds.split(",");
+							List<PropertyVO> propertyVOList=new ArrayList<>();
+							for(String filed:newQueryFileds){
+								String value=cbo.getAttributeValue(filed);
+								if(filedAttributeMap.containsKey(filed)){
+									CodeClassifyTemplateAttrVO attrVO=  filedAttributeMap.get(filed);
+									PropertyVO propertyVO=new PropertyVO();
+									propertyVO.setFiledName(filed);
+									propertyVO.setFiledValue(value);
+									propertyVO.setOutname(attrVO.getName());
+									propertyVOList.add(propertyVO);
+								}
+							}
+							dataObjectVO.setPro(propertyVOList);
+							dataObjectVOS.add(dataObjectVO);
+						});
+						resultDataVO.setObject(dataObjectVOS);
+					}
 				}
 			}
 			errorid = "0";
@@ -690,6 +731,8 @@
 		return resultStr;
 	}
 
+
+
 	@Override
 	public String queryClassifyRule(String data, String dataType) throws Throwable {
 

--
Gitblit v1.9.3