From acb7c4c272aa02c2ed24cde72db429defef9fb8f Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期四, 27 七月 2023 13:54:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |  229 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 153 insertions(+), 76 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index 2d2d0ef..b8a4da5 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -41,6 +41,7 @@
 import com.vci.ubcs.starter.util.UBCSSqlKeyword;
 import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
 import com.vci.ubcs.starter.web.constant.RegExpConstant;
+import com.vci.ubcs.starter.web.constant.VciSystemVarConstants;
 import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
 import com.vci.ubcs.starter.web.enumpck.UserSecretEnum;
 import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
@@ -69,6 +70,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.annotation.Resource;
 import java.beans.BeanInfo;
@@ -357,8 +359,6 @@
         if (baseModels.size() == 0) {
             throw new VciBaseException("鏈煡璇㈠埌鐩稿叧鏁版嵁銆�");
         }
-        // 寰呭畬鍠�
-        List<BtmTypeVO> cboList = null;  // btmTypeClient.selectList(wrapper);
         //杩橀渶瑕佷慨鏀筧llCode鐨勭敓鍛藉懆鏈�
 //		Map<String, String> conditionMap = new HashMap<>();
         QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>();
@@ -374,19 +374,19 @@
             if (!listR.isSuccess() || listR.getData().size() == 0) {
                 throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
             }
-            commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid()));
+			// 鐩存帴鍒犻櫎锛屼笉缁欑姸鎬�
+			commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid()));
+			// commonsMapper.updateByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid()),CodeDefaultLC.TASK_BACK.getValue());
         } else {
             for (BaseModel baseModel : baseModels) {
                 baseModel.setLcStatus(baseModelDTO.getLcStatus());
             }
             updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels);
-            // lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus());
         }
         for (CodeAllCode codeCbo : codeCbos) {
             codeCbo.setLcStatus(baseModelDTO.getLcStatus());
         }
         codeAllCodeService.updateBatchById(codeCbos);
-        // lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
     }
 
     /**
@@ -429,6 +429,7 @@
 		cbo.setLastModifyTime(new Date());
 		cbo.setCreator(AuthUtil.getUser().getUserName());
 		cbo.setLastModifier(AuthUtil.getUser().getUserName());
+		cbo.setTenantId(AuthUtil.getTenantId());
 //		//TODO:鍥犱负榛樿鐨勫睘鎬ч兘涓嶆嫹璐濓紝鐩墠闆嗗洟鐮佸彨name锛屽苟娌℃湁浠嶥TO鎷疯礉鍒癱bo閲屻�傚鍔犱竴涓崟鐙鐞嗭紝浠ュ悗鍐嶇湅瑕佷笉瑕佽皟鏁�
         cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName());
 //		//end -- modify by lihang @20220407
@@ -739,7 +740,7 @@
                 conditionMap.put(queryKey, queryValue);
             } else {
                 //涓虹┖鐨勬椂鍊欎笉浠h〃涓嶆牎楠岋紝鍙槸涓嶅幓闄ょ浉鍏崇殑淇℃伅
-                conditionMap.put("t." + attrId, value);
+                conditionMap.put("t." + attrId, "'" +value+ "'");
             }
         }
     }
@@ -916,7 +917,7 @@
 
 //						baseModels.stream().forEach(model-> {
                         try {
-                            map = VciBaseUtil.convertBean2Map(cbo);
+                            map = VciBaseUtil.convertBean2Map(cbo,null);
                         } catch (Exception e) {
                             throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
                         }
@@ -942,6 +943,26 @@
             }
         }
     }
+
+	/**
+	 * 灏佽寮�鍏崇殑鍐呭锛屽父鐢ㄤ簬瀵煎嚭
+	 * @param dataMap 鏁版嵁鐨勫唴瀹�
+	 * @param templateVO 妯℃澘鐨勬樉绀�
+	 */
+	@Override
+	public void wrapperBoolean(List<Map<String, String>> dataMap, CodeClassifyTemplateVO templateVO){
+		List<String> booleanAttributes = templateVO.getAttributes().stream().filter(s -> VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(s.getAttributeDataType())).map(s -> s.getId().toLowerCase(Locale.ROOT)).collect(Collectors.toList());
+		if(!CollectionUtils.isEmpty(booleanAttributes)){
+			dataMap.stream().forEach(data -> {
+				booleanAttributes.stream().forEach(attrId->{
+					if(data.containsKey(attrId)){
+						String value = data.get(attrId);
+						data.put(attrId,BooleanEnum.TRUE.getValue().equalsIgnoreCase(value)?"鏄�":"鍚�");
+					}
+				});
+			});
+		}
+	}
 
     @Override
     public MdmUIInfoVO getFormDefineByTemplateOid(String templateOid, String codeClassifyOid) {
@@ -971,13 +992,16 @@
         CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
 
         List<UIFormItemVO> itemVOS = new ArrayList<>();
-        Map<String, List<CodeClassifyTemplateAttrVO>> attrGroupMap = templateVO.getAttributes().stream().
-                filter(s -> StringUtils.isNotBlank(s.getAttributeGroup())).collect(Collectors.groupingBy(s -> s.getAttributeGroup()));
 
-        templateVO.getAttributes().forEach(attrVO -> {
-            UIFormItemVO formItemVO = templateAttr2FormField(attrVO, templateVO.getBtmTypeId());
-            itemVOS.add(formItemVO);
-        });
+		Map<String, List<CodeClassifyTemplateAttrVO>> attrGroupMap = new HashMap<>();
+		if (Func.isNotEmpty(templateVO.getAttributes())) {
+			attrGroupMap = templateVO.getAttributes().stream().
+				filter(s -> StringUtils.isNotBlank(s.getAttributeGroup())).collect(Collectors.groupingBy(s -> s.getAttributeGroup()));
+			templateVO.getAttributes().forEach(attrVO -> {
+				UIFormItemVO formItemVO = templateAttr2FormField(attrVO, templateVO.getBtmTypeId());
+				itemVOS.add(formItemVO);
+			});
+		}
         //澶勭悊灞炴�у垎缁�
         if (!CollectionUtils.isEmpty(attrGroupMap)) {
             //鎸夌収鍒嗙粍鐨勫睘鎬ф帓鍒楋紝鎵惧埌姣忎竴涓垎缁勭殑绗竴涓睘鎬�
@@ -1385,7 +1409,16 @@
     public DataGrid<Map<String, String>> queryGrid(String btmType, CodeClassifyTemplateVO templateVO, Map<String, String> conditionMap, PageHelper pageHelper) {
         CodeTemplateAttrSqlBO sqlBO = getSqlByTemplateVO(btmType, templateVO, conditionMap, pageHelper);
 //		List<Map> maps = boService.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
-        List<Map<String, String>> maps = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
+		List<Map<String, String>> maps = null;
+		try {
+			maps = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
+		}catch (Exception e){
+			String errorMessage = e.getMessage();
+			if (errorMessage.contains("鏃犳硶瑙f瀽鐨勬垚鍛樿闂〃杈惧紡")) {
+				throw new ServiceException("缂哄皯"+errorMessage.substring(errorMessage.indexOf("[t.") + 1, errorMessage.indexOf("]"))+"瀛楁");
+			}
+			throw new ServiceException(e.getMessage());
+		}
 
         DataGrid<Map<String, String>> dataGrid = new DataGrid<>();
         List<Map<String, String>> dataList = new ArrayList<>();
@@ -1393,7 +1426,7 @@
             maps.stream().forEach(map -> {
                 Map<String, String> data = new HashMap<>();
                 for (String s : map.keySet()) {
-                    data.put(s.toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
+                    data.put(s.toLowerCase(Locale.ROOT), map.get(s)==null?null:String.valueOf(map.get(s)));
                 }
 //				map.forEach((key, value) -> {
 //					data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
@@ -1448,26 +1481,32 @@
         }
         //鍏堣浆鎹竴涓嬫椂闂存牸寮�
         List<String> finalOnlySelectAttrIdList = onlySelectAttrIdList.stream().collect(Collectors.toList());
-        List<CodeClassifyTemplateAttrVO> dateFormatAttrVOs = templateVO.getAttributes().stream().filter(
-                s -> StringUtils.isNotBlank(s.getCodeDateFormat()) &&
-                        (finalOnlySelectAttrIdList.size() == 0 || finalOnlySelectAttrIdList.contains(s.getId().toLowerCase(Locale.ROOT)))
-        ).collect(Collectors.toList());
-        //鏋氫妇鐨勫唴瀹�
-        List<CodeClassifyTemplateAttrVO> enumAttrVOs = templateVO.getAttributes().stream().filter(
-                s -> (StringUtils.isNotBlank(s.getEnumId()) || StringUtils.isNotBlank(s.getEnumString()))
-                        &&
-                        (finalOnlySelectAttrIdList.size() == 0 || finalOnlySelectAttrIdList.contains(s.getId().toLowerCase(Locale.ROOT)))
-        ).collect(Collectors.toList());
+		List<CodeClassifyTemplateAttrVO> dateFormatAttrVOs = new ArrayList<>();
+		List<CodeClassifyTemplateAttrVO> enumAttrVOs = new ArrayList<>();
+		if (Func.isNotEmpty(templateVO.getAttributes())) {
+			dateFormatAttrVOs = templateVO.getAttributes().stream().filter(
+				s -> StringUtils.isNotBlank(s.getCodeDateFormat()) &&
+					(finalOnlySelectAttrIdList.size() == 0 || finalOnlySelectAttrIdList.contains(s.getId().toLowerCase(Locale.ROOT)))
+			).collect(Collectors.toList());
+			//鏋氫妇鐨勫唴瀹�
+			enumAttrVOs = templateVO.getAttributes().stream().filter(
+				s -> (StringUtils.isNotBlank(s.getEnumId()) || StringUtils.isNotBlank(s.getEnumString()))
+					&&
+					(finalOnlySelectAttrIdList.size() == 0 || finalOnlySelectAttrIdList.contains(s.getId().toLowerCase(Locale.ROOT)))
+			).collect(Collectors.toList());
+		}
 
         List<String> userIds = new ArrayList<>();
-        dataMap.stream().forEach(data -> {
+		List<CodeClassifyTemplateAttrVO> finalDateFormatAttrVOs = dateFormatAttrVOs;
+		List<CodeClassifyTemplateAttrVO> finalEnumAttrVOs = enumAttrVOs;
+		dataMap.stream().forEach(data -> {
             //澶勭悊鏃堕棿
             if (!form) {
                 //琛ㄥ崟鐨勬椂鍊欏彧鑳界敤缁熶竴鐨勬椂闂存牸寮�
-                wrapperDateFormat(dateFormatAttrVOs, data);
+                wrapperDateFormat(finalDateFormatAttrVOs, data);
             }
             //澶勭悊鏋氫妇
-            wrapperEnum(enumAttrVOs, data);
+            wrapperEnum(finalEnumAttrVOs, data);
             String lcstatus = data.get(VciQueryWrapperForDO.LC_STATUS_FIELD);
             String copyFromVersion = data.getOrDefault(COPY_FROM_VERSION, "");
             if ((CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(lcstatus) || CodeDefaultLC.AUDITING.getValue().equalsIgnoreCase(lcstatus))
@@ -1582,17 +1621,25 @@
         //鍥犱负鍙傜収涓嶄竴瀹氭槸鍦ㄥ钩鍙扮殑灞炴�ф睜閲岄潰璁剧疆锛屾墍浠ユ垜浠緱闇�瑕佽嚜琛屽鐞�
         //鍙傝�僔ciQueryWrapper鏉ュ鐞�
         //1. 鎵惧埌鎵�鏈夌殑瀛楁锛�
-        Map<String, CodeClassifyTemplateAttrVO> attrVOMap = templateVO.getAttributes().stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
-        List<String> selectFieldList = attrVOMap.keySet().stream().collect(Collectors.toList());
+		Map<String, CodeClassifyTemplateAttrVO> attrVOMap = new HashMap<>();
+		List<String> selectFieldList = new ArrayList<>();
+		if(Func.isNotEmpty(templateVO.getAttributes())){
+			attrVOMap = templateVO.getAttributes().stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
+			selectFieldList = attrVOMap.keySet().stream().collect(Collectors.toList());
+		}
 
         //鎵�鏈夌殑鍙傜収鐨勫瓧娈�
         Map<String/**灞炴�у瓧娈�**/, String> joinTableList = new ConcurrentHashMap<>();
-        List<CodeClassifyTemplateAttrVO> referAttrVOs = templateVO.getAttributes().stream().filter(
-                s -> StringUtils.isNotBlank(s.getReferBtmId()) || StringUtils.isNotBlank(s.getReferConfig())
-        ).collect(Collectors.toList());
+		List<CodeClassifyTemplateAttrVO> referAttrVOs = null;
+		if (Func.isNotEmpty(templateVO.getAttributes())) {
+			referAttrVOs = templateVO.getAttributes().stream().filter(
+				s -> StringUtils.isNotBlank(s.getReferBtmId()) || StringUtils.isNotBlank(s.getReferConfig())
+			).collect(Collectors.toList());
+		}
         Map<String/**鍙傜収鐨勫睘鎬�**/, String/**瀹為檯鐨勫瓧娈�**/> referFieldMap = new ConcurrentHashMap<>();
         if (!CollectionUtils.isEmpty(referAttrVOs)) {
-            referAttrVOs.parallelStream().forEach(attrVO -> {
+			List<String> finalSelectFieldList = selectFieldList;
+			referAttrVOs.parallelStream().forEach(attrVO -> {
                 UIFormReferVO referVO = null;
                 if (StringUtils.isNotBlank(attrVO.getReferConfig())) {
                     referVO = JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class);
@@ -1622,7 +1669,7 @@
                     showFieldInSource = textFields.get(0);
                 }
                 referFieldMap.put(attrVO.getId(), referTableNick + "." + showFieldInSource);
-                selectFieldList.add(referTableNick + "." + showFieldInSource + " as " + referShowField);
+                finalSelectFieldList.add(referTableNick + "." + showFieldInSource + " as " + referShowField);
             });
         }
         R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getDefaultAttrByBtmId(btmType);
@@ -1666,11 +1713,12 @@
                 }
             });
 
-            andCondtionMap.forEach((k, v) -> {
-                andSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, attrVOMap, btmType));
+			Map<String, CodeClassifyTemplateAttrVO> finalAttrVOMap = attrVOMap;
+			andCondtionMap.forEach((k, v) -> {
+                andSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, finalAttrVOMap, btmType));
             });
             orConditionMap.forEach((k, v) -> {
-                orSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, attrVOMap, btmType));
+                orSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, finalAttrVOMap, btmType));
             });
         }
         //缁勫悎璧锋潵
@@ -1985,7 +2033,7 @@
         }
         R<BtmTypeVO> r = btmTypeClient.getDefaultAttrByBtmId(btmType);
         List<BtmTypeAttributeVO> attributes = r.getData().getAttributes();
-        if (r.getCode() != 200 || attributes.isEmpty()) {
+        if (!r.isSuccess() || attributes.isEmpty()) {
             return false;
         }
         return attributes.stream().anyMatch(item -> item.getId().equals(selectKey));
@@ -2006,13 +2054,21 @@
             sql.append("t.");
         }
         if (value.startsWith(QueryOptionConstant.IN)) {
-            sql.append(selectKey)
+            if(value.startsWith(QueryOptionConstant.IN+"('") && value.endsWith("')")){
+				sql.append(selectKey)
+					.append(SPACE)
+					.append("in")
+					.append(SPACE)
+					.append(value.replace(QueryOptionConstant.IN, ""));
+			}else{
+				sql.append(selectKey)
                     .append(SPACE)
                     .append("in")
                     .append(SPACE)
                     .append("(")
                     .append(value.replace(QueryOptionConstant.IN, ""))
                     .append(")");
+			}
         } else if (value.startsWith(QueryOptionConstant.NOTIN)) {
             sql.append(selectKey)
                     .append(SPACE)
@@ -2911,38 +2967,43 @@
         List<UITableFieldVO> fieldVOList = new ArrayList<>();
         Map<String, String> comboxOrReferFieldMap = new HashMap<>();
 
-        templateVO.getAttributes().forEach(attrVO -> {
-            UITableFieldVO tableFieldVO = templateAttr2TableField(attrVO, forEdit);
-            if ("combox".equalsIgnoreCase(tableFieldVO.getFieldType())) {
-                comboxOrReferFieldMap.put(tableFieldVO.getSortField(), tableFieldVO.getField());
-            }
-            if ("refer".equalsIgnoreCase(tableFieldVO.getFieldType())) {
-                comboxOrReferFieldMap.put(tableFieldVO.getSortField(), tableFieldVO.getField());
-            }
-            if (StringUtils.isNotBlank(tableFieldVO.getEdit())) {
-                tableDefineVO.setHasEditor(true);
-            }
-            fieldVOList.add(tableFieldVO);
-        });
+		if (Func.isNotEmpty(templateVO.getAttributes())) {
+			templateVO.getAttributes().forEach(attrVO -> {
+				UITableFieldVO tableFieldVO = templateAttr2TableField(attrVO, forEdit);
+				if ("combox".equalsIgnoreCase(tableFieldVO.getFieldType())) {
+					comboxOrReferFieldMap.put(tableFieldVO.getSortField(), tableFieldVO.getField());
+				}
+				if ("refer".equalsIgnoreCase(tableFieldVO.getFieldType())) {
+					comboxOrReferFieldMap.put(tableFieldVO.getSortField(), tableFieldVO.getField());
+				}
+				if (StringUtils.isNotBlank(tableFieldVO.getEdit())) {
+					tableDefineVO.setHasEditor(true);
+				}
+				fieldVOList.add(tableFieldVO);
+			});
+		}
         List<List<UITableFieldVO>> cols = new ArrayList<>();
         cols.add(fieldVOList);
         tableDefineVO.setCols(cols);
         Map<String, UITableFieldVO> fieldVOMap = fieldVOList.stream().collect(Collectors.toMap(s -> s.getField().toLowerCase(Locale.ROOT), t -> t));
-        //鏌ヨ灞炴��
-        List<CodeClassifyTemplateAttrVO> queryAttrVOs = templateVO.getAttributes().stream().filter(s -> BooleanEnum.TRUE.getValue().equalsIgnoreCase(s.getQueryAttrFlag())).collect(Collectors.toList());
-        if (!CollectionUtils.isEmpty(queryAttrVOs)) {
-            List<UITableFieldVO> queryFieldVOs = new ArrayList<>();
-            queryAttrVOs.stream().forEach(attrVO -> {
-                String attrId = attrVO.getId().toLowerCase(Locale.ROOT);
-                attrId = comboxOrReferFieldMap.getOrDefault(attrId, attrVO.getId()).toLowerCase(Locale.ROOT);
-                if (fieldVOMap.containsKey(attrId)) {
-                    queryFieldVOs.add(fieldVOMap.get(attrId));
-                }
-            });
-            tableDefineVO.setQueryColumns(queryFieldVOs);
-        }
-        //楂樼骇灞炴��
-        List<CodeClassifyTemplateAttrVO> seniorQueryAttrVOs = templateVO.getAttributes().stream().filter(s -> BooleanEnum.TRUE.getValue().equalsIgnoreCase(s.getSeniorQueryAttrFlag())).collect(Collectors.toList());
+		List<CodeClassifyTemplateAttrVO> seniorQueryAttrVOs = null;
+		if (Func.isNotEmpty(templateVO.getAttributes())) {
+			//鏌ヨ灞炴��
+			List<CodeClassifyTemplateAttrVO> queryAttrVOs = templateVO.getAttributes().stream().filter(s -> BooleanEnum.TRUE.getValue().equalsIgnoreCase(s.getQueryAttrFlag())).collect(Collectors.toList());
+			if (!CollectionUtils.isEmpty(queryAttrVOs)) {
+				List<UITableFieldVO> queryFieldVOs = new ArrayList<>();
+				queryAttrVOs.stream().forEach(attrVO -> {
+					String attrId = attrVO.getId().toLowerCase(Locale.ROOT);
+					attrId = comboxOrReferFieldMap.getOrDefault(attrId, attrVO.getId()).toLowerCase(Locale.ROOT);
+					if (fieldVOMap.containsKey(attrId)) {
+						queryFieldVOs.add(fieldVOMap.get(attrId));
+					}
+				});
+				tableDefineVO.setQueryColumns(queryFieldVOs);
+			}
+			//楂樼骇灞炴��
+			seniorQueryAttrVOs = templateVO.getAttributes().stream().filter(s -> BooleanEnum.TRUE.getValue().equalsIgnoreCase(s.getSeniorQueryAttrFlag())).collect(Collectors.toList());
+		}
         if (!CollectionUtils.isEmpty(seniorQueryAttrVOs)) {
             List<UITableFieldVO> queryFieldVOs = new ArrayList<>();
             seniorQueryAttrVOs.stream().forEach(attrVO -> {
@@ -3229,11 +3290,19 @@
         if (!listR.isSuccess() || listR.getData().size() == 0) {
             throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
         }
-        //灏哹ean杞负map,mybatis缁熶竴澶勭悊
+		//鑾峰彇褰撳墠涓氬姟绫诲瀷鎵�鏈夊瓧娈电敤鏉ュ仛瀵规瘮
+		R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(btmType);
+		if (!allAttributeByBtmId.isSuccess() || allAttributeByBtmId.getData().getAttributes().size() == 0) {
+			throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲瀛楁淇℃伅锛岃妫�鏌ワ紒");
+		}
+		Set<String> existFild = allAttributeByBtmId.getData().getAttributes().stream().map(btmTypeAttributeVO -> {
+			return btmTypeAttributeVO.getId();
+		}).collect(Collectors.toSet());
+		//灏哹ean杞负map,mybatis缁熶竴澶勭悊
         List<Map<String, String>> maps = new ArrayList<>();
         baseModels.stream().forEach(model -> {
             try {
-                maps.add(VciBaseUtil.convertBean2Map(model));
+                maps.add(VciBaseUtil.convertBean2Map(model,existFild));
             } catch (Exception e) {
                 throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.toString());
             }
@@ -3384,12 +3453,20 @@
         if (!listR.isSuccess() || listR.getData().size() == 0) {
             throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
         }
+		//鑾峰彇褰撳墠涓氬姟绫诲瀷鎵�鏈夊瓧娈电敤鏉ュ仛瀵规瘮
+		R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(btmType);
+		if (!allAttributeByBtmId.isSuccess() || allAttributeByBtmId.getData().getAttributes().size() == 0) {
+			throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲瀛楁淇℃伅锛岃妫�鏌ワ紒");
+		}
+		Set<String> existFild = allAttributeByBtmId.getData().getAttributes().stream().map(btmTypeAttributeVO -> {
+			return btmTypeAttributeVO.getId();
+		}).collect(Collectors.toSet());
         //灏哹ean杞负map,mybatis缁熶竴澶勭悊
         List<Map<String, String>> maps = new ArrayList<>();
 
         baseModels.stream().forEach(model -> {
             try {
-                maps.add(VciBaseUtil.convertBean2Map(model));
+                maps.add(VciBaseUtil.convertBean2Map(model,existFild));
             } catch (Exception e) {
                 throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
             }
@@ -3415,7 +3492,7 @@
         //checkReferConfig(referConfigVO);
         //浣跨敤涓氬姟绫诲瀷鏌ヨ
         R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(referConfigVO.getReferType());
-        if (allAttributeByBtmId.getCode() != 200) {
+        if (!allAttributeByBtmId.isSuccess()) {
             throw new ServiceException("涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�");
         }
         if (Func.isEmpty(allAttributeByBtmId.getData())) {
@@ -3437,7 +3514,7 @@
         }
 
         R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referConfigVO.getReferType()));
-        if (listR.getCode() != 200) {
+        if (!listR.isSuccess()) {
             throw new ServiceException(Func.isNotBlank(listR.getMsg()) ? listR.getMsg() : "涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�");
         }
         if (listR.getData().isEmpty()) {
@@ -3459,7 +3536,7 @@
 
         String lcstatusSql = "";
         if (StringUtils.isNotBlank(baseQueryObject.getConditionMap().get("lcstatus"))) {
-            lcstatusSql = "lcstatus =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lcstatus"));
+            lcstatusSql = "and lcstatus =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lcstatus"));
         }
 //        String where = "";
 
@@ -3472,7 +3549,7 @@
 
         List<Map> maps = commonsMapper.selectBySql("select * from ( select rownum rn, t.* from (select * from " + listR.getData().get(0).getTableName() + SPACE
                 + (StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId()) ? (" where lastr = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastr").toString())
-                + " and lastv =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1 and "
+                + " and lastv =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1 "
                 + lcstatusSql + namesql + codesql + ") t where rownum <=" + num1 + ") where rn >=" + num2
         );
         List<BaseModel> baseModels = new ArrayList<>();
@@ -3516,7 +3593,7 @@
         }
         int total = commonsMapper.queryCountBySql("select count(*) from " + listR.getData().get(0).getTableName() + SPACE
                 + (StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId()) ? (" where lastr = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastr").toString())
-                + "and lastv = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1 and "
+                + "and lastv = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1 "
                 + lcstatusSql + namesql + codesql
         );
         IPage<BaseModel> objectDataGrid = new Page<>();

--
Gitblit v1.9.3