ludc
2024-01-28 9660ff90d9a58fb675c821d9ed31b627a59d4b76
近义词管理,界面和接口完善
已修改22个文件
已删除2个文件
已添加1个文件
1091 ■■■■■ 文件已修改
Source/UBCS-WEB/src/api/code/codeSynonym.js 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/codeSynonym.js 259 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/code/codeSynonym.vue 161 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateAttrDTO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSynonym.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSynonymEntity.java 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/ICodeSynonymClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeSynonymVO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateAttrVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeSynonymVO.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeAttributeVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeSynonymClient.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSerialValueMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSynonymMapper.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyTemplateAttrService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeSynonymService.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeSynonymServiceImpl.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeSynonymWrapper.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateAttrMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeSynonymMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/code/codeSynonym.js
@@ -22,7 +22,7 @@
  })
}
export const remove = (ids) => {
export const remove = (oids) => {
  return request({
    url: '/api/ubcs-code/codeSynonym/remove',
    method: 'post',
@@ -34,7 +34,7 @@
export const add = (row) => {
  return request({
    url: '/api/ubcs-code/codeSynonym/submit',
    url: '/api/ubcs-code/codeSynonym/save',
    method: 'post',
    data: row
  })
@@ -42,9 +42,24 @@
export const update = (row) => {
  return request({
    url: '/api/ubcs-code/codeSynonym/submit',
    url: '/api/ubcs-code/codeSynonym/update',
    method: 'post',
    data: row
  })
}
export const updateStatus = (data) => {
  return request({
    url: '/api/ubcs-code/codeSynonym/updateStatus',
    method: 'post',
    data: data
  })
}
export const listUseRange = (oid) => {
  return request({
    url: '/api/ubcs-code/codeSynonym/listUseRange',
    method: 'get',
    params: oid
  })
}
Source/UBCS-WEB/src/const/code/codeSynonym.js
@@ -4,262 +4,61 @@
  tip: false,
  searchShow: true,
  columnBtn:false,
  searchMenuSpan: 6,
  searchMenuSpan: 7,
  searchLabelWidth:120,
  border: true,
  index: true,
  viewBtn: true,
  viewBtn: false,
  selection: true,
  dialogClickModal: false,
  highlightCurrentRow: true, //行选中时高亮
  rowKey: "oid", //行数据的 Key,用来优化 Table çš„æ¸²æŸ“
  column: [
    {
      label: "",
      prop: "oid",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "revisionoid",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "nameoid",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "btmname",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "lastr",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "firstr",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "lastv",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "firstv",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "creator",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "createtime",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "lastmodifier",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "lastmodifytime",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "revisionrule",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "versionrule",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "revisionseq",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "revisionvalue",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "versionseq",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "versionvalue",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "lctid",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "lcstatus",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "ts",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "所属行业",
      label: "编号",
      prop: "id",
      type: "input",
      search: true,
      searchLabelWidth: 45,
      searchSpan: 4,
    },
    {
      label: "所属行业名称",
      label: "名称",
      prop: "name",
      type: "input",
      labelWidth:110,
      search: true,
    },
    {
      label: "",
      prop: "description",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "owner",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "",
      prop: "copyfromversion",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
      hide: true,
    },
    {
      label: "所属模板",
      prop: "codeclassifytemplateoid",
      type: "input",
      search: true,
      searchLabelWidth: 45,
      searchSpan: 4,
    },
    {
      label: "源值",
      prop: "sourcevalue",
      prop: "sourceValue",
      type: "input",
      search: true,
      searchLabelWidth: 45,
      searchSpan: 4,
    },
    {
      label: "同义词",
      prop: "synonymvalue",
      label: "近义词",
      prop: "synonymValue",
      type: "input",
      search: true,
      searchLabelWidth: 60,
      searchSpan: 4,
    },
    {
      label: "状态",
      prop: "lcStatusText",
      type: "input",
      addDisplay: false,
      editDisplay: false,
      viewDisplay: false,
    },
    // {
    //   label: "所属模板",
    //   prop: "codeclassifytemplateoid",
    //   type: "input",
    //   search: true,
    // },
  ]
}
Source/UBCS-WEB/src/views/code/codeSynonym.vue
@@ -1,38 +1,85 @@
<template>
  <basic-container>
    <avue-crud :option="option"
               :table-loading="loading"
               :data="data"
               :page.sync="page"
               :permission="permissionList"
               :before-open="beforeOpen"
               v-model="form"
               ref="crud"
               @row-update="rowUpdate"
               @row-save="rowSave"
               @row-del="rowDel"
               @search-change="searchChange"
               @search-reset="searchReset"
               @selection-change="selectionChange"
               @current-change="currentChange"
               @size-change="sizeChange"
               @refresh-change="refreshChange"
               @on-load="onLoad">
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      :before-open="beforeOpen"
      v-model="form"
      ref="crud"
      @row-update="rowUpdate"
      @row-save="rowSave"
      @row-del="rowDel"
      @row-click="rowClick"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad">
      <template slot="menuLeft">
        <el-button type="danger"
                   size="small"
                   icon="el-icon-delete"
                   plain
                   v-if="permission.codeSynonym_delete"
                   @click="handleDelete">删 é™¤
          size="small"
          icon="el-icon-delete"
          plain
          v-if="permissionList.delBtn"
          @click="handleDelete">删 é™¤
        </el-button>
        <el-button type="primary"
          size="small"
          icon="el-icon-zoom-in"
          plain
          @click="viewUseRange">
          æŸ¥çœ‹ä½¿ç”¨èŒƒå›´
        </el-button>
      </template>
      <template slot="menu" slot-scope="scope">
        <el-button v-if="(scope.row.lcStatus == 'Disabled' ? true : false)"
          icon="el-icon-position"
          plain
          size="small"
          type="text"
          @click="enableOrDeactivatse(scope.row.oid, 'Released')"
          >启 ç”¨
        </el-button>
        <el-button v-if="(scope.row.lcStatus == 'Released' ? true : false)"
          icon="el-icon-video-pause"
          plain
          size="small"
          type="text"
          @click="enableOrDeactivatse(scope.row.oid, 'Disabled')"
        > åœ ç”¨
        </el-button>
      </template>
    </avue-crud>
    <!-- ä½¿ç”¨èŒƒå›´å¯¹è¯æ¡† -->
    <el-dialog
      :visible.sync="isUseRangeVisible"
      append-to-body
      class="avue-dialog avue-dialog--top"
      style="height: 100vh"
      top="-3%"
      width="800px"
      title="近义词规则使用范围"
    >
      <avue-crud :option="useRangeOption"
        :table-loading="useRangeloading"
        :data="useRangeData"
        style="margin-top: -40px"
        ref="useRangeCrud">
      </avue-crud>
      <span slot="footer" class="dialog-footer">
        <el-button @click="isUseRangeVisible = false">关 é—­</el-button>
      </span>
    </el-dialog>
  </basic-container>
</template>
<script>
  import {getList, getDetail, add, update, remove} from "@/api/code/codeSynonym";
  import { getList, getDetail, add, update, remove, listUseRange, updateStatus } from "@/api/code/codeSynonym";
  import option from "@/const/code/codeSynonym";
  import {mapGetters} from "vuex";
@@ -49,12 +96,48 @@
        },
        selectionList: [],
        option: option,
        data: []
        data: [],
        isUseRangeVisible: false,
        useRangeloading: true,
        useRangeData: [],
        useRangeOption: {
          height: "auto",
          calcHeight: 150,
          tip: false,
          searchShow: false,
          searchMenuSpan: 6,
          border: true,
          index: true,
          disablePage: false,
          refreshBtn: false,
          columnBtn: false,
          viewBtn: false,
          addBtn: false,
          menu: false,
          selection: false,
          dialogClickModal: false,
          align: "center",
          dialogWidth: 400,
          column: [
            {
              label: "模板名称",
              prop: "classifyTemplateOidName",
              span: 24,
            },
            {
              label: "属性名称",
              prop: "name",
              span: 24,
            },
          ],
        },
      };
    },
    computed: {
      ...mapGetters(["permission"]),
      permissionList() {
        // console.log(this.permission.codeSynonym);
        return {
          addBtn: this.vaildData(this.permission.codeSynonym.codeSynonym_add, false),
          viewBtn: this.vaildData(this.permission.codeSynonym.codeSynonym_view, false),
@@ -136,6 +219,30 @@
            this.$refs.crud.toggleSelection();
          });
      },
      /** æŸ¥çœ‹ä½¿ç”¨èŒƒå›´ */
      viewUseRange(){
        if (this.selectionList.length === 0) {
          this.$message.warning("请选择至少一条数据");
          return;
        }
        this.isUseRangeVisible = true;
        this.useRangeloading = true;
        listUseRange({"oid":this.selectionList[0].oid}).then(res=>{
          // console.log(res);
          this.useRangeData = res.data.data;
          this.useRangeloading = false;
        })
      },
      /** åœç”¨å¯ç”¨è¿‘义词查询规则 */
      async enableOrDeactivatse(oid, update) {
        updateStatus({oid:oid,lcStatus:update}).then(res=>{
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
      },
      beforeOpen(done, type) {
        if (["edit", "view"].includes(type)) {
          getDetail(this.form.oid).then(res => {
@@ -156,6 +263,12 @@
      },
      selectionChange(list) {
        this.selectionList = list;
        this.$refs.crud.setCurrentRow(this.selectionList[list.length - 1]);
      },
      /** å•击行实现行选择*/
      rowClick(row) {
        this.$refs.crud.toggleSelection();
        this.$refs.crud.toggleRowSelection(row); //选中当前行
      },
      selectionClear() {
        this.selectionList = [];
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateAttrDTO.java
@@ -44,6 +44,7 @@
     * æ‰€å±žæ¨¡æ¿æ˜¾ç¤ºæ–‡æœ¬
     */
    private String classifyTemplateOidName;
    /**
     * æ‰€å±žåˆ†ç±»ä¸­çš„属性主键
     */
@@ -53,6 +54,7 @@
     * æ‰€å±žåˆ†ç±»ä¸­çš„属性主键显示文本
     */
    private String classifyAttributeOidName;
    /**
     * å±žæ€§çš„类型
     */
@@ -79,6 +81,11 @@
    private String sameRepeatAttrFlag;
    /**
     * è¿‘义词查询规则
     */
    private String sysonymRuleOids;
    /**
     * æ˜¯å¦æŽ’序
     */
    private String sortAttrFlag;
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClassifyTemplateAttr.java
@@ -75,6 +75,11 @@
    @VciFieldType(VciFieldTypeEnum.VTBoolean)
    private String sameRepeatAttrFlag;
    /**
     * è¿‘义词查询规则
     */
    private String sysonymRuleOids;
    /**
     * æ˜¯å¦æŽ’序
     */
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSynonym.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill åº„骞 (smallchill@163.com)
 */
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.constant.CodeTableNameConstant;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
 * è¿‘义词维护 å®žä½“ç±»
 *
 * @author yuxc
 * @since 2023-04-04
 */
@Data
@TableName(CodeTableNameConstant.PL_CODE_SYNONYM)
@ApiModel(value = "PlCodeSynonym对象", description = "近义词维护")
public class CodeSynonym extends BaseModel implements Serializable {
    /**
     * æ‰€å±žæ¨¡æ¿ TODO:后续讨论近义词管理只做维护不做绑定操作
     */
    /*@ApiModelProperty(value = "所属模板")
    private String codeclassifytemplateoid;*/
    /**
     * æºå€¼
     */
    @ApiModelProperty(value = "源值")
    private String sourceValue;
    /**
     * åŒä¹‰è¯
     */
    @ApiModelProperty(value = "同义词")
    private String synonymValue;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSynonymEntity.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/ICodeSynonymClient.java
@@ -16,7 +16,7 @@
 */
package com.vci.ubcs.code.feign;
import com.vci.ubcs.code.entity.CodeSynonymEntity;
import com.vci.ubcs.code.entity.CodeSynonym;
import org.springblade.core.mp.support.BladePage;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@@ -44,6 +44,6 @@
     * @return BladePage
     */
    @GetMapping(TOP)
    BladePage<CodeSynonymEntity> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
    BladePage<CodeSynonym> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeSynonymVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyTemplateAttrVO.java
@@ -68,6 +68,11 @@
    private String sameRepeatAttrFlag;
    /**
     * è¿‘义词查询规则
     */
    private String sysonymRuleOids;
    /**
    * æ˜¯å¦æŽ’序
    */
    private String sortAttrFlag;
@@ -291,6 +296,7 @@
     * çº§è”查询属性
     */
    private String parentQueryAttr;
    /**
     * è¾“入提示
     */
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeSynonymVO.java
@@ -1,6 +1,9 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.ubcs.code.entity.CodeSynonym;
import com.vci.ubcs.starter.revision.model.BaseModel;
import java.io.Serializable;
/**
 * åŒä¹‰è¯é…ç½®æ˜¾ç¤ºå¯¹è±¡
@@ -8,96 +11,11 @@
 * @author weidy
 * @date 2022-02-17
 */
public class CodeSynonymVO extends BaseModel {
public class CodeSynonymVO extends CodeSynonym implements Serializable {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707118039132189L;
    /**
    * æ‰€å±žç¼–码规则
    */
    private String codeclassifytemplateoid;
    /**
    * æ‰€å±žç¼–码规则显示文本
    */
    private String codeclassifytemplateoidName;
    /**
    * æºå€¼
    */
    private String sourcevalue;
    /**
    * åŒä¹‰è¯
    */
    private String synonymvalue;
    /**
     * èŽ·å– æ‰€å±žç¼–码规则
     */
    public String getCodeclassifytemplateoid (){
        return codeclassifytemplateoid;
    }
    /**
    * è®¾ç½® æ‰€å±žç¼–码规则
    */
    public void setCodeclassifytemplateoid (String codeclassifytemplateoid){
        this.codeclassifytemplateoid = codeclassifytemplateoid;
    }
    /**
     * èŽ·å–æ‰€å±žç¼–ç è§„åˆ™æ˜¾ç¤ºæ–‡æœ¬
     */
    public String getCodeclassifytemplateoidName (){
        return codeclassifytemplateoidName;
    }
    /**
    * è®¾ç½®æ‰€å±žç¼–码规则显示文本
    */
    public void setCodeclassifytemplateoidName (String codeclassifytemplateoidName){
        this.codeclassifytemplateoidName = codeclassifytemplateoidName;
    }
    /**
     * èŽ·å– æºå€¼
     */
    public String getSourcevalue (){
        return sourcevalue;
    }
    /**
    * è®¾ç½® æºå€¼
    */
    public void setSourcevalue (String sourcevalue){
        this.sourcevalue = sourcevalue;
    }
    /**
     * èŽ·å– åŒä¹‰è¯
     */
    public String getSynonymvalue (){
        return synonymvalue;
    }
    /**
    * è®¾ç½® åŒä¹‰è¯
    */
    public void setSynonymvalue (String synonymvalue){
        this.synonymvalue = synonymvalue;
    }
    @Override
    public String toString() {
        return "CodeSynonymVO{" +
        "codeclassifytemplateoid='" + codeclassifytemplateoid +"'," +
        "codeclassifytemplateoidName='" + codeclassifytemplateoidName +"'," +
        "sourcevalue='" + sourcevalue +"'," +
        "synonymvalue='" + synonymvalue +"'," +
        "}" + super.toString();
    }
}
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/vo/BtmTypeAttributeVO.java
@@ -171,5 +171,5 @@
    /**
     * æ˜¯å¦é»˜è®¤å±žæ€§
     */
    private Boolean iseDfaultAttr;
    private Boolean isDefaultAttr;
}
Source/UBCS/ubcs-service/ubcs-code/pom.xml
@@ -153,6 +153,10 @@
            <version>3.0.1.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>
    </dependencies>
    <build>
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeRuleController.java
@@ -160,8 +160,7 @@
    @ApiOperationSupport(order = 11)
    @ApiOperation(value = "查看主数据编码规则的使用范围", notes = "传入oid")
    public R<Collection<CodeClassifyVO>> listUseRange(@Valid @RequestParam String oid){
        Collection<CodeClassifyVO> voList = codeRuleService.listUseRangeInCodeClassify(oid);
        return R.data(voList);
        return R.data(codeRuleService.listUseRangeInCodeClassify(oid));
    }
    /**
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/CodeSynonymClient.java
@@ -18,7 +18,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.vci.ubcs.code.entity.CodeSynonymEntity;
import com.vci.ubcs.code.entity.CodeSynonym;
import com.vci.ubcs.code.mapper.CodeSynonymMapper;
import com.vci.ubcs.code.service.ICodeSynonymService;
import lombok.AllArgsConstructor;
@@ -45,11 +45,11 @@
    CodeSynonymMapper codeSynonymMapper;
    @Override
    @GetMapping(TOP)
    public BladePage<CodeSynonymEntity> top(Integer current, Integer size) {
    public BladePage<CodeSynonym> top(Integer current, Integer size) {
        Query query = new Query();
        query.setCurrent(current);
        query.setSize(size);
        IPage<CodeSynonymEntity> page = codeSynonymMapper.selectPage(Condition.getPage(query), Wrappers.emptyWrapper());
        IPage<CodeSynonym> page = codeSynonymMapper.selectPage(Condition.getPage(query), Wrappers.emptyWrapper());
        return BladePage.of(page);
//        return null;
    }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSerialValueMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.entity.CodeSerialValue;
import com.vci.ubcs.code.entity.CodeSynonymEntity;
import org.apache.ibatis.annotations.Param;
import java.util.List;
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSynonymMapper.java
@@ -17,11 +17,7 @@
package com.vci.ubcs.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vci.ubcs.code.entity.CodeSynonymEntity;
import com.vci.ubcs.code.vo.CodeSynonymVO;
import java.util.List;
import com.vci.ubcs.code.entity.CodeSynonym;
/**
 * è¿‘义词维护 Mapper æŽ¥å£
@@ -29,16 +25,7 @@
 * @author yuxc
 * @since 2023-04-04
 */
public interface CodeSynonymMapper extends BaseMapper<CodeSynonymEntity> {
    /**
     * è‡ªå®šä¹‰åˆ†é¡µ
     *
     * @param page
     * @param plCodeSynonym
     * @return
     */
    List<CodeSynonymVO> selectPlCodeSynonymPage(IPage page, CodeSynonymVO plCodeSynonym);
public interface CodeSynonymMapper extends BaseMapper<CodeSynonym> {
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyTemplateAttrService.java
@@ -1,9 +1,11 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.vci.ubcs.code.dto.CodeClassifyTemplateAttrDTO;
import com.vci.ubcs.code.entity.CodeClassify;
import com.vci.ubcs.code.entity.CodeClassifyTemplateAttr;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
@@ -146,4 +148,11 @@
     */
    R copyto(CodeClassifyTemplateAttrDTO codeClassifyAttrDTO);
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param wrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡
     */
    List<CodeClassifyTemplateAttr> selectByWrapper(Wrapper wrapper);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeSynonymService.java
@@ -16,8 +16,13 @@
 */
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vci.ubcs.code.vo.CodeSynonymVO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.CodeSynonym;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import org.springblade.core.tool.api.R;
import java.util.List;
import java.util.Map;
/**
 * è¿‘义词维护 æœåŠ¡ç±»
@@ -25,16 +30,41 @@
 * @author yuxc
 * @since 2023-04-04
 */
public interface ICodeSynonymService  {
public interface ICodeSynonymService extends IService<CodeSynonym> {
    /**
     * è‡ªå®šä¹‰åˆ†é¡µ
     *
     * @param page
     * @param plCodeSynonym
     * è¿‘义词维护 æ–°å¢ž
     * @param codeSynonym
     * @return
     */
    IPage<CodeSynonymVO> selectPlCodeSynonymPage(IPage<CodeSynonymVO> page, CodeSynonymVO plCodeSynonym);
    boolean addSave( CodeSynonym codeSynonym);
    /**
     * è¿‘义词维护 ä¿®æ”¹
     * @param codeSynonym
     * @return
     */
    boolean editSave(CodeSynonym codeSynonym);
    /**
     * è¿‘义词状态停用启用
     * @param map
     * @return
     */
    boolean updateStatus(Map<String,String> map);
    /**
     * åˆ é™¤
     * @param oids
     * @return
     */
    R deleteDataByIds(String oids);
    /**
     * æŸ¥çœ‹è¿‘义词查询规则使用范围
     * @param oid
     * @return
     */
    List<CodeClassifyTemplateAttrVO> listUseRangeInClsTempAttr(String oid);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -122,6 +122,7 @@
     * ä¸Šçº§èŠ‚ç‚¹çš„å±žæ€§åç§°
     */
    public static  final String PARENT_FIELD_NAME = "parentCodeClassifyOid";
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param wrapper æŸ¥è¯¢å°è£…器
@@ -1526,7 +1527,5 @@
        wrapper.eq("parentCodeClassifyOid",codeClassifyOid);
        return codeClassifyMapper.selectCount(wrapper).intValue();
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,6 +10,7 @@
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.vci.ubcs.code.dto.CodeClassifyTemplateAttrDTO;
import com.vci.ubcs.code.entity.CodeClassify;
import com.vci.ubcs.code.entity.CodeClassifyTemplateAttr;
import com.vci.ubcs.code.entity.CodeClassifyTemplate;
import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum;
@@ -205,7 +207,7 @@
     * @throws VciBaseException æ‹·è´å±žæ€§å‡ºé”™çš„æ—¶å€™ä¼šæŠ›å‡ºå¼‚常
     */
    @Override
    public  CodeClassifyTemplateAttrVO codeClassifyTemplateAttrDO2VO(CodeClassifyTemplateAttr codeClassifyTemplateAttrDO) throws VciBaseException{
    public CodeClassifyTemplateAttrVO codeClassifyTemplateAttrDO2VO(CodeClassifyTemplateAttr codeClassifyTemplateAttrDO) throws VciBaseException{
        CodeClassifyTemplateAttrVO vo = new CodeClassifyTemplateAttrVO();
        if(codeClassifyTemplateAttrDO != null){
            BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDO,vo);
@@ -870,4 +872,14 @@
        return R.success("操作成功!");
    }
    /**
     * ä½¿ç”¨æŸ¥è¯¢å°è£…器来查询
     * @param wrapper æŸ¥è¯¢å°è£…器
     * @return æ•°æ®å¯¹è±¡
     */
    @Override
    public List<CodeClassifyTemplateAttr> selectByWrapper(Wrapper wrapper) {
        return codeClassifyTemplateAttrMapper.selectList(wrapper);
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeSynonymServiceImpl.java
@@ -16,13 +16,33 @@
 */
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
import com.vci.ubcs.code.entity.CodeClassifyTemplate;
import com.vci.ubcs.code.entity.CodeClassifyTemplateAttr;
import com.vci.ubcs.code.entity.CodeSynonym;
import com.vci.ubcs.code.mapper.CodeSynonymMapper;
import com.vci.ubcs.code.service.ICodeClassifyTemplateAttrService;
import com.vci.ubcs.code.service.ICodeSynonymService;
import com.vci.ubcs.code.vo.CodeSynonymVO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.wrapper.CodeClassifyTemplateAttrWrapper;
import com.vci.ubcs.starter.enumpack.CodeTableNameEnum;
import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
import com.vci.ubcs.starter.util.UBCSCondition;
import lombok.AllArgsConstructor;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * è¿‘义词维护 æœåŠ¡å®žçŽ°ç±»
@@ -31,15 +51,97 @@
 * @since 2023-04-04
 */
@Service
public class CodeSynonymServiceImpl implements ICodeSynonymService {
@AllArgsConstructor
public class CodeSynonymServiceImpl extends ServiceImpl<CodeSynonymMapper, CodeSynonym> implements ICodeSynonymService {
    @Resource
    CodeSynonymMapper codeSynonymMapper;
    private final CodeSynonymMapper codeSynonymMapper;
    private final ICodeClassifyTemplateAttrService codeClassifyTemplateAttrService;
    /**
     * è¿‘义词维护 æ–°å¢ž
     * @param codeSynonym
     * @return
     */
    @Override
    public IPage<CodeSynonymVO> selectPlCodeSynonymPage(IPage<CodeSynonymVO> page, CodeSynonymVO plCodeSynonym) {
        return page.setRecords(codeSynonymMapper.selectPlCodeSynonymPage(page, plCodeSynonym));
    public boolean addSave(CodeSynonym codeSynonym) {
        if(codeSynonym.getSynonymValue().isEmpty() || codeSynonym.getSourceValue().isEmpty()){
            throw new ServiceException("源值和近义词不能为空");
        }
        DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeSynonym, MdmBtmTypeConstant.CODE_SYNONYM);
        // æ·»åŠ æ—¶é»˜è®¤ä¸ºç¼–è¾‘ä¸­
        codeSynonym.setLcStatus(FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_RELEASED);
        return SqlHelper.retBool(codeSynonymMapper.insert(codeSynonym));
    }
    /**
     * è¿‘义词维护 ä¿®æ”¹
     * @param codeSynonym
     * @return
     */
    @Override
    public boolean editSave(CodeSynonym codeSynonym) {
        DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeSynonym);
        return SqlHelper.retBool(codeSynonymMapper.updateById(codeSynonym));
    }
    /**
     * è¿‘义词状态停用启用
     * @param map
     * @return
     */
    @Override
    public boolean updateStatus(Map<String, String> map) {
        if(Func.isEmpty(map.getOrDefault("oid",""))){
            throw new ServiceException("必传参数oid不能为空!");
        }
        if(Func.isEmpty(map.getOrDefault("lcStatus",""))){
            throw new ServiceException("生命周期状态不能为空!");
        }
        LambdaUpdateWrapper<CodeSynonym> updateWrapper = Wrappers.<CodeSynonym>update()
            .lambda().eq(CodeSynonym::getOid, map.get("oid"))
            .set(CodeSynonym::getLcStatus, map.get("lcStatus"));
        return SqlHelper.retBool(this.codeSynonymMapper.update(null,updateWrapper));
    }
    /**
     * åˆ é™¤
     * @param oids
     * @return
     */
    @Override
    public R deleteDataByIds(String oids) {
        if(Func.isBlank(oids)){
            return R.fail("未获取的参数oid");
        }
        List<Long> oidList = Func.toLongList(oids);
        LambdaQueryWrapper<CodeClassifyTemplateAttr> wrapper = Wrappers.<CodeClassifyTemplateAttr>query().lambda();
        oidList.stream().forEach(item->{
            wrapper.or().like(CodeClassifyTemplateAttr::getSysonymRuleOids, item);
        });
        List<CodeClassifyTemplateAttr> voList = codeClassifyTemplateAttrService.selectByWrapper(wrapper);
        if(!voList.isEmpty()){
            return R.fail("删除的规则中存在被引用的近义词查询规则!");
        }
        return R.status(SqlHelper.retBool(codeSynonymMapper.deleteBatchIds(oidList)));
    }
    /**
     * æŸ¥çœ‹è¿‘义词查询规则使用范围
     * @param oid
     * @return
     */
    @Override
    public List<CodeClassifyTemplateAttrVO> listUseRangeInClsTempAttr(String oid) {
        MPJLambdaWrapper<CodeClassifyTemplateAttr> mpjLambdaWrapper = new MPJLambdaWrapper<>(CodeClassifyTemplateAttr.class, CodeTableNameEnum.PL_CODE_CLSTEMPATTR.getText())
            .selectAll(CodeClassifyTemplateAttr.class)
            .selectAs(CodeClassifyTemplate::getName,CodeClassifyTemplateAttr::getClassifyTemplateOidName)
            .leftJoin(CodeClassifyTemplate.class,CodeTableNameEnum.PL_CODE_CLSTEMPLATE.getText(),CodeClassifyTemplate::getOid,CodeClassifyTemplateAttr::getClassifyTemplateOid)
            .like(CodeClassifyTemplateAttr::getSysonymRuleOids, oid);
        List<CodeClassifyTemplateAttr> voList = codeClassifyTemplateAttrService.selectByWrapper(
            mpjLambdaWrapper
        );
        return CodeClassifyTemplateAttrWrapper.build().listVO(voList);
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeSynonymWrapper.java
@@ -16,8 +16,11 @@
 */
package com.vci.ubcs.code.wrapper;
import com.vci.ubcs.code.entity.CodeSynonymEntity;
import com.vci.ubcs.code.vo.CodeSynonymVO;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.code.entity.CodeSynonym;
import com.vci.ubcs.code.vo.pagemodel.CodeSynonymVO;
import com.vci.ubcs.omd.cache.EnumCache;
import com.vci.ubcs.omd.enums.EnumEnum;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import java.util.Objects;
@@ -28,23 +31,20 @@
 * @author yuxc
 * @since 2023-04-04
 */
public class CodeSynonymWrapper extends BaseEntityWrapper<CodeSynonymEntity, CodeSynonymVO>  {
public class CodeSynonymWrapper extends BaseEntityWrapper<CodeSynonym, CodeSynonymVO>  {
    public static CodeSynonymWrapper build() {
        return new CodeSynonymWrapper();
     }
    @Override
    public CodeSynonymVO entityVO(CodeSynonymEntity plCodeSynonym) {
        CodeSynonymVO plCodeSynonymVO = Objects.requireNonNull(BeanUtil.copy(plCodeSynonym, CodeSynonymVO.class));
    public CodeSynonymVO entityVO(CodeSynonym plCodeSynonym) {
        CodeSynonymVO codeSynonymVO = Objects.requireNonNull(BeanUtil.copy(plCodeSynonym, CodeSynonymVO.class));
        if(StringUtils.isNotBlank(codeSynonymVO.getLcStatus())){
            codeSynonymVO.setLcStatusText(EnumCache.getValue(EnumEnum.CODE_RULE_LC,codeSynonymVO.getLcStatus()));
        }
        //User createUser = UserCache.getUser(plCodeSynonym.getCreateUser());
        //User updateUser = UserCache.getUser(plCodeSynonym.getUpdateUser());
        //plCodeSynonymVO.setCreateUserName(createUser.getName());
        //plCodeSynonymVO.setUpdateUserName(updateUser.getName());
        return plCodeSynonymVO;
        return codeSynonymVO;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClassifyTemplateAttrMapper.xml
@@ -2,7 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vci.ubcs.code.mapper.CodeClassifyTemplateAttrMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="CodeClstempattrResultMap" type="com.vci.ubcs.code.entity.CodeClassifyTemplateAttr">
        <result column="OID" property="oid"/>
@@ -36,6 +35,7 @@
        <result column="KEYATTRFLAG" property="keyAttrFlag"/>
        <result column="QUERYATTRFLAG" property="qrcodeFlag"/>
        <result column="SENIORQUERYATTRFLAG" property="seniorQueryAttrFlag"/>
        <result column="SYSONYMRULEOIDS" property="sysonymRuleOids"/>
        <result column="SAMEREPEATATTRFLAG" property="sameRepeatAttrFlag"/>
        <result column="SORTATTRFLAG" property="sortAttrFlag"/>
        <result column="QRCODEFLAG" property="qrcodeFlag"/>
@@ -107,6 +107,5 @@
          AND PCC.classifytemplateoid IN (${oid})
        ORDER BY PCC.ORDERNUM ASC
    </select>
</mapper>
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeSynonymMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="com.vci.ubcs.code.mapper.CodeSynonymMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="plCodeSynonymResultMap" type="com.vci.ubcs.code.entity.CodeSynonymEntity">
    <resultMap id="plCodeSynonymResultMap" type="com.vci.ubcs.code.entity.CodeSynonym">
        <result column="OID" property="oid"/>
        <result column="REVISIONOID" property="revisionoid"/>
        <result column="NAMEOID" property="nameoid"/>