From 89e0771dbaba5678debfc783a4359fb36730b812 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 31 一月 2024 12:14:43 +0800
Subject: [PATCH] bug列表296首页统计查询配置方式调整一下,配置方式和主数据授权按钮查询冲突,业务类型提示信息修改

---
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/controller/DdlController.java           |    3 
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/AttributeController.java     |   14 ++--
 Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue                                                       |    3 
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/IDdlService.java                |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java |   48 ++++++++++++----
 Source/UBCS-WEB/src/views/modeling/BusinessEdit.vue                                                      |    3 
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml                      |   22 ++-----
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java        |   26 +++++---
 8 files changed, 73 insertions(+), 49 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue b/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
index 45f1e48..3289b7c 100644
--- a/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
+++ b/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
@@ -646,8 +646,9 @@
       }
       this.btmType.attributes = this.btmType.attributes.filter(item => !item.isDefaultAttr);
       add(this.btmType, true).then(res => {
+        // console.log(res)
         // 娣诲姞瀹屾垚锛屽洖璋冪埗缁勪欢鐨勫埛鏂�
-        this.$message.success('淇濆瓨鎴愬姛');
+        this.$message.success(res.data.msg);
         this.cancleSubmitBtmType();
         this.$emit('refreshTable');
       })
diff --git a/Source/UBCS-WEB/src/views/modeling/BusinessEdit.vue b/Source/UBCS-WEB/src/views/modeling/BusinessEdit.vue
index 6153267..1abbe6e 100644
--- a/Source/UBCS-WEB/src/views/modeling/BusinessEdit.vue
+++ b/Source/UBCS-WEB/src/views/modeling/BusinessEdit.vue
@@ -682,8 +682,9 @@
       }
       this.btmType.attributes = this.btmType.attributes.filter(item => !item.isDefaultAttr);
       add(this.btmType,true).then(res => {
+        // console.log(res)
         // 娣诲姞瀹屾垚锛屽洖璋冪埗缁勪欢鐨勫埛鏂�
-        this.$message.success('淇濆瓨鎴愬姛');
+        this.$message.success(res.data.msg);
         this.cancleSubmitBtmType();
         this.$emit('refreshTable');
       })
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
index 9fbee7b..133d250 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmCountServiceImpl.java
@@ -7,6 +7,7 @@
 import com.vci.ubcs.code.mapper.CommonsMapper;
 import com.vci.ubcs.code.service.ICodeClassifyService;
 import com.vci.ubcs.code.service.IMdmCountService;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import com.vci.ubcs.system.entity.MdmCountConfig;
 import com.vci.ubcs.system.entity.Menu;
 import com.vci.ubcs.system.feign.ISysClient;
@@ -18,10 +19,9 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import static com.vci.ubcs.starter.web.util.VciBaseUtil.getTableName;
@@ -58,18 +58,24 @@
 		if(Func.isBlank(userId) && Func.isBlank(AuthUtil.getUserId().toString())){
 			throw new ServiceException("蹇呬紶鍙傛暟鐢ㄦ埛id涓嶈兘涓虹┖");
 		}
-		/** 1銆佸厛鏌ヨ鍑哄悇鍒嗙被椤跺眰鑺傜偣鏈夊摢浜涗富鏁版嵁,鎷垮埌涓氬姟绫诲瀷鍚嶇О锛岀浉褰撲簬鎷垮埌涓绘暟鎹〃鍚�
-			椤跺眰鑺傜偣鐨刡tmtypeid杩橀渶瑕佺敤浣滄煡璇㈡潯浠跺搴旂殑鑿滃崟琛ㄧ殑code瀛楁
-			浣嗘槸涓轰簡鍑忓皯鏌ヨ娆℃暟锛屽氨闇�鍦ㄦ煡璇㈡槸浣跨敤btmtypeid瀛楁杩涜鎺掑簭
+		/** 1銆佸厛鏌ヨ鍑哄悇鍒嗙被椤跺眰鑺傜偣鏈夊摢浜涗富鏁版嵁,鎷垮埌缁戝畾鐨勪笟鍔$被鍨嬪悕绉帮紝鐩稿綋浜庢嬁鍒颁富鏁版嵁琛ㄥ悕
+			椤跺眰鑺傜偣鐨刡tmtypeid锛�2024骞�1鏈�31鏃ョ殑鏃跺�欐敼鎴愪簡鐢ㄥ垎绫荤殑id锛夊幓鏌ヨ瀵瑰簲鐨勮彍鍗曡〃鐨刢ode瀛楁
+		 	锛屾煡璇㈠嚭涓绘暟鎹鐞嗕笅闈㈡湁鍝簺涓绘暟鎹殑
+			浣嗘槸涓轰簡鍑忓皯鏌ヨ娆℃暟锛屽氨闇�鍦ㄦ煡璇㈡槸浣跨敤id瀛楁杩涜鎺掑簭
 		 */
 		LambdaQueryWrapper<CodeClassify> wrapper = Wrappers.<CodeClassify>query()
 			.lambda()
-			.isNull(CodeClassify::getParentCodeClassifyOid).select(CodeClassify::getBtmTypeId)
-			.orderByAsc(CodeClassify::getBtmTypeId);
+			.isNull(CodeClassify::getParentCodeClassifyOid)/*椤跺眰鑺傜偣*/
+			.orderByAsc(CodeClassify::getId);
+		// 鍔犱笂绉熸埛鏌ヨ鏉′欢
+		if(!VciBaseUtil.checkAdminTenant()){
+			wrapper.eq(CodeClassify::getTenantId,AuthUtil.getTenantId());
+		}
 		List<CodeClassify> codeClassifies = codeClassifyService.list(wrapper);
-		List<String> btmTypeIds = codeClassifies.stream().map(CodeClassify::getBtmTypeId).collect(Collectors.toList());
+		// List<String> btmTypeIds = codeClassifies.stream().map(CodeClassify::getBtmTypeId).collect(Collectors.toList());
+		List<String> classifyIds = codeClassifies.stream().map(CodeClassify::getId).collect(Collectors.toList());
 		// 2銆佺劧鍚巉eign璋冪敤闇�瑕佹煡璇㈠嚭鑿滃崟璺敱鍜屽浘鏍�
-		R<List<Menu>> menuList = sysClient.getMenuByCodes(btmTypeIds,Func.toLong(userId));
+		R<List<Menu>> menuList = sysClient.getMenuByCodes(classifyIds,Func.toLong(userId));
 		if(!menuList.isSuccess()){
 			throw new ServiceException("鑾峰彇涓绘暟鎹粺璁℃椂锛屼富鏁版嵁鑿滃崟鏌ヨ澶辫触锛屽師鍥狅細"+menuList.getMsg());
 		}
@@ -80,6 +86,7 @@
 			throw new ServiceException("鑾峰彇涓绘暟鎹粺璁¢」閰嶇疆鏃跺嚭鐜伴敊璇紝鍘熷洜锛�"+mdmCountConfig.getMsg());
 		}
 		List<String> mdmNames = null;
+		//棣栭〉閰嶇疆鏄剧ず灏戜簬5涓氨榛樿鏄剧ず鍓嶄簲涓�
 		if(Func.isBlank(mdmCountConfig.getData().getMdmName())){
 			AtomicInteger count = new AtomicInteger();
 			mdmNames = menuList.getData().stream().map(item->{
@@ -92,12 +99,29 @@
 			mdmNames = Arrays.stream(mdmCountConfig.getData().getMdmName().split(",")).collect(Collectors.toList());
 		}
 		final List<String> mdmNamesFinal = mdmNames;
-		// 4銆佺劧鍚巗et杩涘璞′腑
+		/* 4銆佽幏鍙栬〃鍚嶏紝褰撳墠鏈幏鍙栧埌琛ㄥ悕锛岃彍鍗曠殑code鍊煎搴斾簡鍒嗙被鐨刬d锛�
+			鏈搴斾笟鍔$被鍨嬬殑id锛屾墍浠ラ渶瑕侀�氳繃鑿滃崟鐨刬d绛涢�夊嚭閰嶇疆骞朵笖鍦ㄤ娇鐢ㄧ殑涓绘暟鎹垎绫�,
+			鐒跺悗閫氳繃鍒嗙被淇℃伅鏌ヨ鍒颁笟鍔$被鍨媔d锛屽湪閫氳繃涓氬姟绫诲瀷鎺ュ彛鏌ヨ鍑鸿〃鍚�(杩欎竴姝ュ彲浠ュ厛鐪佺暐鍥犱负鍒嗙被涓婂叧鑱旂殑涓氬姟绫诲瀷id涔熷彲浠ユ嫾鎺ュ嚭琛ㄥ悕)
+		*/
+		// 鑾峰彇鍒嗙被涓婄殑涓氬姟绫诲瀷鐨刬d
+		Map<String, String> btmTypeIdMaps = menuList.getData().stream()
+		.filter(menu -> codeClassifies.stream()
+			.anyMatch(codeClassify -> codeClassify.getId().equals(menu.getCode()))
+		).collect(Collectors.toMap(
+			Menu::getCode,
+			menu -> codeClassifies.stream()
+				.filter(codeClassify -> codeClassify.getId().equals(menu.getCode()))
+				.findFirst()
+				.map(CodeClassify::getBtmTypeId)
+				.orElse(null)
+		));
+
+		// 5銆佺劧鍚巗et杩涘璞′腑
 		menuList.getData().stream().forEach(item->{
 			Integer isDefault = mdmNamesFinal.contains(item.getCode()) ? 1:0;
 			MdmCount mdmCount = new MdmCount(
 				item.getName(),
-				getCountByTableName(item.getCode()), /*鏌ヨ涓绘暟鎹�绘暟*/
+				getCountByTableName(btmTypeIdMaps.get(item.getCode())), /*鏌ヨ涓绘暟鎹�绘暟*/
 				item.getPath(),
 				item.getSource(),
 				item.getCode(),
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
index a423df3..2305909 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
@@ -108,7 +108,7 @@
         <where>
              1=1
             <if test="oid != null and oid != ''">
-               and  codeclassify0.parentcodeclassifyoid = ${oid}
+               and codeclassify0.parentcodeclassifyoid = ${oid}
             </if>
             <if test="oid = null">
                and codeclassify0.parentcodeclassifyoid is null
@@ -117,7 +117,7 @@
                and  codeclassify0.tenant_id = #{tenantId}
             </if>
         </where>
-        order by lastmodifytime asc
+        order by id asc
     </select>
 
     <select id="selectAllLevelChildHasPath" resultMap="plCodeClassifyResultMap">
@@ -320,20 +320,13 @@
         left join pl_code_resemblerule coderesembleruleoid
         on codeclassify0.codeResembleRuleOid = coderesembleruleoid.oid
         where codeclassify0.lcstatus = #{lcstatus}
-        and codeclassify0.parentcodeclassifyoid in (
-            SELECT
-                OID
-            FROM
-                PL_CODE_CLASSIFY
-            WHERE
-                parentcodeclassifyoid IS NULL
-                AND id = #{id}
-        )
-        or codeclassify0.parentcodeclassifyoid IS NULL
-        and codeclassify0.id = #{id}
         <if test="tenantId != null and tenantId != ''">
-            and codeclassify0.tenant_id = #{tenantId}
+            AND codeclassify0.tenant_id = #{tenantId}
         </if>
+        START WITH
+            codeclassify0.ID = #{id}
+        CONNECT BY
+        PRIOR codeclassify0.OID = codeclassify0.parentCodeClassifyOid
         order by id asc
     </select>
 
@@ -611,6 +604,5 @@
         and isparticipatecheck = 0
         and oid != #{currentOid}
     </select>
-
 
 </mapper>
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/controller/DdlController.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/controller/DdlController.java
index 6423ad9..e8c4118 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/controller/DdlController.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/controller/DdlController.java
@@ -43,7 +43,7 @@
 	@PostMapping("/submit")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "鏂板鎴栦慨鏀�", notes = "涓氬姟绫诲瀷閾炬帴绫诲瀷浼犺緭瀵硅薄")
-	public R submitBtmType(@RequestBody BtmAndLinkTypeDdlDTO ddlDTO) {
+	public R<List<ModifyAttributeInfo>> submitBtmType(@RequestBody BtmAndLinkTypeDdlDTO ddlDTO) {
 		try {
 			return ddlService.submit(ddlDTO);
 		} catch (Throwable e) {
@@ -112,4 +112,5 @@
 		Func.requireNotNull(addColumnDTO,"娣诲姞鐨勫璞�");
 		return R.status(ddlService.addColumnForTable(addColumnDTO));
 	}
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/IDdlService.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/IDdlService.java
index c7610fa..e59096f 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/IDdlService.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/IDdlService.java
@@ -10,6 +10,7 @@
 import com.vci.ubcs.starter.exception.VciBaseException;
 import org.springblade.core.tool.api.R;
 
+import java.rmi.ServerException;
 import java.util.Collection;
 import java.util.List;
 
@@ -195,7 +196,7 @@
 	 * @param ddlDTO 涓氬姟绫诲瀷浼犺緭瀵硅薄
 	 * @return 鎵ц缁撴灉
 	 */
-	R submit(BtmAndLinkTypeDdlDTO ddlDTO) throws Throwable;
+	R submit(BtmAndLinkTypeDdlDTO ddlDTO) throws ServerException;
 
 	/**
 	 * 鎸夎〃鍚嶈幏鍙栬〃淇℃伅
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
index 651433a..fe24a1a 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
@@ -1,6 +1,5 @@
 package com.vci.ubcs.ddl.service.impl;
 
-
 import com.alibaba.cloud.commons.lang.StringUtils;
 import com.alibaba.nacos.shaded.com.google.protobuf.ServiceException;
 import com.vci.ubcs.ddl.bo.DdlTableBO;
@@ -33,8 +32,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import javax.annotation.Resource;
 import javax.validation.constraints.NotNull;
+import java.rmi.ServerException;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
@@ -81,25 +80,25 @@
 
 	private final Map<String, LinkTypeVO> idLinkMap = new ConcurrentHashMap<>();
 
-	private void putBtm(@NotNull BtmTypeVO... voList) throws Throwable {
+	private void putBtm(@NotNull BtmTypeVO... voList) throws ServiceException {
 		String collect = Arrays.stream(voList).map(BtmTypeVO::getId).filter(idBtmMap::containsKey).collect(Collectors.joining(","));
 		if (StringUtils.isBlank(collect)) {
 			Arrays.stream(voList).forEach(vo -> {
 				idBtmMap.put(vo.getId(), vo);
 			});
 		} else {
-			throw new Throwable("涓氬姟绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
+			throw new ServiceException("涓氬姟绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
 		}
 	}
 
-	private void putLink(@NotNull LinkTypeVO... voList) throws Throwable {
+	private void putLink(@NotNull LinkTypeVO... voList) throws ServiceException {
 		String collect = Arrays.stream(voList).map(LinkTypeVO::getId).filter(idLinkMap::containsKey).collect(Collectors.joining(","));
 		if (StringUtils.isBlank(collect)) {
 			Arrays.stream(voList).forEach(vo -> {
 				idLinkMap.put(vo.getId(), vo);
 			});
 		} else {
-			throw new Throwable("閾炬帴绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
+			throw new ServiceException("閾炬帴绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
 		}
 	}
 
@@ -765,9 +764,9 @@
 				if (StringUtils.isNotBlank(s.getModifyAttributes()) || StringUtils.isNotBlank(s.getDeleteAttributes())) {
 					//闇�瑕佸幓鍒ゆ柇鏄惁鍙互鏇存敼
 					if (checkTableHasDataByTableName(s.getTableName())) {
-						//鏈夋暟鎹殑璇濓紝寰楅渶瑕佸垽鏂睘鎬ф槸鍚﹀彲浠ヤ慨鏀�
+						//鏈夋暟鎹殑璇濓紝寰楅渶瑕佸垽鏂睘鎬ф槸鍚﹀彲浠ュ垹闄�
 						if (StringUtils.isNotBlank(s.getDeleteAttributes())) {
-							s.setHandleResult("琛ㄦ牸瀛樺湪鏁版嵁锛屼笉鍏佽鍒犻櫎瀛楁");
+							s.setHandleResult("琛ㄦ牸瀛樺湪鏁版嵁锛屼笉鍏佽鍒犻櫎"+ s.getDeleteAttributes() +"瀛楁");
 							return;
 						}
 						List<DdlTableInDataBaseBO> columnInDbList = selectTableColumnInfo(s.getTableName());
@@ -976,7 +975,7 @@
 	 * @return 鎵ц缁撴灉
 	 */
 	@Override
-	public R<List<ModifyAttributeInfo>> submit(BtmAndLinkTypeDdlDTO ddlDTO) throws Throwable {
+	public R<List<ModifyAttributeInfo>> submit(BtmAndLinkTypeDdlDTO ddlDTO) throws ServerException {
 		try {
 			List<ModifyAttributeInfo> changedList = new ArrayList<>();
 			if (!CollectionUtils.isEmpty(ddlDTO.getBtmTypeList())) {
@@ -991,8 +990,13 @@
 				changedList.addAll(checkDifferent(null,linkTypeList));
 				removeLink(linkTypeList.toArray(new LinkTypeVO[0]));
 			}
-			String msg = changedList.isEmpty() ? "鏁版嵁搴撴搷浣滄垚鍔�" : changedList.get(0).getHandleResult();
-			R<List<ModifyAttributeInfo>> result = R.success(msg);
+			String msg = "鏁版嵁搴撴搷浣滄垚鍔�";
+			R<List<ModifyAttributeInfo>> result = new R<>();
+			if((!changedList.isEmpty())&&Func.isEmpty(changedList.get(0).getHandleResult())){
+				result = R.success(msg);
+			}else {
+				result = R.fail(changedList.get(0).getHandleResult());
+			}
 			result.setData(changedList);
 			return result;
 		} catch (Exception e) {
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/AttributeController.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/AttributeController.java
index 90674ee..a5e422a 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/AttributeController.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/AttributeController.java
@@ -87,7 +87,7 @@
 	@ApiOperation(value = "鏌ヨ鍒楄〃", notes = "浼犲叆鏌ヨ")
 	public R<IPage<AttributeVO>> pageList(@ApiIgnore @RequestParam Map<String, Object> condition, Query query) {
 		IPage<AttributeVO> pageVO = new Page<>();
-		IPage<Attribute> page = attributeService.page(Condition.getPage(query), Condition.getQueryWrapper(condition, Attribute.class).lambda().orderByAsc(Attribute::getId));
+		IPage<Attribute> page = attributeService.page(Condition.getPage(query), Condition.getQueryWrapper(condition, Attribute.class).lambda().orderByDesc(Attribute::getCreateTime));
 		BeanUtil.copy(page,pageVO);
 		pageVO.setRecords( AttributeWrapper.build().listEntityVO(page.getRecords()));
 		return R.data(pageVO);
@@ -118,12 +118,11 @@
 		return R.data(pageVO);
 	}
 
-
-		/**
-		 * 鏂板鎴栦慨鏀�
-		 * @param dto 鍏冩暟鎹〉闈紶杈撳璞�
-		 * @return 鎵ц缁撴灉
-		 */
+	/**
+	 * 鏂板鎴栦慨鏀�
+	 * @param dto 鍏冩暟鎹〉闈紶杈撳璞�
+	 * @return 鎵ц缁撴灉
+	 */
 	@PostMapping("/submit")
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "鏂板鎴栦慨鏀�", notes = "浼犲叆鍏冩暟鎹璞�")
@@ -156,4 +155,5 @@
 	public R applyRange(String oid){
 		return R.data(attributeService.applyRange(oid));
 	}
+
 }

--
Gitblit v1.9.3