From 66a397414a20aa592ce24ecd622024bc7744b7a0 Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期三, 24 七月 2024 15:14:17 +0800
Subject: [PATCH] 新增平台链接类型的新增,修改,查询接口
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLinkTypeController.java | 44 +++++++++++++-
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLinkTypeServiceI.java | 15 +++++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java | 80 ++++++++++++++++++++++++++
3 files changed, 135 insertions(+), 4 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLinkTypeController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLinkTypeController.java
index 9308325..1780a4c 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLinkTypeController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLinkTypeController.java
@@ -1,5 +1,7 @@
package com.vci.web.controller;
+import com.vci.corba.common.PLException;
+import com.vci.corba.omd.ltm.LinkType;
import com.vci.pagemodel.OsBtmTypeAttributeVO;
import com.vci.pagemodel.OsLinkTypeAttributeVO;
import com.vci.pagemodel.OsLinkTypeVO;
@@ -10,11 +12,9 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@@ -93,4 +93,40 @@
return BaseResult.success();
}
}
+
+
+ /**
+ * 閾炬帴绫诲瀷鐨勫垪琛�
+ *
+ * @return 閾炬帴绫诲瀷鐨勬樉绀哄璞�
+ */
+ @GetMapping("/gridLink")
+ public BaseResult<List<LinkType>> gridLink(){
+ try {
+ return linkTypeService.gridLink();
+ } catch (PLException e) {
+ BaseResult objectBaseResult = new BaseResult<>();
+ objectBaseResult.setCode(Integer.parseInt(e.code));
+ objectBaseResult.setMsg(Arrays.toString(e.messages));
+ return objectBaseResult;
+ }
+ }
+
+ /**
+ * 閾炬帴绫诲瀷淇濆瓨
+ * linkType 閾炬帴绫诲瀷鐨勪繚瀛樺璞�
+ * addFlag 鏄惁涓烘柊澧� true鏂板锛宖alse淇敼
+ * @return 淇濆瓨缁撴灉
+ */
+ @GetMapping("/addAndEditLink")
+ public BaseResult addAndEditLink(@RequestBody LinkType linkType, Boolean addFlag){
+ try {
+ return linkTypeService.addAndEditLink(linkType, addFlag);
+ } catch (PLException e) {
+ BaseResult objectBaseResult = new BaseResult<>();
+ objectBaseResult.setCode(Integer.parseInt(e.code));
+ objectBaseResult.setMsg(Arrays.toString(e.messages));
+ return objectBaseResult;
+ }
+ }
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLinkTypeServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLinkTypeServiceI.java
index 3c8d7ca..6c44c05 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLinkTypeServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLinkTypeServiceI.java
@@ -1,7 +1,9 @@
package com.vci.web.service;
+import com.vci.corba.common.PLException;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.starter.web.pagemodel.BaseQueryObject;
+import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.pagemodel.OsBtmTypeAttributeVO;
import com.vci.pagemodel.OsLinkTypeAttributeVO;
@@ -85,4 +87,17 @@
* @return 鏈夐敊璇殑灞炴��
*/
List<OsBtmTypeAttributeVO> checkAttributeTypeDifferent(String linkTypeOid);
+ /**
+ * 閾炬帴绫诲瀷鐨勫垪琛�
+ *
+ * @return 閾炬帴绫诲瀷鐨勬樉绀哄璞�
+ */
+ BaseResult<List<LinkType>> gridLink() throws PLException;
+ /**
+ * 閾炬帴绫诲瀷淇濆瓨
+ * linkType 閾炬帴绫诲瀷鐨勪繚瀛樺璞�
+ * addFlag 鏄惁涓烘柊澧� true鏂板锛宖alse淇敼
+ * @return 淇濆瓨缁撴灉
+ */
+ BaseResult addAndEditLink(LinkType linkType, Boolean addFlag) throws PLException;
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java
index 7065900..a5409db 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java
@@ -8,6 +8,7 @@
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.starter.web.pagemodel.BaseQueryObject;
+import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.VciBaseUtil;
@@ -321,6 +322,85 @@
}
/**
+ * 閾炬帴绫诲瀷鐨勫垪琛�
+ *
+ * @return 閾炬帴绫诲瀷鐨勬樉绀哄璞�
+ */
+ @Override
+ public BaseResult<List<LinkType>> gridLink() throws PLException {
+
+ LinkType[] linkTypes = platformClientUtil.getLinkTypeService().getLinkTypes();
+ return BaseResult.dataList(Arrays.asList(linkTypes));
+ }
+ /**
+ * 閾炬帴绫诲瀷淇濆瓨
+ * linkType 閾炬帴绫诲瀷鐨勪繚瀛樺璞�
+ * addFlag 鏄惁涓烘柊澧� true鏂板锛宖alse淇敼
+ * @return 淇濆瓨缁撴灉
+ */
+ @Override
+ public BaseResult addAndEditLink(LinkType linkType, Boolean addFlag) throws PLException {
+ VciBaseUtil.alertNotNull(linkType.name,"璇疯緭鍏ラ摼鎺ョ被鍨嬪悕绉�",linkType.btmItemsFrom,"From绔笟鍔$被鍨嬩笉鑳戒负绌�!",
+ linkType.btmItemsTo,"To绔被鍨嬪潎涓嶈兘涓虹┖!");
+ int maxLength = platformClientUtil.getLinkTypeService().getLTNameMaxLength();
+ if(linkType.name.length() > maxLength){
+ throw new PLException("500",new String[] {"閾炬帴绫诲瀷鍚嶉暱搴︿笉鑳借秴杩�" + maxLength});
+ }
+ if(!linkType.name.matches("^[A-Za-z]+$")){
+ throw new PLException("500",new String[] {"閾炬帴绫诲瀷鍚嶇О鍙兘涓鸿嫳鏂囧瓧姣�"});
+ }
+ LinkType historyLink = platformClientUtil.getLinkTypeService().getLinkType(linkType.name);
+ if(historyLink != null && !historyLink.name.equals("") && addFlag){
+ throw new PLException("500",new String[] {"璇ラ摼鎺ョ被鍨嬪悕绉板凡缁忓瓨鍦�"});
+ }
+ linkType.modifier = WebUtil.getCurrentUserId();
+ if(addFlag){
+ linkType.creator = WebUtil.getCurrentUserId();
+ platformClientUtil.getLinkTypeService().addLinkType(linkType);
+ return BaseResult.success(null,"淇濆瓨鎴愬姛锛�");
+ }
+ ArrayList<String> removeAbList = getRemovedApList(historyLink, linkType);
+ if(removeAbList.size() > 0 && platformClientUtil.getLinkTypeService().hasData(linkType.name)){
+ linkType.attributes = historyLink.attributes;
+ platformClientUtil.getLinkTypeService().modifyLinkType(linkType);
+ throw new PLException("500",new String[] {"绫诲瀷宸叉湁瀹炰緥, 涓嶈繘琛岀Щ闄ゆ搷浣�"});
+ }
+ platformClientUtil.getLinkTypeService().modifyLinkType(linkType);
+ return BaseResult.success(null,"淇濆瓨鎴愬姛锛�");
+ }
+
+
+ /**
+ * 鑾峰彇淇敼閾炬帴绫诲瀷鏃� 鍑忓皯鐨勫睘鎬�
+ * @param oldLt
+ * @param newLt
+ * @return
+ */
+ private ArrayList<String> getRemovedApList(LinkType oldLt,
+ LinkType newLt) {
+ String[] oldAbInfo = oldLt.attributes;
+ ArrayList<String> oldNameList = new ArrayList<String>();
+ for(int i = 0; i < oldAbInfo.length; i++){
+ oldNameList.add(oldAbInfo[i]);
+ }
+ String[] newAbInfo = newLt.attributes;
+ ArrayList<String> newNameList = new ArrayList<String>();
+ for(int i = 0; i < newAbInfo.length; i++){
+ newNameList.add(newAbInfo[i]);
+ }
+
+ ArrayList<String> removedApList = new ArrayList<String>();
+
+ for(Iterator<String> iterator = oldNameList.iterator(); iterator.hasNext();){
+ String oldName = iterator.next();
+ if(!newNameList.contains(oldName)){
+ removedApList.add(oldName);
+ }
+ }
+ return removedApList;
+ }
+
+ /**
* 娓呴櫎缂撳瓨
*/
@Override
--
Gitblit v1.9.3