ludc
2023-06-20 ded8d1fa55a11be6e5fd4226cadc1fd4bc250d68
MdmEngineServiceImpl修改
已修改19个文件
426 ■■■■ 文件已修改
Source/UBCS-WEB/src/api/batchImport/index.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/BatchImport/index.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/FormTemplate/index.vue 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/advanced-query/advancedQuery.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebRefer.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/util/func.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/MasterData/items.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/batchImport/index.js
@@ -6,7 +6,8 @@
  return request({
    url: '/api/ubcs-code/mdmEngineController/downloadImportExcelHistory',
    method: 'get',
    params
    params,
    responseType: 'blob'
  })
}
// 下载错误日志
@@ -16,4 +17,12 @@
    method: 'get',
    params
  })
}
// 导入数据展示
export const importDataShow = (redisOid) => {
  return request({
    url: '/api/ubcs-code/mdmEngineController/gridclassifys',
    method: 'get',
    params: {redisOid: redisOid + "-class"}
  })
}
Source/UBCS-WEB/src/components/BatchImport/index.vue
@@ -53,6 +53,7 @@
import {
  downloadHistoryImportTemplate,
  downloadErrorFile,
  importDataShow
} from "../../api/batchImport/index";
import { getToken } from "@/util/auth";
export default {
@@ -69,7 +70,7 @@
    },
    codeClassifyOid: {
      type: String,
      default: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B",
      default: "",
    },
    type: {
      type: String,
@@ -124,11 +125,11 @@
    downloadTemplateFun() {
      this.downloadLoading = true;
      downloadHistoryImportTemplate({
        codeClassifyOid: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B",
        codeClassifyOid: this.codeClassifyOid,
      })
        .then((res) => {
          this.downloadLoading = false;
          console.log(res);
          this.$utilFunc.downloadFileByBlob(res.data, "历史数据导入模板.xls");
        })
        .catch(() => {
          this.downloadLoading = false;
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
@@ -223,6 +223,11 @@
    this.doLayout()
  },
  watch: {
    tableHeadDataFateher:{
      handler(newval,oldval){
        this.options=newval.tableDefineVO.seniorQueryColumns
      }
    },
    codeClassifyOid: {
      handler(newval, oldval) {
        this.codeClassifyOid = newval;
Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue
@@ -712,7 +712,7 @@
      if(data.field){
        this.form[data.field]=data.value || '';
        this.form[data.showField]=data.text || '';
        this.$emit("getFormData", this.form);
        this.$emit("referConfigDataUpdate", data);
      }
    }
  },
Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -30,7 +30,7 @@
      "
    >
      <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
        <el-tab-pane label="码值申请" name="codeApply" v-if="showCodeApply">
        <el-tab-pane label="码值申请" name="codeApply">
          <FormTempalte
            v-bind="$attrs"
            :type="type"
@@ -38,6 +38,7 @@
            :selfColumnConfig="selfColumnConfig"
            ref="CodeApply"
            @getFormData="getFormData"
            @referConfigDataUpdate="referConfigDataUpdate"
          ></FormTempalte>
        </el-tab-pane>
        <el-tab-pane
@@ -59,9 +60,9 @@
    </div>
    <div class="avue-dialog__footer" v-if="type !== 'detail'">
      <el-button @click="close()">取 消</el-button>
      <el-button @click="submit()" type="primary" :loading="submitBtnLoading"
        >{{ submitText }}</el-button
      >
      <el-button @click="submit()" type="primary" :loading="submitBtnLoading">{{
        submitText
      }}</el-button>
      <el-button
        @click="resembleQuerySubmit"
        type="primary"
@@ -107,8 +108,8 @@
    },
    submitText: {
      type: String,
      default: '确 定'
    }
      default: "确 定",
    },
  },
  data() {
    return {
@@ -132,6 +133,8 @@
          required: this.isRequired,
          dicData: this.getOptionList,
          type: this.getType,
          referConfig: this.getReferConfig,
          readOnly: this.getDisabled,
        },
        exchange: {
          text: "name",
@@ -167,7 +170,7 @@
  methods: {
    openDialog() {
      this.getFormTemplate();
      if (this.type === 'add') {
      if (this.type === "add") {
        this.getCodeRule();
      }
    },
@@ -188,8 +191,8 @@
              res.data.resembleTableVO.cols.length > 0;
            this.resembleTableColumn = res.data.resembleTableVO.cols || [];
            if (this.hasResemble) {
              this.activeName = 'resembleQuery'
              this.showResembleQuery = true
              this.activeName = "resembleQuery";
              this.showResembleQuery = true;
            }
            this.$refs.FormTempalte.templateRender(res.data.formDefineVO.items);
          }
@@ -209,16 +212,179 @@
            "codevariablesec",
            "coderefersec",
          ];
          this.secVOList = (res.data.data.secVOList || []).filter((item) =>
            typeList.includes(item)
          );
          this.secVOList = [
            {
              btmname: "codebasicsec",
              checkInBy: "",
              checkInTime: null,
              checkOutBy: "",
              checkOutTime: null,
              codeDateFormatStr: "",
              codeFillFlag: "",
              codeFillLength: "",
              codeFillLimit: 0,
              codeFillSeparator: "",
              codeFillType: "",
              codeFillTypeText: "",
              codeGetValueType: "",
              codeGetValueTypeText: "",
              codeLevelType: "",
              codeLevelTypeText: "",
              codeLevelValue: 0,
              codeSecLength: "10",
              codeSecLengthType: "code_sec_length_variable",
              codeSecLengthTypeText: "",
              componentCodeFlag: "false",
              copyFromVersion: "",
              createTime: "2023-06-06 14:10:27.000",
              creator: "1",
              customCodeSerialClass: "",
              data: null,
              description: "",
              displayFlag: "false",
              filterSql: "",
              firstR: "1",
              firstV: "1",
              fixedValueVOList: null,
              getValueClass: "",
              id: "0001",
              lastModifier: "1",
              lastModifyTime: "2023-06-06 14:10:27.000",
              lastR: "1",
              lastV: "1",
              lcStatus: "Exist",
              lcStatusText: "存在",
              lctid: "defaultLC",
              matchClassifyValueFlag: "false",
              name: "分类码段父",
              nameOid: "C2998D32-E89E-6D41-0782-88E97E9EC65B",
              nullableFlag: "false",
              oid: "1668926002119708672",
              orderNum: 1,
              owner: "1",
              parentClassifySecOid: "",
              parentClassifySecText: "",
              pkCodeRule: "B4766355-E4E1-490A-833B-D5AB73E9B877",
              referAttributeId: "",
              referAttributeName: "",
              referBtmId: "",
              referBtmName: "",
              referCodeClassifyOid: "",
              referCodeClassifyOidName: "",
              referConfig: "",
              referValueInfo: "",
              revisionOid: "F0049108-6AAE-EAAD-BC76-E6714C2B8F2A",
              revisionRule: "",
              revisionSeq: 1,
              revisionValue: "",
              secretGrade: null,
              secretGradeText: "",
              sectype: "codeclassifysec",
              sectypeText: "分类码段",
              serialDependFlag: "false",
              serialDependOrder: 0,
              serialStart: "",
              serialStep: 0,
              ts: "2023-06-06 14:10:27.716",
              valueCutLength: 0,
              valueCutType: "",
              valueCutTypeText: "",
              versionRule: "0",
              versionSeq: 1,
              versionValue: "1",
            },
            {
              btmname: "codebasicsec",
              checkInBy: "",
              checkInTime: null,
              checkOutBy: "",
              checkOutTime: null,
              codeDateFormatStr: "",
              codeFillFlag: "",
              codeFillLength: "",
              codeFillLimit: 0,
              codeFillSeparator: "",
              codeFillType: "",
              codeFillTypeText: "",
              codeGetValueType: "",
              codeGetValueTypeText: "",
              codeLevelType: "",
              codeLevelTypeText: "",
              codeLevelValue: 0,
              codeSecLength: "10",
              codeSecLengthType: "code_sec_length_variable",
              codeSecLengthTypeText: "",
              componentCodeFlag: "false",
              copyFromVersion: "",
              createTime: "2023-06-06 14:10:50.000",
              creator: "1",
              customCodeSerialClass: "",
              data: null,
              description: "",
              displayFlag: "false",
              filterSql: "",
              firstR: "1",
              firstV: "1",
              fixedValueVOList: null,
              getValueClass: "",
              id: "000101",
              lastModifier: "1",
              lastModifyTime: "2023-06-06 14:10:50.000",
              lastR: "1",
              lastV: "1",
              lcStatus: "Exist",
              lcStatusText: "存在",
              lctid: "defaultLC",
              matchClassifyValueFlag: "false",
              name: "分类码段子",
              nameOid: "1FDB20E3-9F68-A5B0-D097-2142EA054F9B",
              nullableFlag: "false",
              oid: "00AD9FE0-A31D-7962-10DF-DC6115EF80A5",
              orderNum: 2,
              owner: "1",
              parentClassifySecOid: "1668926002119708672",
              parentClassifySecText: "分类码段",
              pkCodeRule: "B4766355-E4E1-490A-833B-D5AB73E9B877",
              referAttributeId: "",
              referAttributeName: "",
              referBtmId: "",
              referBtmName: "",
              referCodeClassifyOid: "",
              referCodeClassifyOidName: "",
              referConfig: "",
              referValueInfo: "",
              revisionOid: "95183EF9-C9AD-2941-1C99-9E9024330D40",
              revisionRule: "",
              revisionSeq: 1,
              revisionValue: "",
              secretGrade: null,
              secretGradeText: "",
              sectype: "codeclassifysec",
              sectypeText: "分类码段",
              serialDependFlag: "false",
              serialDependOrder: 0,
              serialStart: "",
              serialStep: 0,
              ts: "2023-06-06 14:10:50.084",
              valueCutLength: 0,
              valueCutType: "",
              valueCutTypeText: "",
              versionRule: "0",
              versionSeq: 1,
              versionValue: "1",
            },
          ];
          // this.secVOList = (res.data.data.secVOList || []).filter((item) =>
          //   typeList.includes(item)
          // );
          this.$nextTick(() => {
            if (this.secVOList.length > 0 && this.type === 'add') {
              this.showCodeApply = true
              this.activeName = 'codeApply'
            if (this.secVOList.length > 0 && this.type === "add") {
              this.showCodeApply = true;
              this.activeName = "codeApply";
              this.$refs.CodeApply.templateRender(this.secVOList);
            } else {
              this.showCodeApply = false
              this.showCodeApply = false;
            }
          });
        }
@@ -226,6 +392,17 @@
    },
    getFormData(form) {
      this.form = form;
    },
    // 参照组件数据变更
    referConfigDataUpdate(data) {
      const { field } = data;
      this.secVOList = this.secVOList.map((item) => {
        if (item.parentClassifySecOid === field) {
          this.$refs.CodeApply.form[item.oid] = undefined;
          this.$refs.CodeApply.form[item.name] = undefined;
        }
      });
      this.$refs.CodeApply.templateRender();
    },
    resembleQuerySubmit() {
      this.activeName = "resembleQuery";
@@ -271,6 +448,64 @@
    getType(item) {
      return this.selfColumnType[item.sectype];
    },
    getReferConfig(item) {
      let params = {};
      if (item.sectype == "codeclassifysec") {
        params = {
          isMuti: false,
          type: "grid",
          tableConfig: {
            limit: -1,
            cols: [
              {
                field: "id",
                title: "英文名称",
                sort: true,
                width: 150,
              },
              {
                field: "name",
                title: "中文名称",
                sort: true,
                width: 150,
              },
              {
                field: "description",
                title: "描述",
                width: 250,
              },
            ],
            queryColumns: [
              {
                field: "id",
                title: "英文名称",
              },
              {
                field: "name",
                title: "中文名称",
              },
            ],
          },
          url: "api/ubcs-code/ubcs-code/mdmEngineController/listCodeClassifyValueBySecOid",
          extraParams: {
            classifySecOid: item.oid,
            parentClassifyValueOid: "",
          },
        };
      }
      return item.referConfig || params;
    },
    getDisabled(item) {
      if (item.sectype === "codeclassifysec") {
        if (item.parentClassifySecOid) {
          if (!this.form[item.parentClassifySecOid]) {
            return true;
          } else {
            return false;
          }
        }
      }
    },
    isRequired(item) {
      return item.nullableFlag != "true";
    },
Source/UBCS-WEB/src/components/advanced-query/advancedQuery.vue
@@ -193,7 +193,6 @@
            const data = JSON.stringify(this.options);
            this.initOptions = JSON.parse(data);
            //console.log(this.initOptions);
            //console.log(this.initOptions);
            if(this.initOptions.length > 0){
                this.initOptions.forEach((item,index) => {
                if(item.fieldType==='combox') {
@@ -208,7 +207,7 @@
                    }
                }else if(item.fieldType==='refer'){
                    this.$set(item,"referConfigData",{
                        title: item.referConfig.textField,
                        title: item.title,
                        showField: item.showField || item.field,
                        field: item.field,
                        placeholder: item.inputTip || '',
Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
@@ -24,6 +24,7 @@
  },
  created() {},
  mounted() {
    console.log(this.referConfig.options);
    var title = this.referConfig.title || '';
    title = title.replace(":", "");
    title = title ? ('为【' + title + '】选取值') : ('为【' + this.referConfig.showField + '】选取值');
Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
@@ -22,6 +22,7 @@
      </avue-crud>
      <div class="avue-dialog__footer">
        <div class="avue-dialog__footer--left valueInfo">{{ valueInfo }}</div>
        {{ this.referConfig.options.width }}
        <el-button @click="visible=false">取 消</el-button>
        <el-button @click="setValue" type="primary">确 定</el-button>
      </div>
@@ -83,7 +84,7 @@
    console.log('referConfig:')
    console.log(this.referConfig)
  },
  mounted() {
  mounted() {
    if(this.referConfig.options.page){
      this.page.pageSize=this.referConfig.options.page.limit || this.referConfig.options.page.pageSize;
      this.page.currentPage=this.referConfig.options.page.page || this.referConfig.options.page.currentPage;
Source/UBCS-WEB/src/util/func.js
@@ -110,4 +110,18 @@
  static isValuableObj(value) {
    return typeof value === 'object' && value !== null && Object.keys(value).length > 0;
  }
  /**
   * 获取流文件进行文件下
   * @param value
   * @returns {Boolean}
   */
  static downloadFileByBlob(blobData, name) {
    const url = URL.createObjectURL(blobData); // 生成下载链接
    const link = document.createElement("a");
    link.href = url;
    link.download = name; // 指定文件名和格式
    document.body.appendChild(link); // 添加下载链接到页面
    link.click(); // 触发下载
    document.body.removeChild(link); //删除下载
  }
}
Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue
@@ -26,6 +26,7 @@
      :visible="visible3"
      type="historyImport"
      :downloadTemplateFun="downloadTemplateFun"
      :codeClassifyOid="codeClassifyOid"
    ></BatchImport>
    <fileInHtml :options="{}"></fileInHtml>
    <fileinDialog
@@ -53,9 +54,9 @@
      // 默认禁用的表元素
      disabledProp: ["id", "lcstatus"],
      // 表单类型
      type: "edit",
      type: "add",
      templateOid: "f441b131-5ea0-4672-ab74-735b11161928",
      codeClassifyOid: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96",
      codeClassifyOid: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B",
      codeRuleOid: "B95872A6-9CEA-D490-8F1B-9D26548CAF96",
      rowOid: "551FBA49-9A94-2F83-9126-9DD4F9BB14B5",
    };
Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -62,7 +62,6 @@
  methods:{
    codeClassifyOidList(val){
      this.codeClassifyOid=val;
      console.log(val)
    },
    coderuleoidList(val){
      this.coderuleoid=val;
@@ -87,7 +86,6 @@
    },
    nodeClick(val){
      this.templateOid=val;
      console.log('val',val)
      this.isLoading=true;
      setTimeout(() => {
        this.isLoading = false;
Source/UBCS-WEB/vue.config.js
@@ -28,10 +28,10 @@
        //本地服务接口地址
        target: 'http://localhost:37000',
        // target: 'http://192.168.1.51:37000',
        // target: 'http://192.168.1.46:37000',
        //target: 'http://192.168.1.46:37000',
        // target: 'http://dev.vci-tech.com:37000',
        // target: 'http://192.168.1.51:37000/',
        // target: 'http://192.168.1.104:37000',
        //   target: 'http://192.168.1.104:37000',
        // target: 'http://192.168.1.63:37000',
        //target: 'http://192.168.3.7:37000',
        // target: 'http://dev.vci-tech.com:37000',
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
@@ -869,7 +869,7 @@
    }
    public static String getTableName(String btmname) {
        return (VciQueryWrapperForDO.USER_TABLE_COMPATIBILITY ? "pl_code_" : "vcibt_") + btmname.trim().toLowerCase();
        return (VciQueryWrapperForDO.USER_TABLE_COMPATIBILITY ? "vcibt_" : "pl_code_") + btmname.trim().toLowerCase();
    }
    public static Field getTsField(Class c) {
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
@@ -90,7 +90,7 @@
     * @param oid 分类的主键
     * @return 数据集合
     */
    List<CodeClassify> selectAllLevelChildHasPath(@Param("oid") String oid);
    List<CodeClassify> selectAllLevelChildHasPath(@Param("oid") String oid,@Param("fieldInPath")String fieldInPath);
    @MapKey("OID")
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java
@@ -58,7 +58,7 @@
     * @param file excel文件的信息
     * @return 有错误信息的excel
     */
    CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid,String classifyAttr, File file);
    CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid,String classifyAttr, File file) throws Throwable;
    /***
     * 从redis缓存里获取到导入的数据
     * @param codeClassifyOid
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -662,7 +662,7 @@
    @Override
    public List<CodeClassifyVO> listChildrenClassify(String codeClassifyOid, boolean allLevel, String fieldInPath, boolean enable) {
        if(allLevel){
            List<CodeClassify> classifyDOS = codeClassifyMapper.selectAllLevelChildHasPath(codeClassifyOid);
            List<CodeClassify> classifyDOS = codeClassifyMapper.selectAllLevelChildHasPath(codeClassifyOid,fieldInPath);
            if(!CollectionUtils.isEmpty(classifyDOS)){
                classifyDOS = classifyDOS.stream().filter(s->FRAMEWORK_DATA_ENABLED.equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList());
            }
@@ -782,7 +782,7 @@
        Map<String/**路径**/,String/**主键**/> oidPathMap = new HashMap<>();
        //我们需要查询所有已经存在的分类,主要是路径,用来判断分类的数据
        List<CodeClassify> existClassifyDOs = codeClassifyMapper.selectAllLevelChildHasPath("");
        List<CodeClassify> existClassifyDOs = codeClassifyMapper.selectAllLevelChildHasPath("",null);
        Map<String/**路径**/, CodeClassify/**已经存在的数据**/> pathDOMap = Optional.ofNullable(existClassifyDOs).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(s -> {
            String path = s.getPath();
            if(StringUtils.isNotBlank(path) && path.startsWith("#")){
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -1724,71 +1724,71 @@
     * @return Sql语句
     */
    private String getConditionSql(String key, String value, Map<String/**参照的属性**/, String/**实际的属性**/> referFieldMap, Map<String, CodeClassifyTemplateAttrVO> attrVOMap,String btmType) {
        /*if (!Func.hasEmpty(new Object[]{key,value}) && !key.endsWith("_ignore")) {
        if (!Func.hasEmpty(new Object[]{key,value}) && !key.endsWith("_ignore")) {
            if (key.endsWith("_like")) {
                String field = UBCSSqlKeyword.getColumn(key, "_like");
                if (referFieldMap.containsKey(field)) {
                    //说明还是参照里面的,我们默认这种情况下都是字符串吧,因为参照的属性不一定用的平台的属性池里的,所以大部分情况下,显示的属性都是字符串吧
                    return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "concat(%,"+"concat(" + value + ",%)" + SPACE;
                    return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "%" + value + "%)" + SPACE;
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "concat(%,"+"concat(" + getStringValueInWhere(field, value, attrVOMap) + ",%)" + SPACE;
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "%" + getStringValueInWhere(field, value, attrVOMap) + "%)" + SPACE;
                }
            } else if (key.endsWith("_notequal")) {
                String field = UBCSSqlKeyword.getColumn(key, "_notequal");
                if (referFieldMap.containsKey(field)) {
                    return referFieldMap.get(field) + SPACE + " != '" + value + "'" + SPACE;
                    return referFieldMap.get(field) + SPACE + " != " + value + SPACE;
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + " != " + getStringValueInWhere(field, value, attrVOMap);
                }
            } else if (key.endsWith("_likeleft")) {
                String field = UBCSSqlKeyword.getColumn(key, "_likeleft");
                if (referFieldMap.containsKey(field)) {
                    return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "concat(%,"+value+")" + SPACE;
                    return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "%"+value + SPACE;
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "concat(%,"+getStringValueInWhere(field, value, attrVOMap)+")" + SPACE;
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "%" + getStringValueInWhere(field, value, attrVOMap) + SPACE;
                }
            } else if (key.endsWith("_likeright")) {
                String field = UBCSSqlKeyword.getColumn(key, "_likeright");
                if (referFieldMap.containsKey(field)) {
                    return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "concat("+value+",%)" + SPACE;
                    return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + value + "%" + SPACE;
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "concat("+getStringValueInWhere(field, value, attrVOMap)+",%)" + SPACE;
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + getStringValueInWhere(field, value, attrVOMap)+ "%" + SPACE;
                }
            } else if (key.endsWith("_notlike")) {
                String field = UBCSSqlKeyword.getColumn(key, "_notlike");
                if (referFieldMap.containsKey(field)) {
                    return referFieldMap.get(field) + SPACE + "NO LIKE" + SPACE + "concat(%,concat("+value+",%)" + SPACE;
                    return referFieldMap.get(field) + SPACE + "NO LIKE" + SPACE + "%" + value + "%" + SPACE;
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "NO LIKE " + "concat(%,concat"+getStringValueInWhere(field, value, attrVOMap)+",%)" + SPACE;
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "NO LIKE " + "%"+getStringValueInWhere(field, value, attrVOMap)+ "%" + SPACE;
                }
            } else if (key.endsWith("_ge")) {
                String field = UBCSSqlKeyword.getColumn(key, "_ge");
                if (referFieldMap.containsKey(field)) {
                    return referFieldMap.get(field) + SPACE + " >= '" + value + "'" + SPACE;
                    return referFieldMap.get(field) + SPACE + " >= " + value + SPACE;
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + " >= '" + getStringValueInWhere(value, field, attrVOMap) + "'" + SPACE;
                    return (field.contains(".") ? "" : "t.") + field + SPACE + " >= " + getStringValueInWhere(value, field, attrVOMap) + SPACE;
                }
            } else if (key.endsWith("_le")) {
                //说明是<=的。我们需要先获取一下
                String field = UBCSSqlKeyword.getColumn(key, "_le");
                if (referFieldMap.containsKey(field)) {
                    return referFieldMap.get(field) + SPACE + " <= '" + value + "'" + SPACE;
                    return referFieldMap.get(field) + SPACE + " <= " + value + "" + SPACE;
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + " <= '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE;
                    return (field.contains(".") ? "" : "t.") + field + SPACE + " <= " + getStringValueInWhere(field, value, attrVOMap) + SPACE;
                }
            } else if (key.endsWith("_gt")) {
                String field = UBCSSqlKeyword.getColumn(key, "_gt");
                if (referFieldMap.containsKey(field)) {
                    return referFieldMap.get(field) + SPACE + "> '" + value + "'" + SPACE;
                    return referFieldMap.get(field) + SPACE + "> " + value + SPACE;
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "> '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE;
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "> " + getStringValueInWhere(field, value, attrVOMap) + SPACE;
                }
            } else if (key.endsWith("_lt")) {
                String field = UBCSSqlKeyword.getColumn(key, "_lt");
                if (referFieldMap.containsKey(field)) {
                    return referFieldMap.get(field) + SPACE + "< '" + value + "'" + SPACE;
                    return referFieldMap.get(field) + SPACE + "< " + value + SPACE;
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "< '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE;
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "< " + getStringValueInWhere(field, value, attrVOMap) + SPACE;
                }
            } else if (key.endsWith("_datege")) {
                String field = UBCSSqlKeyword.getColumn(key, "_datege");
@@ -1846,15 +1846,14 @@
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + DateUtil.parse(String.valueOf(getStringValueInWhere(field, value, attrVOMap)), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
                }
            }else {
            }else if(key.endsWith("_equal")) {
                String field = UBCSSqlKeyword.getColumn(key, "_equal");
                if (referFieldMap.containsKey(field)) {
                    return referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE;
                    return referFieldMap.get(field) + SPACE + "= " + value + SPACE;
                } else {
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + getStringValueInWhere(field, value, attrVOMap)+ "'" + SPACE;
                    return (field.contains(".") ? "" : "t.") + field + SPACE + "= " + getStringValueInWhere(field, value, attrVOMap) + SPACE;
                }
            }
            *//*else {
            }else {
                if (referFieldMap.containsKey(key)) {
                    //说明是参照的,我们参照的查询都认为是字符串,如果是时间格式的查询肯定有问题,
                    String selectKey = referFieldMap.get(key);
@@ -1862,11 +1861,11 @@
                } else {
                    return getSqlByValue(key, value, attrVOMap,btmType);
                }
            }*//*
            }
        }
        return "";*/
        return "";
        if (key.endsWith("_begin")) {
        /*if (key.endsWith("_begin")) {
            //说明是>=的。我们需要先获取一下
            String field = (key.substring(0, key.length() - 6).toLowerCase().trim());
            if (referFieldMap.containsKey(field)) {
@@ -1892,7 +1891,7 @@
            } else {
                return getSqlByValue(key, value, attrVOMap,btmType);
            }
        }
        }*/
    }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -759,7 +759,7 @@
     * @return 有错误信息的excel
     */
    @Override
    public CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid, String classifyAttr,File file) {
    public CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid, String classifyAttr,File file) throws  Throwable{
        VciBaseUtil.alertNotNull(codeClassifyOid,"分类的主键");
        ReadExcelOption reo = new ReadExcelOption();
        reo.setReadAllSheet(true);
@@ -2978,21 +2978,35 @@
     * @param cboList 数据的列表
     * @param errorMap 错误的信息
     */
    private void batchCheckIdExistOnOrder(CodeClassifyTemplateVO templateVO,List<ClientBusinessObject> cboList,Map<String ,String> errorMap){
    private void batchCheckIdExistOnOrder(CodeClassifyTemplateVO templateVO,List<ClientBusinessObject> cboList,Map<String ,String> errorMap) throws Throwable{
        List<String> existIds = new ArrayList<>();
        String tableName ="";
        try {
            R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
            if(r.getCode()!=200) {
                throw new Throwable(r.getMsg());
            }
            BtmTypeVO btmTypeVO = r.getData();
            if (btmTypeVO == null) {
                throw new Throwable("根据业务类型未查询到业务类型对象!");
            }
            tableName = btmTypeVO.getTableName();
            if (StringUtils.isBlank(tableName)) {
                throw new Throwable("根据业务类型未查询到业务类型相关联的表");
            }
        }catch (Throwable e){
            throw e;
        }
        String finalTableName = tableName;
        VciBaseUtil.switchCollectionForOracleIn(cboList).stream().forEach(cbos -> {
            Map<String, String> conditionMap = new HashMap<>();
            conditionMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(cbos.stream().map(s -> s.getId()).collect(Collectors.toSet()).toArray(new String[0])) + ")");
            R<BtmTypeVO>  r= btmTypeClient.getDetail(templateVO.getBtmTypeId());
            BtmTypeVO btmTypeVO =r.getData();
            String tableName=btmTypeVO.getTableName();
            StringBuffer sb=new StringBuffer();
            sb.append(" select id from ");
            sb.append(tableName);
            sb.append(finalTableName);
            sb.append(" where 1=1 ");
            sb.append(" id in (");
            sb.append(" and id in (");
            sb.append(VciBaseUtil.toInSql(cbos.stream().map(s -> s.getId()).collect(Collectors.toSet()).toArray(new String[0])));
            sb.append(")");
            List<String> idList= commonsMapper.selectById(sb.toString());
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
@@ -122,7 +122,14 @@
               codekeyattrrepeatoid.name as codeKeyAttrRepeatOidName,
               coderesembleruleoid.name as codeResembleRuleOidName,
               level as datalevel,
               SYS_CONNECT_BY_PATH(codeclassify0.id, '#') as path
                <choose>
                    <when test='fieldInPath=="name"'>
                        SYS_CONNECT_BY_PATH(codeclassify0.name, '#')   as path
                    </when>
                    <otherwise>
                        SYS_CONNECT_BY_PATH(codeclassify0.id, '#')   as path
                    </otherwise>
                </choose>
        from pl_code_classify codeclassify0
                 left join pl_code_rule coderuleoid
                           on codeclassify0.codeRuleOid = coderuleoid.oid