lihang
2023-06-13 3ac8ee52eef07ff8deeea11015035ad17c4d67e8
链接类型feign添加;状态池查询应用范围按钮修正;
已修改5个文件
已添加3个文件
586 ■■■■■ 文件已修改
Source/UBCS-WEB/src/api/omd/status.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/status.vue 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeClient.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeFallback.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/LinkTypeClient.java 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/omd/status.js
@@ -72,4 +72,14 @@
            pageSize
        }
    })
}
}
export const getApplyRange = (id) => {
  return request({
    url: '/api/ubcs-omd/status/get-apply-range',
    method: 'get',
    params: {
      id
    }
  })
}
Source/UBCS-WEB/src/views/modeling/status.vue
@@ -11,36 +11,41 @@
                 @row-del="rowDel"
                 @refresh-change="refreshChange"
                 @search-reset="searchChange"
                 @search-change="searchChange">
                 @search-change="searchChange"
                 @row-click="rowClick">
        <template slot="menuLeft">
          <el-tooltip class="item" effect="dark" content="查找状态池使用范围" placement="top">
          <el-tooltip class="item" effect="dark" content="查找状态使用范围" placement="top">
            <el-button size="small"
                       plain
                       type="primary"
                       icon="el-icon-zoom-in"
                       @click="handleSearch">查看使用范围
                       @click="applyRangeSearch">查看使用范围
            </el-button>
          </el-tooltip>
        </template>>
        </template>
        <template slot="radio"
                  slot-scope="{row}">
          <el-radio v-model="selectRow"
                    :label="row.$index">&nbsp;
          </el-radio>
        </template>
      </avue-crud>
      <el-dialog title="查看使用范围"
                 append-to-body
                 :visible.sync="packageSearchBox"
                 width="1200px">
        <versionpackage></versionpackage>
      </el-dialog>
      <versionpackage :rangeData="applyRangeData" ref="applyRange"></versionpackage>
    </basic-container>
  </template>
  <script>
  import { getPage,add,update,remove } from '../../api/omd/status';
  import { getPage,add,update,remove,getApplyRange } from '../../api/omd/status';
  export default {
    name: "status",
    data(){
      return {
        //查看使用范围
        packageSearchBox:false,
        // ç‚¹å‡»æ•°æ®
        selectRow: '',
        selectRowData: {},
        //分页数据
        page: {
          pageSize: 10,
@@ -56,7 +61,14 @@
          border: true,
          index: true,
          searchMenuSpan:5,
          highlightCurrentRow: true,
          stripe:true,
          column:[
            {
              label: '',
              prop: 'radio',
              width: 120
            },
            {
              label:'英文名称',
              prop: 'id',
@@ -73,12 +85,28 @@
              type:'textarea'
            }
          ]
        }
        },
        applyRangeData: []
      }
    },
    methods:{
      handleSearch(){
        // this.packageSearchBox=true
      rowClick(row){
        this.selectRow = row.$index;
        this.selectRowData = row;
      },
      applyRangeSearch(){
        if (!this.selectRow && this.selectRow != 0){
          console.log(this.selectRow);
          this.$message({
            type:"warning",
            message: "请先选择属性"
          })
        }
        getApplyRange(this.selectRowData.id).then(res => {
          this.applyRangeData = res.data.data;
          this.$refs.applyRange.rangeData = this.applyRangeData;
          this.$refs.applyRange.showDialog = true;
        })
      },
      getList() {
        this.loading = true;
@@ -134,8 +162,7 @@
    }
  }
  </script>
  <style scoped>
  </style>
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IBtmTypeClient.java
@@ -50,11 +50,11 @@
     */
    String GET_BY_OIDS = API_PREFIX + "/btm-type/get-by-oids";
    String GET_DEFAULT_ATTR_BY_BTM_ID = API_PREFIX + "/btm-attribute/get-default-attr-by-btm-id";
    String GET_DEFAULT_ATTR_BY_BTM_ID = API_PREFIX + "/btm-type/get-default-attr-by-btm-id";
    String GET_ALL_ATTR_BY_BTM_ID = API_PREFIX + "/btm-attribute/get-all-attr-by-btm-id";
    String GET_ALL_ATTR_BY_BTM_ID = API_PREFIX + "/btm-type/get-all-attr-by-btm-id";
    String GET_ALL_ATTR_BY_BTM_OID = API_PREFIX + "/btm-attribute/get-all-attr-by-btm-oid";
    String GET_ALL_ATTR_BY_BTM_OID = API_PREFIX + "/btm-type/get-all-attr-by-btm-oid";
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeClient.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,136 @@
package com.vci.ubcs.omd.feign;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vci.ubcs.omd.vo.LinkTypeVO;
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
 * Description: é“¾æŽ¥ç±»åž‹Feign接口
 *
 * @author LiHang
 * @date 2023/6/13
 */
@FeignClient(
    value = AppConstant.APPLICATION_NAME_OMD,
    fallback = ILinkTypeFallback.class
)
public interface ILinkTypeClient {
    /**
     * å‰ç¼€
     */
    String API_PREFIX = "/client";
    /**
     * åˆ†é¡µå‚照查询
     */
    String GET_REF_PAGE =API_PREFIX + "/link-type/get-ref-page";
    /**
     * å‚照列表查询无分页
     */
    String GET_REF = API_PREFIX + "/link-type/get-ref";
    /**
     * å‚照明细
     */
    String GET_DETAIL = API_PREFIX + "/link-type/get-detail";
    /**
     * è‹±æ–‡åç§°æ‰¹é‡æŸ¥è¯¢
     */
    String GET_BY_IDS = API_PREFIX + "/link-type/get-by-ids";
    /**
     * ä¸»é”®æ‰¹é‡æŸ¥è¯¢
     */
    String GET_BY_OIDS = API_PREFIX + "/link-type/get-by-oids";
    /**
     * æŒ‰é“¾æŽ¥ç±»åž‹è‹±æ–‡åç§°èŽ·å–é»˜è®¤å­—æ®µ
     */
    String GET_DEFAULT_ATTR_BY_LINK_ID = API_PREFIX + "/link-type/get-default-attr-by-link-id";
    /**
     * æŒ‰é“¾æŽ¥ç±»åž‹è‹±æ–‡åç§°èŽ·å–å…¨éƒ¨å­—æ®µ
     */
    String GET_ALL_ATTR_BY_LINK_ID = API_PREFIX + "/link-type/get-all-attr-by-link-id";
    /**
     * æŒ‰é“¾æŽ¥ç±»åž‹ä¸»é”®èŽ·å–å…¨éƒ¨å­—æ®µ
     */
    String GET_ALL_ATTR_BY_LINK_OID = API_PREFIX + "/link-type/get-all-attr-by-link-oid";
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     *
     * @param oid ä¸»é”®
     * @return ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     */
    @GetMapping(GET_DETAIL)
    R<LinkTypeVO> getDetail(@RequestParam("oid") String oid);
    /**
     * å‚照列表查询
     *
     * @param baseQueryObject æŸ¥è¯¢æ¡ä»¶å¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @PostMapping(GET_REF_PAGE)
    R<Page<LinkTypeVO>> getRefPage(@RequestBody BaseQueryObject baseQueryObject);
    /**
     * å‚照列表查询
     * @param baseQueryObject æŸ¥è¯¢æ¡ä»¶å¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @PostMapping(GET_REF)
    R<List<LinkTypeVO>> getRef(@RequestBody BaseQueryObject baseQueryObject);
    /**
     * æ ¹æ®è‹±æ–‡åç§°æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     * @param ids å¯¹è±¡è‹±æ–‡åç§° ä½†æ˜¯ä¸èƒ½è¶…过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    @PostMapping(GET_BY_IDS)
    R<List<LinkTypeVO>> selectByIdCollection(@RequestBody List<String> ids);
    /**
     * æ‰¹é‡æ ¹æ®ä¸»é”®èŽ·å–ä¸šåŠ¡ç±»åž‹
     * @param pkLinkTypeCollection ä¸šåŠ¡ç±»åž‹ä¸»é”®é›†åˆ
     * @return ä¸šåŠ¡ç±»åž‹åˆ—è¡¨ï¼Œå¦‚æžœæœ‰ä¸å­˜åœ¨çš„ä¸ä¼šè¿”å›žï¼Œå…¨éƒ¨ä¸å­˜åœ¨çš„åˆ™è¿”å›žç©ºåˆ—è¡¨
     */
    @PostMapping(GET_BY_OIDS)
    R<List<LinkTypeVO>> listLinkTypeByOidCollection(@RequestBody List<String> pkLinkTypeCollection);
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹ï¼Œåªæœ‰é»˜è®¤å­—æ®µ
     *
     * @param linkTypeId ä¸šåŠ¡ç±»åž‹id
     * @return é»˜è®¤å­—段属性
     */
    @GetMapping(GET_DEFAULT_ATTR_BY_LINK_ID)
    R<LinkTypeVO> getDefaultAttrByLinkId(@RequestParam("linkTypeId") String linkTypeId);
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹ï¼Œæœ‰æ‰€æœ‰çš„å­—æ®µ
     *
     * @param linkTypeId ä¸šåŠ¡ç±»åž‹id
     * @return æ‰€æœ‰å­—段
     */
    @GetMapping(GET_ALL_ATTR_BY_LINK_ID)
    R<LinkTypeVO> getAllAttributeByLinkId(@RequestParam("linkTypeId") String linkTypeId);
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹ï¼Œæœ‰æ‰€æœ‰çš„å­—æ®µ
     *
     * @param linkTypeOid ä¸šåŠ¡ç±»åž‹ä¸»é”®
     * @return æ‰€æœ‰å­—段
     */
    @GetMapping(GET_ALL_ATTR_BY_LINK_OID)
    R<LinkTypeVO> getAllAttributeByLinkOid(@RequestParam("linkTypeOid") String linkTypeOid);
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/ILinkTypeFallback.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.vci.ubcs.omd.feign;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vci.ubcs.omd.vo.LinkTypeVO;
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
import org.springblade.core.tool.api.R;
import java.util.List;
/**
 * Description: é“¾æŽ¥ç±»åž‹feign失败的配置类
 *
 * @author LiHang
 * @date 2023/6/13
 */
public class ILinkTypeFallback implements ILinkTypeClient{
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     *
     * @param oid ä¸»é”®
     * @return ä¸šåŠ¡ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     */
    @Override
    public R<LinkTypeVO> getDetail(String oid) {
        return R.fail("获取数据失败");
    }
    /**
     * å‚照列表查询
     *
     * @param baseQueryObject æŸ¥è¯¢æ¡ä»¶å¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public R<Page<LinkTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
        return R.fail("获取数据失败");
    }
    /**
     * å‚照列表查询
     *
     * @param baseQueryObject æŸ¥è¯¢æ¡ä»¶å¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public R<List<LinkTypeVO>> getRef(BaseQueryObject baseQueryObject) {
        return R.fail("获取数据失败");
    }
    /**
     * æ ¹æ®è‹±æ–‡åç§°æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     *
     * @param ids å¯¹è±¡è‹±æ–‡åç§° ä½†æ˜¯ä¸èƒ½è¶…过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    @Override
    public R<List<LinkTypeVO>> selectByIdCollection(List<String> ids) {
        return R.fail("获取数据失败");
    }
    /**
     * æ‰¹é‡æ ¹æ®ä¸»é”®èŽ·å–ä¸šåŠ¡ç±»åž‹
     *
     * @param pkLinkTypeCollection ä¸šåŠ¡ç±»åž‹ä¸»é”®é›†åˆ
     * @return ä¸šåŠ¡ç±»åž‹åˆ—è¡¨ï¼Œå¦‚æžœæœ‰ä¸å­˜åœ¨çš„ä¸ä¼šè¿”å›žï¼Œå…¨éƒ¨ä¸å­˜åœ¨çš„åˆ™è¿”å›žç©ºåˆ—è¡¨
     */
    @Override
    public R<List<LinkTypeVO>> listLinkTypeByOidCollection(List<String> pkLinkTypeCollection) {
        return R.fail("获取数据失败");
    }
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹ï¼Œåªæœ‰é»˜è®¤å­—æ®µ
     *
     * @param linkTypeId ä¸šåŠ¡ç±»åž‹id
     * @return é»˜è®¤å­—段属性
     */
    @Override
    public R<LinkTypeVO> getDefaultAttrByLinkId(String linkTypeId) {
        return R.fail("获取数据失败");
    }
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹ï¼Œæœ‰æ‰€æœ‰çš„å­—æ®µ
     *
     * @param linkTypeId ä¸šåŠ¡ç±»åž‹id
     * @return æ‰€æœ‰å­—段
     */
    @Override
    public R<LinkTypeVO> getAllAttributeByLinkId(String linkTypeId) {
        return R.fail("获取数据失败");
    }
    /**
     * èŽ·å–ä¸šåŠ¡ç±»åž‹ï¼Œæœ‰æ‰€æœ‰çš„å­—æ®µ
     *
     * @param linkTypeOid ä¸šåŠ¡ç±»åž‹ä¸»é”®
     * @return æ‰€æœ‰å­—段
     */
    @Override
    public R<LinkTypeVO> getAllAttributeByLinkOid(String linkTypeOid) {
        return R.fail("获取数据失败");
    }
}
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/LinkTypeClient.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,183 @@
package com.vci.ubcs.omd.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.vci.ubcs.omd.entity.LinkType;
import com.vci.ubcs.omd.service.ILinkTypeService;
import com.vci.ubcs.omd.vo.LinkTypeVO;
import com.vci.ubcs.omd.wrapper.LinkTypeWrapper;
import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject;
import com.vci.ubcs.starter.web.pagemodel.PageHelper;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.cglib.beans.BeanMap;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.*;
/**
 * Description: é“¾æŽ¥ç±»åž‹Feign实现类
 *
 * @author LiHang
 * @date 2023/6/13
 */
@ApiIgnore()
@RestController
@AllArgsConstructor
public class LinkTypeClient implements ILinkTypeClient{
    private final ILinkTypeService linkTypeService;
    private final String DOMAIN = "domain";
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹è¯¦æƒ…ä¿¡æ¯
     *
     * @param oid ä¸»é”®
     * @return é“¾æŽ¥ç±»åž‹è¯¦æƒ…信息
     */
    @Override
    public R<LinkTypeVO> getDetail(String oid) {
        LinkTypeVO vo = linkTypeService.getLinkTypeByOid(oid);
        return R.data(vo);
    }
    /**
     * å‚照列表查询
     *
     * @param baseQueryObject æŸ¥è¯¢æ¡ä»¶å¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public R<Page<LinkTypeVO>> getRefPage(BaseQueryObject baseQueryObject) {
        Map<String, String> conditionMap = baseQueryObject.getConditionMap();
        if (conditionMap == null){
            conditionMap = new HashMap<>(16);
        }
        if (!conditionMap.containsKey(DOMAIN)){
            return R.fail("领域值不能为空");
        }
        PageHelper pageHelper = baseQueryObject.getPageHelper();
        if (pageHelper == null){
            pageHelper = new PageHelper(-1);
        }
        String domainValue = conditionMap.get(DOMAIN);
        VciBaseUtil.alertNotNull(domainValue,"领域值");
        conditionMap.remove(DOMAIN);
        LinkType queryObj = new LinkType();
        BeanMap.create(queryObj).putAll(conditionMap);
        Query query = new Query();
        query.setSize(pageHelper.getLimit());
        query.setCurrent(pageHelper.getPage());
        IPage<LinkType> page = linkTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(queryObj).lambda().eq(LinkType::getDomain, domainValue).orderByAsc(LinkType::getId));
        Page<LinkTypeVO> pageVO = new Page<>();
        BeanUtil.copy(page,pageVO);
        pageVO.setRecords(LinkTypeWrapper.build().listEntityVO(page.getRecords(),null));
        R<Page<LinkTypeVO>> r = R.data(pageVO);
        r.setSuccess(true);
        return r;
    }
    /**
     * å‚照列表查询
     *
     * @param baseQueryObject æŸ¥è¯¢æ¡ä»¶å¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public R<List<LinkTypeVO>> getRef(BaseQueryObject baseQueryObject) {
        Map<String, String> conditionMap = baseQueryObject.getConditionMap();
        if (conditionMap == null){
            conditionMap = new HashMap<>(16);
        }
        if (!conditionMap.containsKey(DOMAIN)){
            return R.fail("领域值不能为空");
        }
        PageHelper pageHelper = baseQueryObject.getPageHelper();
        if (pageHelper == null){
            pageHelper = new PageHelper(-1);
        }
        String domainValue = conditionMap.get(DOMAIN);
        VciBaseUtil.alertNotNull(domainValue,"领域值");
        conditionMap.remove(DOMAIN);
        LinkType queryObj = new LinkType();
        BeanMap.create(queryObj).putAll(conditionMap);
        List<LinkType> doList = linkTypeService.list(Condition.getQueryWrapper(queryObj).lambda().eq(LinkType::getDomain, domainValue).orderByAsc(LinkType::getId));
        return R.data(LinkTypeWrapper.build().listEntityVO(doList,null));
    }
    /**
     * æ ¹æ®è‹±æ–‡åç§°æ‰¹é‡æŸ¥è¯¢å¯¹è±¡
     *
     * @param ids å¯¹è±¡è‹±æ–‡åç§° ä½†æ˜¯ä¸èƒ½è¶…过1000
     * @return ä¸šåŠ¡å¯¹è±¡
     */
    @Override
    public R<List<LinkTypeVO>> selectByIdCollection(List<String> ids) {
        Func.requireNotNull(ids,"链接类型英文名称");
        List<LinkTypeVO> voList = LinkTypeWrapper.build().listEntityVO(
            Optional.ofNullable(linkTypeService.list(
                    Wrappers.<LinkType>query().lambda().in(LinkType::getId, ids)
                )
            ).orElseGet(ArrayList::new),null
        );
        return R.data(voList);
    }
    /**
     * æ‰¹é‡æ ¹æ®ä¸»é”®èŽ·å–é“¾æŽ¥ç±»åž‹
     *
     * @param pkLinkTypeCollection é“¾æŽ¥ç±»åž‹ä¸»é”®é›†åˆ
     * @return é“¾æŽ¥ç±»åž‹åˆ—表,如果有不存在的不会返回,全部不存在的则返回空列表
     */
    @Override
    public R<List<LinkTypeVO>> listLinkTypeByOidCollection(List<String> pkLinkTypeCollection) {
        Func.requireNotNull(pkLinkTypeCollection,"链接类型主键");
        List<LinkTypeVO> voList = LinkTypeWrapper.build().listEntityVO(
            Optional.ofNullable(linkTypeService.list(
                    Wrappers.<LinkType>query().lambda().in(LinkType::getOid, pkLinkTypeCollection)
                )
            ).orElseGet(ArrayList::new),null
        );
        return R.data(voList);
    }
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹ï¼Œåªæœ‰é»˜è®¤å­—æ®µ
     *
     * @param linkTypeId é“¾æŽ¥ç±»åž‹ID
     * @return é»˜è®¤å­—段属性
     */
    @Override
    public R<LinkTypeVO> getDefaultAttrByLinkId(String linkTypeId) {
        return R.data(linkTypeService.getLinkTypeDefaultAttrById(linkTypeId));
    }
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹ï¼Œæœ‰æ‰€æœ‰çš„å­—æ®µ
     *
     * @param linkTypeId é“¾æŽ¥ç±»åž‹id
     * @return æ‰€æœ‰å­—段
     */
    @Override
    public R<LinkTypeVO> getAllAttributeByLinkId(String linkTypeId) {
        return R.data(linkTypeService.getLinkTypeAllAttrById(linkTypeId));
    }
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹ï¼Œæœ‰æ‰€æœ‰çš„å­—æ®µ
     *
     * @param linkTypeOid é“¾æŽ¥ç±»åž‹ä¸»é”®
     * @return æ‰€æœ‰å­—段
     */
    @Override
    public R<LinkTypeVO> getAllAttributeByLinkOid(String linkTypeOid) {
        return R.data(linkTypeService.getLinkTypeAllAttrByOid(linkTypeOid));
    }
}
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/ILinkTypeService.java
@@ -8,6 +8,7 @@
import com.vci.ubcs.omd.vo.LinkTypeVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.web.pagemodel.PageHelper;
import org.springblade.core.mp.base.BaseService;
import java.util.Collection;
import java.util.List;
@@ -20,7 +21,7 @@
 * @author LiHang
 * @date 2023/5/24
 */
public interface ILinkTypeService extends IService<LinkType> {
public interface ILinkTypeService extends BaseService<LinkType> {
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹åˆ—è¡¨
@@ -209,4 +210,28 @@
     * @return æŸ¥è¯¢ç»“æžœ
     */
    List<BtmTreeVO> treeDomain();
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹ï¼Œåªæœ‰é»˜è®¤å­—æ®µ
     *
     * @param linkTypeId é“¾æŽ¥ç±»åž‹id
     * @return é»˜è®¤å­—段属性
     */
    LinkTypeVO getLinkTypeDefaultAttrById(String linkTypeId);
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹ï¼Œæœ‰æ‰€æœ‰çš„å­—æ®µ
     *
     * @param linkTypeId é“¾æŽ¥ç±»åž‹id
     * @return æ‰€æœ‰å­—段
     */
    LinkTypeVO getLinkTypeAllAttrById(String linkTypeId);
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹ï¼Œæœ‰æ‰€æœ‰çš„å­—æ®µ
     *
     * @param linkTypeOid é“¾æŽ¥ç±»åž‹ä¸»é”®
     * @return æ‰€æœ‰å­—段
     */
    LinkTypeVO getLinkTypeAllAttrByOid(String linkTypeOid);
}
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java
@@ -45,6 +45,7 @@
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.util.CollectionUtils;
import javax.validation.constraints.NotEmpty;
import java.util.*;
import java.util.stream.Collectors;
@@ -901,4 +902,56 @@
            throw new RuntimeException(e);
        }
    }
    @Override
    public boolean deleteLogic(@NotEmpty List<Long> ids) {
        return false;
    }
    @Override
    public boolean changeStatus(@NotEmpty List<Long> ids, Integer status) {
        return false;
    }
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹ï¼Œåªæœ‰é»˜è®¤å­—æ®µ
     *
     * @param linkTypeId é“¾æŽ¥ç±»åž‹id
     * @return é»˜è®¤å­—段属性
     */
    @Override
    public LinkTypeVO getLinkTypeDefaultAttrById(String linkTypeId) {
        LinkTypeVO vo = getLinkTypeById(linkTypeId);
        List<LinkTypeAttributeVO> attributes = linkTypeAttributeService.getDefaultAttributes(vo);
        vo.setAttributes(attributes);
        return vo;
    }
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹ï¼Œæœ‰æ‰€æœ‰çš„å­—æ®µ
     *
     * @param linkTypeId é“¾æŽ¥ç±»åž‹id
     * @return æ‰€æœ‰å­—段
     */
    @Override
    public LinkTypeVO getLinkTypeAllAttrById(String linkTypeId) {
        LinkTypeVO vo = getLinkTypeById(linkTypeId);
        List<LinkTypeAttributeVO> attributes = linkTypeAttributeService.getAllAttributes(vo);
        vo.setAttributes(attributes);
        return vo;
    }
    /**
     * èŽ·å–é“¾æŽ¥ç±»åž‹ï¼Œæœ‰æ‰€æœ‰çš„å­—æ®µ
     *
     * @param linkTypeOid é“¾æŽ¥ç±»åž‹ä¸»é”®
     * @return æ‰€æœ‰å­—段
     */
    @Override
    public LinkTypeVO getLinkTypeAllAttrByOid(String linkTypeOid) {
        LinkTypeVO vo = getLinkTypeByOid(linkTypeOid);
        List<LinkTypeAttributeVO> attributes = linkTypeAttributeService.getAllAttributes(vo);
        vo.setAttributes(attributes);
        return vo;
    }
}