ludc
2023-07-12 8be1b149327239d4fb9587e72bc8f438013f9838
Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
已修改33个文件
376 ■■■■ 文件已修改
Source/UBCS-WEB/src/api/GetItem.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Master/MasterTree.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/attrCrud.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/file/inDialog.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/file/inHtml.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/file/main.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/template/SetPersonnel.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/work/BusinessWork.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/MasterData/items.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/Business.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/process/leave/handle.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlFieldMappingAttrBO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/VciSpringUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlDmMapperProcessor.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlOracleMapperProcessor.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllSqlLiteMapperProcessor.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeAttributeMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/BtmTypeAttributeMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/GetItem.js
@@ -46,3 +46,11 @@
  })
}
//流程执行中表头
export function FlowTable(data){
  return request({
    url: 'api/ubcs-code/mdmEngineController/getFlowdUIInfoByClassifyOid',
    method: 'get',
    data
  })
}
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
@@ -27,7 +27,7 @@
      </div>
      <el-row style="height: 700px; width: 100%">
        <div>
          <el-button v-for="(item, index) in masterVrBtnList" :key="index" plain size="small" type="primary"
          <el-button v-for="(item, index) in masterVrBtnList" :key="index" plain size="small" type="primary" v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)"
                     @click="handelBtnClick(item)">{{
              item.name
            }}
@@ -92,7 +92,8 @@
    integrationTransfer,
    SetPersonnel,
    ResembleQueryDialog,
    BatchImport
    BatchImport,
    // fileInHtml
  },
  name: "Crud.vue",
  props: {
@@ -148,9 +149,11 @@
        type: "PUBLIC",
        template: "",
        vars: {
          codeClassifyOid: ""
          codeClassifyOid: "",
          templateOid:""
        }
      },
      visibleNames:[],
      visibleFlow: false,
      transferData: [],
      transferProps: {
@@ -193,7 +196,15 @@
        codeClassifyOid: ''
      },
      // 主数据按钮
      masterVrBtnList: []
      masterVrBtnList: [],
      fileOptions:{
        ownbizOid:"1",
        ownbizBtm:"1",
        fileDocClassify:'!=processAuditSuggest',
        fileDocClassifyName:'',
        hasDownload:true,
        hasUpload:true
      }
    };
  },
  computed: {},
@@ -213,8 +224,7 @@
    codeClassifyOid: {
      handler(newval, oldval) {
        this.codeClassifyOid = newval;
        this.parameter.vars.codeClassifyOid = newval;
        console.log('子',newval)
        this.parameter.vars.codeClassifyOid = newval
      },
      deep: true,
    },
@@ -251,6 +261,8 @@
    templateOid: {
      handler(newval, oldval) {
        this.parameter.code = newval;
        this.fileOptions.ownbizOid="1";
        this.parameter.vars.templateOid = newval
      },
      deep: true,
    },
@@ -334,6 +346,10 @@
      this.editShow = column.property;
      this.rowOid = row.oid;
    },
    handleRowClick(row,column){
      this.fileOptions.ownbizOid= row.oid;
      this.fileOptions.ownbizBtm=row.btmname;
    },
    //删除
    enumDeleteRow(row) {
      this.tableData.splice(row, 1);
@@ -352,8 +368,7 @@
    CrudHeaderRend() {
      if (this.codeClassifyOid != "") {
        MasterTable({
          codeClassifyOid: this.codeClassifyOid,
          functionId: 5,
          codeClassifyOid: this.codeClassifyOid
        }).then((res) => {
          this.options = res.data.tableDefineVO.seniorQueryColumns;
          this.List = res.data.tableDefineVO.cols[0];
@@ -421,19 +436,18 @@
      });
    },
    //多选
    handleSelectionChange(row) {
      console.log(row)
      if (this.row) {
        this.rowOid = row[0].oid;
      } else {
        this.rowOid = "";
      }
      this.selectRow = row;
    handleSelectionChange(list) {
      this.selectRow = list;
      this.parameter.ids = [];
      row.forEach((item) => {
      list.forEach((item) => {
        this.parameter.ids.push(item.oid);
      });
      console.log('  this.parameter.ids', this.parameter.ids)
    },
    //选择
    handleSelection(list,row) {
      this.fileOptions.ownbizOid= row.oid;
      this.fileOptions.ownbizBtm=row.btmname;
    },
    //编辑
    editHandler() {
@@ -504,9 +518,9 @@
      })
    },
    openBatchImport(type) {
      this.batchImportData.visible = true;
      this.batchImportData.type = type;
      this.batchImportData.codeClassifyOid = this.codeClassifyOid;
      this.batchImportData.visible = true
      this.batchImportData.type = type
      this.batchImportData.codeClassifyOid = this.codeClassifyOid
    }
  },
};
@@ -517,6 +531,7 @@
  .el-table--scrollable-x .el-table__body-wrapper {
    overflow: auto !important;
  }
  .el-table__fixed-right-patch {
    background-color: #f5f7fa !important;
  }
@@ -525,4 +540,21 @@
/deep/ .el-button {
  margin: 0 10px 10px 0;
}
.main {
  display: flex;
  flex-direction: column;
  height: calc(100vh - 150px);
  min-height: 400px;
}
.top {
  overflow-y: scroll;
  min-height: 55%;
}
.bottom {
  margin-top: 20px;
  max-height: 43%;
  overflow-y: scroll;
}
</style>
Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -1,7 +1,7 @@
<template>
  <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="Treedata" :defaultExpandAll="false"
             :option="Treeoption"
             style="height: 80.5vh;padding-top: 5px;padding-bottom: 30px"
             style="height: calc(100vh - 150px);"
             @node-click=" nodeClick"
  ></avue-tree>
</template>
Source/UBCS-WEB/src/components/Tree/attrCrud.vue
@@ -1,7 +1,7 @@
<template>
  <div>
    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag" class="app">
      <el-button-group>
    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag">
      <!--新增-->
      <el-button v-if="attrEditVisible == false && attrFlagChiledren==false" size="small" type="primary" icon="el-icon-plus" @click="busineHandle">添加 {{ msg }}</el-button>
      <!--        全屏编辑-->
@@ -10,8 +10,8 @@
      <el-button icon="el-icon-info" size="small" @click="ruleAddHandler">验证规则</el-button>
      <!--        属性分组-->
      <el-button icon="el-icon-menu" size="small" @click="attrVisibleHandle">属性分组</el-button>
      </el-button-group>
      <el-button-group>
      <!--        分类注入-->
      <el-button icon="el-icon-magic-stick" size="small" @click="injectBtn">分类注入</el-button>
        <!--    组合规则-->
@@ -22,8 +22,8 @@
      <el-button size="small" @click="CascadeHandle">级联属性</el-button>
      <!--    预览排序-->
        <el-button size="small" @click="orderHandle" icon="el-icon-arrow-down">预览排序</el-button>
      </el-button-group>
      <el-button-group>
      <!--    保存-->
      <el-button size="small" @click="addsHandler" icon="el-icon-check">保存</el-button>
      <!--    删除-->
@@ -32,7 +32,7 @@
      <el-button size="small" @click="reset" icon="el-icon-refresh-right">重置</el-button>
      <!--    同步到其他模板-->
      <el-button size="small"@click="syncHandle" icon="el-icon-share">同步到其他模板</el-button>
      </el-button-group>
      <!--    编码申请预览-->
      <el-button size="small" @click="applicationHandle" style="">编码申请预览</el-button>
      <!--        验证规则-->
@@ -242,7 +242,7 @@
    </div>
    <el-table :data="ProData"
              style="width: 100%"
              :height='attrEditVisible == false && attrFlagChiledren==false?400 :750'
              height="280"
              @cell-click="handleCellClicks"
              @select="selectHandle"
              @selection-change="selectionChange"
@@ -936,13 +936,11 @@
        column: [
          {
            label: "属性英文名称",
            prop: "id",
            width:110
            prop: "id"
          },
          {
            label: "属性中文名称",
            prop: "name",
            width:110
            prop: "name"
          },
          {
            label: "长度",
@@ -1486,7 +1484,6 @@
    //业务类型选择
    businessSelect(selection, row) {
      this.busineSelectList = selection
      console.log(selection)
    },
    // 从业务类型中选择数据弹窗
    busineHandle() {
@@ -1548,7 +1545,7 @@
      console.log(row)
    },
    //表格选择
    selectionChange(list,) {
    selectionChange(list) {
      this.attrSelectList = list;
      console.log(list)
    },
@@ -1590,6 +1587,8 @@
      }else if(column.property == 'verifyRule'){
        this.RulesForm.expressionTextt=this.CurrentCell.verifyRule;
        this.rulesVisible=true;
        console.log(this.CurrentCell.verifyRule)
        console.log(this.RulesForm.expressionText)
      }
    },
    saveRows() {
@@ -1816,9 +1815,7 @@
</script>
<style scoped lang="scss" >
.app {
   /deep/ .el-button {
     margin: 0 10px 10px 0;
     }
}
</style>
Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue
@@ -94,7 +94,7 @@
        </template>
        <avue-crud :data="BtmData" :option="masterOption" @select="btmSelect"></avue-crud>
        <div style="height: 30px">
          <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >已设置的值为:[{{this.loneTreeNewForm.btmtypename}}]</div>
          <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >已设置的值为:[{{this.loneTreeNewForm.btmTypeName}}]</div>
          <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" >
            <el-button type="primary" size="small" @click="btmHandlerClick">确定</el-button>
            <el-button  size="small" @click="BtmdialogVisible=false">取消</el-button>
@@ -226,7 +226,7 @@
          },
          {
            label: '存储的业务类型',
            prop: 'btmtypename',
            prop: 'btmTypeName',
            labelWidth:128,
            disabled: true,
            rules: [{
@@ -294,7 +294,7 @@
            },
            {
              label: '存储的业务类型',
              prop: 'btmtypename',
              prop: 'btmTypeName',
              labelWidth:128,
              focus:this.btmFoucus,
                // readonly: true,
@@ -355,6 +355,8 @@
      TreeEditSave(this.loneTreeNewForm).then(res=>{
        this.$message.success('修改成功');
        this.Editclose()
        this.$emit('referTreeForm');
        this.$emit('flushed');
        done()
      })
    },
@@ -540,8 +542,8 @@
      }else {
        this.BtmdialogVisible=false;
        this.btmSelectList=[]
        this.$set(this.loneTreeNewForm,'btmtypename',this.btmName ||this.btmOid)
        this.$set(this.loneTreeNewForm,'btmtypeid',this.btmOid)
        this.$set(this.loneTreeNewForm,'btmTypeName',this.btmName ||this.btmOid)
        this.$set(this.loneTreeNewForm,'btmTypeid',this.btmOid)
        this.$emit('MasterHandler',this.loneTreeNewForm)
      }
    },
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
@@ -6,13 +6,19 @@
      <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;">
        <div>
        <div>
          <div style="display: flex;justify-content: space-around">
          <div style="display: flex; flex-direction: column;">
            <div style="display: flex;">
            <el-button plain size="small" type="primary" @click="TreeAdd">添加</el-button>
            <el-button plain size="small" type="primary" @click="TreeEdit">修改</el-button>
            <el-button plain size="small" type="primary" @click="TreeDel">删除</el-button>
<!--            <el-button plain size="small" type="primary" @click="ExportExcel">导出</el-button>-->
<!--            <el-button plain size="small" type="primary" @click="ImportExcel">导入</el-button>-->
            <el-button plain size="small" type="primary" @click="flushed">刷新</el-button>
            </div>
            <div style="display: flex; margin-top: 10px">
              <el-button plain size="small" type="primary" @click="Enable">启用</el-button>
              <el-button plain size="small" type="primary" @click="Deactivate">停用</el-button>
              <el-button plain size="small" type="primary" @click="ImportExcel">导入</el-button>
              <el-button plain size="small" type="primary" @click="ExportExcel">导出</el-button>
            </div>
          </div>
          <div style="display: flex;justify-content: space-around;margin-top: 5px;margin-bottom: 5px">
          </div>
@@ -52,7 +58,7 @@
        </el-dialog>
        <!--        修改对话框-->
        <el-dialog :visible.sync="TreeEditFormVisible" append-to-body title="修改分类">
          <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList" :flag="'edit'" @MasterHandler="MasterHandler" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="TreeFlagCode" ::nodeClickList="nodeClickList"></classifyTreeform>
          <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList" :flag="'edit'" @MasterHandler="MasterHandler" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="TreeFlagCode" ::nodeClickList="nodeClickList" @referTreeForm="referTreeForm" @flushed="flushed"></classifyTreeform>
        </el-dialog>
        <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata" :defaultExpandAll="false"
                   :option="Treeoption"
@@ -73,7 +79,7 @@
        </span>
        <span v-else-if="type.prop==='tab2'">
            <basic-container>
               <avue-crud v-model="crudForm" v-loading="FormLoing" :data="this.Formlist" :option="this.crudTreeOption"
               <avue-crud ref="textCrud" v-model="crudForm" v-loading="FormLoing" :data="this.Formlist" :option="this.crudTreeOption"
                          @row-save="CrudRowSave"
                          @row-del="CrudRowDel"
                          @row-update="CrudRowUpdata"
@@ -83,8 +89,6 @@
            <template slot="menuLeft">
              <el-button plain size="small" type="primary" @click="FindeHanler">查询</el-button>
              <el-button plain size="small" type="primary" @click="TemRefresh">刷新</el-button>
            <el-button plain size="small" type="primary" @click="Enable">启用</el-button>
            <el-button plain size="small" type="primary" @click="Deactivate">停用</el-button>
              <el-button plain size="small" type="primary" @click="CloneBtn">从其它模板克隆</el-button>
              <!--              查询对话框-->
           <el-dialog :visible.sync="FindFormVisible" append-to-body title="高级查询">
@@ -145,6 +149,7 @@
                            <avue-crud v-model="ClonecrudForm" v-loading="FormLoing" :data="this.CloneFormlist"
                                       :option="this.ClonecrudTreeOption"
                                       @selection-change="selectionChange"
                            ></avue-crud>
                         </div>
                       </el-main>
@@ -165,7 +170,16 @@
                    </el-dialog>
                </el-dialog>
            </template>
                  <template #menu="{ size, row }">
                  <template #menu="{ size, row ,index}">
                    <el-button type="text"
                               v-if="row.lcStatus != 'Released'"
                               icon="el-icon-edit-outline "
                                :size="size"
                                @click="$refs.textCrud.rowEdit(row)">编辑</el-button>
                    <el-button type="text"
                               icon="el-icon-delete"
                               :size="size"
                               @click="$refs.textCrud.rowDel(row,index)">删除</el-button>
                <el-button
                  v-show="row.lcStatus === 'Released'"
                  @click="upAndStopAndStart(row, 'upVersion')"
@@ -326,7 +340,7 @@
  //使用inject接收参数
  //Treeoption左侧树新增表单项 Treedata左侧树节点 配置项 crudTreeOption右侧表格配置项 crudTreeData右侧表格显示内容
  //Treeform右侧表单配置项
  inject: [, "crudTreeData"],
  inject: ["crudTreeData"],
  data() {
    return {
      //树节点显示隐藏
@@ -621,7 +635,9 @@
          funAPi: startRelease,
          load: 'startReleaseLoad'
        }
      }
      },
      //模板管理编辑
      showEditBtn:false,
    }
  },
  //tab栏默认是表格
@@ -634,9 +650,7 @@
        this.$refs.tree.setCurrentKey(null)
        this.nodeClickList = {}
        this.TreeList=[]
        this.TreeFlagCode=false
        console.log('后TreeList',this.TreeList)
        console.log('后nodeClickList',this.nodeClickList)
        this.TreeFlagCode=false;
      }
    }, true)
  },
@@ -648,6 +662,8 @@
        height:180,
        selection:true,
        addBtn:this.Formlist.length<=0  && this.nodeClickList != "",
        editBtn:false,
        delBtn:false,
        column: [
          {
            label: "模板编号",
@@ -686,6 +702,10 @@
    }
  },
  methods: {
    //模板管理已发布编辑
    // checkShowEditBtn() {
    //   this.showEditBtn = this.Formlist.some(item => item.lcStatus === 'Released');
    // },
    //编码规则失焦
    CodeFoucus(){
      this.MasterdialogVisible=true;
@@ -1129,6 +1149,7 @@
              this.codeClassifyOid = item.codeclassifyoid
              return item.codeclassifyoid == this.nodeClickList.oid
            }
            console.log('Formlist',this.Formlist)
          })
        }).catch(res => {
          this.$message.error(res)
@@ -1146,6 +1167,14 @@
    treeClick(e) {
      console.log(e);
    },
    //基本信息表单刷新
    referTreeForm(){
       getObjectByOid(this.nodeClickList.oid).then(res => {
        this.TreeList = res.data.data;
      }).catch(res => {
        this.$message.error(res)
      })
    },
    //克隆模板树的点击切换数据
    async ClonenodeClick(data){
      this.ClonenodeClickList=data;
Source/UBCS-WEB/src/components/file/inDialog.vue
@@ -9,6 +9,7 @@
             :width="options.width|| '80%'">
    <fileContent
      :options="options"
      :ownbizOid="options.ownbizOid"
    ></fileContent>
  </el-dialog>
  </div>
Source/UBCS-WEB/src/components/file/inHtml.vue
@@ -1,9 +1,8 @@
<template>
  <basic-container>
    <fileContent
      :options="options"
      :ownbizOid="options.ownbizOid"
    ></fileContent>
  </basic-container>
</template>
<script>
Source/UBCS-WEB/src/components/file/main.vue
@@ -7,6 +7,7 @@
               :before-open="beforeOpen"
               :permission="permissionList"
               v-model="form"
               :height="options.height || 200"
               ref="crud"
               @row-del="rowDel"
               @search-change="searchChange"
@@ -67,13 +68,14 @@
import {validatenull} from "@/util/validate";
export default {
  props: ["options","visible"],
  props: ["options","visible","ownbizOid"],
  data() {
    return {
      form: {},
      query: {},
      params:{},
      loading: false,
      hasPage:this.options.hasPage||false,
      page: {
        pageSize: 10,
        currentPage: 1,
@@ -232,6 +234,12 @@
  mounted() {
  },
  watch:{
    ownbizOid(val){
      this.setParams()
      this.refreshChange()
    }
  },
  methods: {
    setFormItem(){
      /*this.options.formItems=[{
@@ -330,6 +338,12 @@
      }
      this.page.pageSize = this.options.pageObject.limit;
      this.page.currentPage = this.options.pageObject.page;
      this.attachOption.column[1].data.ownbizOid = this.options.ownbizOid || "share";
      this.attachOption.column[1].data.ownBtmName = this.options.ownbizBtm || "share";
      this.attachOption.column[1].data.fileDocClassify = this.options.fileDocClassify || "ADMIN_SHARE";
      this.attachOption.column[1].data.fileDocClassifyName = this.options.fileDocClassifyName || "管理员共享文件"
    },
    handleUpload() {
      this.attachOption.column[1].data.fileOid='';
@@ -448,7 +462,7 @@
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
      this.onLoad(this.page);
    },
    onLoad(page, params={}) {
      this.loading = true;
Source/UBCS-WEB/src/components/template/SetPersonnel.vue
@@ -76,6 +76,7 @@
        visible(n) {
            this.dialogVisible = n;
            if (n) {
              this.saveParam=this.setSaveParam();
                this.apiInit()
                this.apiDict()
            }
Source/UBCS-WEB/src/components/work/BusinessWork.vue
@@ -40,11 +40,11 @@
<script>
import {businese} from '@/api/work/businese'
import {MasterTable} from "@/api/GetItem";
import {FlowTable} from "@/api/GetItem";
import {validatenull} from "@/util/validate";
export default {
  name: "BusinessWork",
  props:['ids','templateId'],
  props:['ids','templateId',"taskId","modelKey","codeClassifyOid"],
  data() {
    return {
      BuinessOids:[],
@@ -78,9 +78,11 @@
    //表格头渲染
    CrudHeaderRend() {
      if (this.codeClassifyOid != "") {
        MasterTable({
          codeClassifyOid: this.codeClassifyOid,
          functionId: 5,
        FlowTable({
          templateId: this.templateId,
          taskId    : this.taskId    ,
          modelKey: this.modelKey,
          codeClassifyOid: this.codeClassifyOid
        }).then((res) => {
          this.options = res.data.tableDefineVO.seniorQueryColumns;
          this.List = res.data.tableDefineVO.cols[0];
@@ -99,7 +101,10 @@
            }else {
              if (item.templet && typeof (item.templet) == 'string' && !validatenull(item.templet) && item.templet.indexOf("function(row,column)")>-1) {
                columnItem.formatter = eval("(" + item.templet + ")");
                //function(row,column){return row[column.property]=='true'?'是':'否'}
              } else if (item.fieldType == "truefalse") {
                columnItem.formatter = function (row, column) {
                  return row[column.property] == 'true' || row[column.property] == '1' ? '是' : '否'
                }
              }
            }
            this.tableHeadData.push(columnItem)
Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -1,7 +1,7 @@
<template>
  <el-container>
    <el-aside>
      <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;">
      <basic-container style="overflow: hidden;">
        <!--          树组件-->
        <master-tree @codeClassifyOid="codeClassifyOidList" @coderuleoid="coderuleoidList" :pageSize="this.pageSize"
          :currentPage="this.currentPage" @tableDataArray="tableDataArrays" @tableHeadDataFateher="tableHeadDatas"
@@ -85,4 +85,14 @@
}
</script>
<style scoped></style>
<style scoped>
.el-container{
  height: 100%;
}
.el-aside {
  height: calc(100% - 30px);
}
.el-main {
  height: calc(100% - 30px);
}
</style>
Source/UBCS-WEB/src/views/modeling/Business.vue
@@ -82,7 +82,7 @@
                  <i :class="icons.revisionRule"></i>
                  版本规则
                </template>
                {{ obj.versionRule }}
                {{ obj.revisionRuleName }}
              </el-descriptions-item>
              <el-descriptions-item :labelStyle="descriptionOption.labelStyle"
                :contentStyle="descriptionOption.contentStyle">
@@ -350,7 +350,11 @@
      this.ifRefreshBtmAddRefresh();
    },
    businessEdit() {
      var json = JSON.stringify(this.obj);
      if (!this.obj.oid){
        this.$message.warning("请选择一条叶子节点的业务类型");
        return;
      }
      const json = JSON.stringify(this.obj);
      this.$refs.btmAdd.btmType = JSON.parse(json);
      this.$refs.btmAdd.showSubmitDialog = true;
      this.ifRefreshBtmAddRefresh();
Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
@@ -7,7 +7,8 @@
    width="70%"
    style="height: 115vh;"
    >
        <el-form ref="form" :model="btmType" show-message="true" inline size="medium" label-suffix=":" class="btmTypeForm" :rules="rules" @resetFields="resetForm" status-icon="true">
    <el-form ref="form" :model="btmType" show-message="true" inline size="medium" label-suffix=":" class="btmTypeForm"
             :rules="rules" @resetFields="resetForm" status-icon="true">
            <el-form-item label="英文名称" label-width="100px" required="true" prop="id">
                <el-input v-model="btmType.id" :prefix-icon="icons.key"></el-input>
            </el-form-item>
@@ -17,10 +18,11 @@
            <el-form-item label="数据库表名" label-width="100px">
                <el-input v-model="btmType.tableName" :prefix-icon="icons.tableName"></el-input>
            </el-form-item>
            <el-form-item label="所属领域" label-width="100px" prop="domain">
                <el-select v-model="btmType.domain" :prefix-icon="icons.domain">
      <el-form-item label="所属领域" label-width="100px" prop="domain" class="domainSelect">
        <el-select v-model="btmType.bizDomain" :prefix-icon="icons.domain">
                    <el-option v-for="item in domainOption"
                    :label="item.label" :value="item.value" :key="item.value"></el-option>
                     :label="item.label" :value="item.value" :key="item.value">
          </el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="版本规则" label-width="100px">
@@ -38,7 +40,7 @@
            <el-form-item label="开启视图" label-width="100px" class="viewFlag">
                <el-switch v-model="btmType.viewFlag" active-color="#13ce66" @change="viewChange"></el-switch>
            </el-form-item>
            <el-form-item label="视图语句" label-width="100px">
        <el-form-item label="视图语句" label-width="100px" class="viewInput">
                <el-input v-model="btmType.view" :prefix-icon="icons.view" :disabled="!btmType.viewFlag"></el-input>
            </el-form-item>
        </div>
@@ -58,12 +60,21 @@
                <el-button type="danger"
                icon="el-icon-plus"
                size="small"
                @click="rowAdd()">属性选择</el-button>
                   @click="rowAdd()">属性选择
        </el-button>
      </template>
      <template slot="attrDataTypeText" slot-scope="{row}">
        <el-tag>{{ row.attrDataTypeText }}</el-tag>
            </template>
          <template slot="menu" slot-scope="{row,index}">
            <el-button icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="cellEditClick(row)">编辑</el-button>
            <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit" @click="removeFormAttrTable(row,index)">移除</el-button>
            <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @click="cellEditSave(row,index)">保存</el-button>
        <el-button icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="cellEditClick(row)">编辑
        </el-button>
        <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit"
                   @click="removeFormAttrTable(row,index)">移除
        </el-button>
        <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @click="cellEditSave(row,index)">
          保存
        </el-button>
          </template>
        </avue-crud>
        <div slot="footer" class="dialog-footer">
@@ -129,6 +140,7 @@
import { add,update } from '@/api/omd/btmType';
import { queryPage } from '@/api/omd/OmdAttribute';
import { getPage } from '@/api/omd/revisionRule';
export default {
    name: 'BusinessAdd',
    props: {
@@ -166,6 +178,7 @@
                menu: true,
                editBtn: false,
                delBtn: false,
        columnBtn: false,
                menuWidth: 150,
                addBtn:false,
                highlightCurrentRow: true,
@@ -179,10 +192,9 @@
                        prop: 'name',
                        align: 'center',
                        cell: true
                    },
                    {
          },{
                        label: "类型",
                        prop: "attrDataType",
            prop: "attrDataTypeText",
                        align: 'center',
                        slot: true
                    },
@@ -368,7 +380,7 @@
        },
        // 属性池加载
        attrRefOnLoad(){
            if (this.attrRef.queryNotIn != ''){
      if (this.attrRef.queryNotIn != '' && this.btmType.attributes !== undefined && this.btmType.attributes.length > 0) {
              this.attrRef.queryNotIn = '';
               this.btmType.attributes.forEach(item => {
                  this.attrRef.queryNotIn += (item.id + ",")
@@ -411,20 +423,19 @@
            if(!this.btmType.attributes) {
              this.btmType.attributes = [];
            }
      console.log(this.attrRef.selectData);
            this.attrRef.selectData.forEach(item => {
                this.btmType.attributes.push({
                    id: item.id,
                    name: item.name,
                    typeValue: item.typeValue,
                    typeKey: item.typeValue,
                    attrDataType : item.typeKey,
          attrDataTypeText: item.typeValue,
                    defaultValue: item.defaultValue,
                    description: item.description,
                    attributeLength: item.maxLength,
                    referBtmTypeId: item.referTypeCode,
                    referBtmTypeName: item.referToName,
                    enumId: item.dictCode,
                    // enumName: item,
                });
                this.attrRef.queryNotIn += (item.id + ",")
            });
@@ -490,7 +501,8 @@
       },
       // 版本规则选中事件
       revisionChange(){},
    revisionChange() {
    },
       // 确认选中版本规则
       confirmRevision(){
            this.btmType.revisionFlag = true;
@@ -541,10 +553,18 @@
    width: 200px;
}
.domainSelect > .el-form-item__content > .el-select > .el-input > .el-input__inner {
  width: 200px;
}
.viewFlag {
    width: 305px;
}
.viewInput > .el-form-item__content > .el-input > .el-input__inner {
  width: 200px;
}
.descClass > .el-input__inner {
    width: 57vw
}
Source/UBCS-WEB/src/views/work/process/leave/handle.vue
@@ -5,7 +5,7 @@
        <el-card class="dialogwarp_tab_card">
          <el-tabs v-model="activeName" @tab-click="handleClick">
            <el-tab-pane label="业务数据信息" name="first">
              <businesswork ref="businesswork":ids="ids" :templateId="templateId"></businesswork>
              <businesswork ref="businesswork":ids="ids" :templateId="templateId" :taskId="taskId" :modelKey="modelKey" :codeClassifyOid="codeClassifyOid"></businesswork>
            </el-tab-pane>
            <el-tab-pane label="流程跟踪" name="second">
              <avue-crud :data="flowList" :option="option" ref="crud">
@@ -78,6 +78,8 @@
      ids:[],
      templateId:'',
      taskId: '',
      modelKey:'',
      codeClassifyOid:'',
      businessId: '',
      processInstanceId: '',
      src: '',
@@ -142,9 +144,12 @@
      const res = response.data
      this.ids=res.data.variables.ids;
      this.templateId=res.data.variables.templateId;
      this.modelKey=res.data.variables.modelKey;
      this.codeClassifyOid=res.data.variables.codeClassifyOid;
      this.taskId=res.data.variables.taskId;
      if (res.success) {
        console.log(res)
        this.btnList = res.data.toTasks
        this.btnList = res.data.toTasks;
      }
    },
    async apiExamineTask(param) {
Source/UBCS-WEB/vue.config.js
@@ -26,10 +26,10 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        target: 'http://localhost:37000',
        // target: 'http://localhost:37000',
        // target: 'http://192.168.1.51:37000',
        // target: 'http://192.168.1.46:37000',
        // target: 'http://dev.vci-tech.com: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.63:37000',
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlFieldMappingAttrBO.java
@@ -59,16 +59,19 @@
    @Override
    public String toString() {
        StringBuilder stringBuilder = new StringBuilder().append(dataType);
        if (dataLength != null && dataPrecision != null){
            stringBuilder.append(StringPool.SPACE).append(StringPool.LEFT_BRACKET).append(dataLength).append(StringPool.COMMA).append(dataPrecision).append(StringPool.RIGHT_BRACKET).append(StringPool.SPACE);
        }else if (dataLength != null) {
            stringBuilder.append(StringPool.SPACE).append(StringPool.LEFT_BRACKET).append(dataLength).append(StringPool.RIGHT_BRACKET).append(StringPool.SPACE);
        if (dataLength != null){
            stringBuilder.append(StringPool.SPACE).append(StringPool.LEFT_BRACKET).append(dataLength);
            if (dataPrecision != null){
                stringBuilder.append(StringPool.COMMA).append(dataPrecision).append(StringPool.RIGHT_BRACKET).append(StringPool.SPACE);
            }else {
                stringBuilder.append(StringPool.RIGHT_BRACKET).append(StringPool.SPACE);
            }
        }
        if (!nullable){
            stringBuilder.append(StringPool.SPACE).append("not null").append(StringPool.SPACE);
        }
        if (StringUtil.isNotBlank(defaultValue)){
            stringBuilder.append(StringPool.SPACE).append("default").append(StringPool.SPACE).append(defaultValue).append(StringPool.SPACE);
            stringBuilder.append(StringPool.SPACE).append("default").append(StringPool.SPACE).append(StringPool.SINGLE_QUOTE).append(defaultValue).append(StringPool.SINGLE_QUOTE).append(StringPool.SPACE);
        }
        return stringBuilder.toString();
    }
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeDTO.java
@@ -147,5 +147,5 @@
    /**
     * 业务类型所属领域
     */
    private String domain;
    private String bizDomain;
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/VciSpringUtil.java
@@ -12,7 +12,7 @@
 * @author LiHang
 * @date 2023/4/26
 */
@Component
@Component("vciSpringUtil")
public class VciSpringUtil implements ApplicationContextAware {
    private static ApplicationContext applicationContext;
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlDmMapperProcessor.java
@@ -3,12 +3,14 @@
import com.vci.ubcs.ddl.mapper.DdlDmMapper;
import com.vci.ubcs.ddl.mapper.DdlMapper;
import com.vci.ubcs.starter.util.VciSpringUtil;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
/**
 * 达梦数据库执行表操作sql的处理器
 */
@Component
@DependsOn("vciSpringUtil")
public class DdlDmMapperProcessor extends DdlMapperProcessor{
    private static final DdlMapper MAPPER = VciSpringUtil.getBean(DdlDmMapper.class);
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java
@@ -9,6 +9,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@@ -21,6 +22,7 @@
 * @date 2023/4/24
 */
@Component
@DependsOn("vciSpringUtil")
public class DdlMapperProcessStrategy {
    @Value("${spring.datasource.driver-class-name}")
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java
@@ -5,6 +5,7 @@
import com.vci.ubcs.ddl.mapper.DdlMapper;
import com.vci.ubcs.starter.util.VciSpringUtil;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@@ -20,6 +21,7 @@
 * @date 2023/4/24
 */
@Component
@DependsOn("vciSpringUtil")
public class DdlMsMapperProcessor extends DdlMapperProcessor{
    private static DdlMapper mapper = VciSpringUtil.getBean(DdlMSMapper.class);
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java
@@ -5,6 +5,7 @@
import com.vci.ubcs.ddl.mapper.DdlMySqlMapper;
import com.vci.ubcs.starter.util.VciSpringUtil;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@@ -20,6 +21,7 @@
 * @date 2023/4/24
 */
@Component
@DependsOn("vciSpringUtil")
public class DdlMySqlMapperProcessor extends DdlMapperProcessor{
    private static DdlMapper mapper = VciSpringUtil.getBean(DdlMySqlMapper.class);
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlOracleMapperProcessor.java
@@ -5,6 +5,7 @@
import com.vci.ubcs.starter.util.VciSpringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@@ -17,6 +18,7 @@
 * @date 2023/4/24
 */
@Component
@DependsOn("vciSpringUtil")
public class DdlOracleMapperProcessor extends DdlMapperProcessor{
    private static DdlMapper mapper = VciSpringUtil.getBean(DdlOracleMapper.class);
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java
@@ -9,10 +9,12 @@
import org.apache.commons.collections4.BidiMap;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Locale;
import java.util.Optional;
/**
 * Description: 应用于达梦数据,生成创建表操作sql的处理器
@@ -21,6 +23,7 @@
 * @date 2023/4/24
 */
@Component
@DependsOn("vciSpringUtil")
public class DllDmMapperProcessor extends DllMapperProcessor {
    private static final DllMapper MAPPER = VciSpringUtil.getBean(DllDmMapper.class);
@@ -29,8 +32,8 @@
    static {
        // 需要重新映射的字段类型在这里写
        FIELD_MAP.put(VciFieldTypeEnum.VTDouble, new DdlFieldMappingAttrBO("DOUBLE", 26, 8, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTInteger, new DdlFieldMappingAttrBO("INTEGER", 10, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTDouble, new DdlFieldMappingAttrBO("DOUBLE", 53, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTInteger, new DdlFieldMappingAttrBO("INTEGER", null, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTLong, new DdlFieldMappingAttrBO("NUMBER", 38, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTBoolean, new DdlFieldMappingAttrBO("VARCHAR", 5, null, true, null));
        FIELD_MAP.put(VciFieldTypeEnum.VTDate, new DdlFieldMappingAttrBO("DATE", null, null, true, null));
@@ -64,14 +67,10 @@
    @Override
    public String getColumnTypeSql(VciFieldTypeEnum fieldType, BtmTypeAttributeVO attributeVO) {
        DdlFieldMappingAttrBO mappingBO = getMappingBO(fieldType);
        if (fieldType.equals(VciFieldTypeEnum.VTDouble)) {
            mappingBO.setDataPrecision(attributeVO.getPrecisionLength() == -1 ? 8 : attributeVO.getPrecisionLength());
        }
        //先只针对数字类型的进行处理
        if (fieldType.equals(VciFieldTypeEnum.VTInteger) ){
            mappingBO.setDataLength(null);
        } else if (fieldType.equals(VciFieldTypeEnum.VTDouble) || fieldType.equals(VciFieldTypeEnum.VTLong)) {
            if (attributeVO.getAttributeLength() <= mappingBO.getDataLength()) {
        if (mappingBO.getDataLength() != null) {
            //mappingBO用来做最后的校验,如果定义的BO没有字段长度,则说明这个类型生成的sql不应该指定长度。如果指定了长度,说明是字段长度的最大值,VARCHAR、CLOB除外
            if (!(fieldType.equals(VciFieldTypeEnum.VTClob) || fieldType.equals(VciFieldTypeEnum.VTString))
                && attributeVO.getAttributeLength() > mappingBO.getDataLength()) {
                mappingBO.setDataLength(attributeVO.getAttributeLength());
            }
        }else {
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java
@@ -9,6 +9,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@@ -22,6 +23,7 @@
 * @date 2023/4/24
 */
@Component
@DependsOn("vciSpringUtil")
public class DllMapperProcessorStrategy {
    @Value("${spring.datasource.driver-class-name}")
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java
@@ -11,6 +11,7 @@
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import org.apache.commons.collections4.BidiMap;
import org.springblade.core.tool.utils.StringPool;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@@ -23,6 +24,7 @@
 * @date 2023/4/24
 */
@Component
@DependsOn("vciSpringUtil")
public class DllMsMapperProcessor extends DllMapperProcessor {
    private static DllMapper mapper = VciSpringUtil.getBean(DllMsMapper.class);
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
@@ -7,6 +7,7 @@
import com.vci.ubcs.starter.util.VciSpringUtil;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import org.apache.commons.collections4.BidiMap;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import java.util.List;
@@ -18,6 +19,7 @@
 * @date 2023/4/24
 */
@Component
@DependsOn("vciSpringUtil")
public class DllMySqlMapperProcessor extends DllMapperProcessor {
    private static final DllMapper MAPPER = VciSpringUtil.getBean(DllMySqlMapper.class);
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java
@@ -6,6 +6,7 @@
import com.vci.ubcs.starter.util.VciSpringUtil;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import org.apache.commons.collections4.BidiMap;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import java.util.List;
@@ -18,6 +19,7 @@
 * @date 2023/4/24
 */
@Component
@DependsOn("vciSpringUtil")
public class DllOracleMapperProcessor extends DllMapperProcessor {
    private static DllMapper mapper = VciSpringUtil.getBean(DllOracleMapper.class);
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllSqlLiteMapperProcessor.java
@@ -6,6 +6,7 @@
import com.vci.ubcs.starter.util.VciSpringUtil;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import org.apache.commons.collections4.BidiMap;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import java.util.List;
@@ -17,6 +18,7 @@
 * @date 2023/4/24
 */
@Component
@DependsOn("vciSpringUtil")
public class DllSqlLiteMapperProcessor extends DllMapperProcessor{
    private static DllMapper mapper = VciSpringUtil.getBean(DllSqlLiteMapper.class);
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeAttributeMapper.java
@@ -1,5 +1,6 @@
package com.vci.ubcs.omd.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.omd.entity.BtmTypeAttribute;
import org.apache.ibatis.annotations.Param;
@@ -19,6 +20,7 @@
    int batchDelete(@Param("records") List<String> records);
    @InterceptorIgnore(tenantLine = "true")
    int batchUpdate(@Param("records") List<BtmTypeAttribute> btmTypeAttributeDOList);
    /**
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
@@ -495,7 +495,7 @@
        }
        checkBtmTypeBeforeSave(btmTypeDTO);
        BtmType btmTypeDO = Optional.ofNullable(BeanUtil.copy(btmTypeDTO, BtmType.class)).orElseGet(BtmType::new);
        btmTypeDO.setBizDomain(btmTypeDTO.getDomain());
        btmTypeDO.setBizDomain(btmTypeDTO.getBizDomain());
        List<BtmTypeLinkAttributesDTO> attributes = btmTypeDTO.getAttributes();
        List<BtmTypeAttributeVO> afterAttributes;
        if (StringUtils.isBlank(btmTypeDO.getOid())){
@@ -521,7 +521,7 @@
        try {
            if (autoCreateTable) {
//                checkTableSame(btmTypeVO);
                R result = DomainRepeater.submitBtmType(btmTypeDTO.getDomain(), btmTypeVO);
                R result = DomainRepeater.submitBtmType(btmTypeDTO.getBizDomain(), btmTypeVO);
                if (result.isSuccess()){
                    List<ModifyAttributeInfo> infoList = new ArrayList<>();
                    Object data = result.getData();
Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/BtmTypeAttributeMapper.xml
@@ -41,7 +41,8 @@
        pl_omd_btm_type
    </sql>
    <update id="batchUpdate" parameterType="java.util.List">
        <foreach collection="records" item="item" index="index" open="begin" close=";end;" separator=";">
        BEGIN
        <foreach collection="records" item="item" index="index" separator=";">
            update <include refid="tableName"/> set
                id = #{item.id,jdbcType=VARCHAR},
                name = #{item.name,jdbcType=VARCHAR},
@@ -65,7 +66,9 @@
                last_modifier = #{item.lastModifier,jdbcType=VARCHAR},
                last_modify_time = #{item.lastModifyTime,jdbcType=TIMESTAMP},
                ts = #{item.ts,jdbcType=TIMESTAMP}
            where oid = #{item.oid,jdbcType=VARCHAR}
        </foreach>
        ;END;
    </update>
    <delete id="batchDelete">
        delete from