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