ludc
2023-07-05 0b1646a405cee7e6b25c143da491378386730ae0
Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
已修改15个文件
已添加4个文件
564 ■■■■ 文件已修改
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/attrCrud.vue 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/template/SetPersonnel.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/work/BusinessWork.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateAttrDTO.java 96 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImprotParmaDatVO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DdlDmMapper.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllDmMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllMapper.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlDmMapperProcessor.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
@@ -3,10 +3,10 @@
    <div class="testbox">
      <div>
        <el-button plain size="small" type="primary" @click="addvisible = true"
          >增加
        >增加
        </el-button>
        <el-button plain size="small" type="primary" @click="editHandler"
          >编辑
        >编辑
        </el-button>
        <el-button plain size="small" type="primary" @click="openBatchImport('batchImportApply')">批量导入申请</el-button>
        <el-button plain size="small" type="primary" @click="openBatchImport('historyImport')">历史数据导入</el-button>
@@ -15,22 +15,22 @@
        <el-button plain size="small" type="primary">查看流程历史</el-button>
        <el-button plain size="small" type="primary">删除</el-button>
        <el-button plain size="small" type="primary" @click="setHandler"
          >发布</el-button
        >发布</el-button
        >
        <el-button plain size="small" type="primary" @click="DataChange"
          >数据更改</el-button
        >数据更改</el-button
        >
        <el-button plain size="small" type="primary" @click="huishouHandler"
          >回收</el-button
        >回收</el-button
        >
        <el-button plain size="small" type="primary" @click="openD"
          >导出
        >导出
        </el-button>
        <el-button plain size="small" type="primary" @click="findHandler"
          >查询
        >查询
        </el-button>
        <el-button plain size="small" type="primary" @click="similarHandler"
          >相似项查询</el-button
        >相似项查询</el-button
        >
        <el-button plain size="small" type="primary">刷新</el-button>
        <el-input
@@ -64,17 +64,6 @@
            :show-overflow-tooltip="true"
            align="center"
          >
            <!-- ç¼–辑和展示逻辑 -->
            <!--              <template slot-scope="{ row }">-->
            <!--                <el-input v-if="editingRow === row && editShow== item.prop" v-model="row[item.prop]" @blur="saveRow"></el-input>-->
            <!--                <span v-else>{{row[item.prop]}}</span>-->
            <!--                <el-switch-->
            <!--                  v-if="editShow === 'true'"-->
            <!--                  v-model="row[item.prop]"-->
            <!--                  active-color="#13ce66"-->
            <!--                  inactive-color="#ff4949">-->
            <!--                </el-switch>-->
            <!--              </template>-->
          </el-table-column>
        </el-table>
      </el-row>
@@ -260,7 +249,7 @@
    this.doLayout();
  },
  watch: {
     tableHeadDataFateher:{
    tableHeadDataFateher:{
      handler(newval,oldval){
        this.options=newval.tableDefineVO.seniorQueryColumns
      }
@@ -307,9 +296,6 @@
    },
    // å‘布
    setHandler() {
      console.log("1111");
      console.log("父", this.parameter);
      if (this.selectRow.length <= 0) {
        this.$message.warning("请选择一条数据");
      } else {
@@ -453,6 +439,7 @@
      row.forEach((item) => {
        this.parameter.ids.push(item.oid);
      });
      console.log(  '  this.parameter.ids',this.parameter.ids)
    },
    //编辑
    editHandler() {
Source/UBCS-WEB/src/components/Tree/attrCrud.vue
@@ -1,9 +1,6 @@
<template>
  <!--  <avue-crud :data="ProData" :option="option" @sort-change="sortChange" @row-update="addUpdate"-->
  <!--             @cell-click="handleRowClick" @select="selectHandle" @row-del="CrudRowDel">-->
  <div>
    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArray.length>=1">
    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag">
      <!--新增-->
      <el-button v-if="attrEditVisible == false && attrFlagChiledren==false" size="small" type="primary"
                 @click="busineHandle">+ æ·»åŠ  {{ msg }}
@@ -37,7 +34,6 @@
      <!--    ç¼–码申请预览-->
      <el-button size="small" @click="applicationHandle" style="">编码申请预览</el-button>
      <!--        éªŒè¯è§„则-->
    </div>
<!--    å¼¹çª—-->
    <div>
@@ -203,7 +199,7 @@
      </el-dialog>
      <!--        å…¨å±ç¼–辑-->
      <el-dialog :visible.sync="attrEditVisible" append-to-body fullscreen="true">
        <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag"></attrCrud>
        <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :crudArrayFlag="this.crudArrayFlag"></attrCrud>
      </el-dialog>
      <!--      ç»„合规则-->
      <formula-editor :systemVariableTableData="systemVariableTableData"
@@ -236,8 +232,7 @@
              style="width: 100%"
              @cell-click="handleCellClicks"
              @select="selectHandle"
              v-if="this.crudArray.length>=1"
              v-if="this.crudArrayFlag"
    >
      <el-table-column
        type="selection"
@@ -286,7 +281,6 @@
export default {
  name: "attrCrud .vue",
  // props: ['ProData','crudOid','crudArray','Formlist','codeClassifyOid'],
  props: {
    ProData: {
      type: Array,
@@ -309,10 +303,29 @@
      type: Boolean,
      default: false
    },
    crudArrayFlag:{
      type: Boolean,
      default: false
    }
  },
  watch:{
    crudArray:{
      handler(newval,oldval){
        if(newval != undefined){
          if(newval.length>=1){
            this.crudArrayFlag=true
          }else{
            this.crudArrayFlag=false
          }
        }
      },
      deep:true,
      immediate:true
    }
  },
  data() {
    return {
      crudArrayFlag:false,
      editingRows: null,
      editShows:"",
      attrFlag: false,
@@ -1169,21 +1182,10 @@
  methods: {
    formAttr(row, column) {
      console.log(row,column)
      // if (column.property === "keyAttrFlag"
      //   ||column.property === "queryAttrFlag"
      //   ||column.property === "seniorQueryAttrFlag"
      //   ||column.property === "sameRepeatAttrFlag"
      //   ||column.property === "requireFlag"
      //   ||column.property === "formDisplayFlag"
      //   ||column.property === "tableDisplayFlag"
      //   ||column.property === "sortAttrFlag") {
      //   return row[column.property] =='true'? "是" : "否";
      // }
      // return row[column.property];
    },
    //属性分组按钮
    attrVisibleHandle() {
      this.formatBoolean()
      if (this.CrudSelect.length > 1) {
        this.$message.warning('只能选择一条模板属性')
      } else if (this.CrudSelect < 1) {
@@ -1230,14 +1232,10 @@
    },
    // ä»Žä¸šåŠ¡ç±»åž‹ä¸­é€‰æ‹©æ•°æ®
    busineHandle() {
      if (this.crudArray.length < 1) {
        this.$message.error('请选择一条模板')
      } else {
        this.addVisible = true;
        AttrByBtm({'conditionMap[oid]': this.crudOid}).then(res => {
          this.businessData = res.data.data;
        })
      }
    },
    // çº§è”属性按钮
    CascadeHandle() {
@@ -1264,7 +1262,7 @@
    },
    //保存
    addsHandler() {
      batchAddSave(JSON.parse(JSON.stringify(this.ProData).replace(/classifyTemplateOid/g,"classifytemplateoid"))).then(res => {
      batchAddSave(JSON.parse(JSON.stringify(this.ProData))).then(res => {
        this.$message.success('保存成功')
      })
    },
Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue
@@ -5,11 +5,28 @@
    <avue-form v-model="loneTreeNewForm" :option="options" @submit="submits" v-else-if="flag == 'edit'">
    </avue-form>
    <div>
      <el-dialog  :visible.sync="dialogVisible"   title="为【编码规则】选取值" append-to-body>
<!--      ä¸ºã€ç¼–码规则】选取值-->
      <el-dialog  :visible.sync="MasterdialogVisible"   title="为【编码规则】选取值" append-to-body>
        <avue-crud :data="masterData" :option="masterOption" @select="masterSelect"></avue-crud>
        <div style="padding-top: 10px;display: flex; justify-content: flex-end" >
          <el-button type="primary" size="small" @click="MasterHandlerClick">确定</el-button>
          <el-button  size="small" @click="dialogVisible=false">取消</el-button>
          <el-button  size="small" @click="MasterdialogVisible=false">取消</el-button>
        </div>
      </el-dialog>
<!--      å…³é”®å±žæ€§æŸ¥è¯¢è§„则-->
      <el-dialog  :visible.sync="KeydialogVisible"   title="为【关键属性查询规则】选取值" append-to-body>
        <avue-crud :data="KeyData" :option="masterOption" @select="masterSelect"></avue-crud>
        <div style="padding-top: 10px;display: flex; justify-content: flex-end" >
          <el-button type="primary" size="small" @click="KeyHandlerClick">确定</el-button>
          <el-button  size="small" @click="KeydialogVisible=false">取消</el-button>
        </div>
      </el-dialog>
      <!--      ç›¸ä¼¼é¡¹æŸ¥è¯¢è§„则-->
      <el-dialog  :visible.sync="SimidialogVisible"   title="为【相似项查询规则】选取值" append-to-body>
        <avue-crud :data="simData" :option="masterOption" @select="masterSelect"></avue-crud>
        <div style="padding-top: 10px;display: flex; justify-content: flex-end" >
          <el-button type="primary" size="small" @click="simHandlerClick">确定</el-button>
          <el-button  size="small" @click="SimidialogVisible=false">取消</el-button>
        </div>
      </el-dialog>
    </div>
@@ -24,6 +41,8 @@
  props: ['loneTreeNewForm','flag'],
  data() {
    return {
      KeyData:[],
      simData:[],
      name:"",
      oid:"",
      masterInput:'',
@@ -51,7 +70,9 @@
          }
        ]
      },
      dialogVisible:false,
      MasterdialogVisible:false,
      KeydialogVisible:false,
      SimidialogVisible:false,
      form: {
        name: "哈哈",
        sex: "男"
@@ -167,11 +188,13 @@
            label:"关键属性查询规则",
            prop:"codekeyattrrepeatoidName",
            labelWidth:128,
            focus:this.Keyfouce
          },
          {
            label:"相似查询规则",
            prop:"codeResembleRuleOidName",
            labelWidth:128,
            focus: this.simFouce
          },
        ]
@@ -181,7 +204,8 @@
    }
  },
  created() {
      this.defaultRend()
      this.MasterdefaultRend()
    this.KeydefaultRend()
  },
  methods: {
    submits(form,done){
@@ -197,24 +221,34 @@
      this.$message.success('请查看控制台');
      console.log(err)
    },
    //编码规则失焦
    CodeFoucus(){
      this.dialogVisible=true;
      console.log(this.dialogVisible)
      this.MasterdialogVisible=true;
    },
    //编码规则确定
    MasterHandlerClick(){
      if(this.masterSelectList.length>1){
        this.$message.warning('只能选择一条数据')
      }else if(this.masterSelectList.length<=0){
        this.$message.warning('请选择一条数据')
      }else {
        this.dialogVisible=false;
        this.MasterdialogVisible=false;
        this.masterSelectList=[]
        this.loneTreeNewForm.codeRuleOidName=this.name;
        this.loneTreeNewForm.codeRuleOid=this.oid;
        console.log(this.masterSelectList)
      }
    },
    defaultRend(){
    //编码多选
    masterSelect(row){
      console.log(row)
      this.masterSelectList=row;
      this.name=row[0].name;
      this.oid=row[0].oid;
      console.log('oid',this.oid)
    },
    //编码接口
    MasterdefaultRend(){
      defaultReferDataGrid({
        referType:'coderule',
        isMuti:'false',
@@ -225,12 +259,37 @@
      })
    },
    masterSelect(row){
      console.log(row)
      this.masterSelectList=row;
      this.name=row[0].name;
      this.oid=row[0].oid;
      console.log('oid',this.oid)
    // å…³é”®å±žæ€§å¤±ç„¦
    Keyfouce(){
      this.KeydialogVisible=true;
    },
    //关键属性确定
    KeyHandlerClick(){
      if(this.masterSelectList.length>1){
        this.$message.warning('只能选择一条数据')
      }else if(this.masterSelectList.length<=0){
        this.$message.warning('请选择一条数据')
      }else {
      }
    },
    KeydefaultRend(){
      defaultReferDataGrid({
        referType:'codekeyattrrepeat',
        isMuti:'false',
        'conditionMap["lcstatus"]':'Enabled'
      }).then(res=>{
        this.keyData=res.data.records;
      })
    },
    // ç›¸ä¼¼é¡¹å¤±ç„¦
    simFouce(){
      this.SimidialogVisible=true;
    },
    //相似项确定
    simHandlerClick(){
    }
  }
}
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
@@ -7,8 +7,10 @@
        <div>
          <div style="display: flex;justify-content: space-around">
            <el-button plain size="small" type="primary" @click="TreeAdd">添加</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="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;justify-content: space-around;margin-top: 5px;margin-bottom: 5px">
@@ -79,8 +81,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="TreeEdit">修改</el-button>
            <el-button plain size="small" type="primary" @click="TreeDel">删除</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>
@@ -791,8 +791,7 @@
          message: '请先从树上选择一条数据!'
        });
      } else {
        let codeClassifyOid = this.codeClassifyOid
        this.$set(row, "codeclassifyoid", codeClassifyOid)
        this.$set(row, "codeclassifyoid", this.nodeClickList.oid)
        addSave(row).then(() => {
          this.$message({
            type: "success",
@@ -807,6 +806,7 @@
          });
        })
      }
      console.log('123',this.codeClassifyOid)
    },
    //模板管理修改
    CrudRowUpdata(row,index,done) {
Source/UBCS-WEB/src/components/template/SetPersonnel.vue
@@ -90,7 +90,12 @@
            },
            deep:true,
            immediate:true
        }
        },
      parameter:{
          handler(newval,oldval){
            console.log('子',newval)
          }
      }
    },
    data() {
        return {
@@ -112,8 +117,6 @@
    },
    mounted() {
        // this.apiInit()
        // this.apiDict()
      console.log('---',this.parameter)
    },
  created() {
Source/UBCS-WEB/src/components/work/BusinessWork.vue
@@ -37,8 +37,6 @@
      handler(newval,oldval){
        this.BuinessOids=newval;
        this.BuinseseRend()
        console.log(newval)
        console.log(this.BuinessOids)
      },
      deep:true
    }
@@ -48,8 +46,6 @@
  mounted() {
  },
  methods:{
    HandlerRend(){
    },
    BuinseseRend(){
      businese({
        btmType:'wupin',
Source/UBCS-WEB/vue.config.js
@@ -26,8 +26,8 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        target: 'http://localhost:37000',
        // target: 'http://192.168.1.51: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://192.168.1.51:37000/',
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyTemplateAttrDTO.java
@@ -38,110 +38,110 @@
    /**
     * æ‰€å±žæ¨¡æ¿
     */
    private String classifytemplateoid;
    private String classifyTemplateOid;
    /**
     * æ‰€å±žæ¨¡æ¿æ˜¾ç¤ºæ–‡æœ¬
     */
    private String classifytemplateoidName;
    private String classifyTemplateOidName;
    /**
     * æ‰€å±žåˆ†ç±»ä¸­çš„属性主键
     */
    private String classifyattributeoid;
    private String classifyAttributeOid;
    /**
     * æ‰€å±žåˆ†ç±»ä¸­çš„属性主键显示文本
     */
    private String classifyattributeoidName;
    private String classifyAttributeOidName;
    /**
     * å±žæ€§çš„类型
     */
    private String attributedatatype;
    private String attributeDataType;
    /**
     * æ˜¯å¦å…³é”®å±žæ€§
     */
    private String keyattrflag;
    private String keyAttrFlag;
    /**
     * æ˜¯å¦å¿«é€ŸæŸ¥è¯¢å±žæ€§
     */
    private String queryattrflag;
    private String queryAttrFlag;
    /**
     * æ˜¯å¦é«˜çº§æŸ¥è¯¢å±žæ€§
     */
    private String seniorqueryattrflag;
    private String seniorQueryAttrFlag;
    /**
     * ç›¸ä¼¼æŸ¥é‡å±žæ€§
     */
    private String samerepeatattrflag;
    private String sameRepeatAttrFlag;
    /**
     * æ˜¯å¦æŽ’序
     */
    private String sortattrflag;
    private String sortAttrFlag;
    /**
     * æ˜¯å¦ç”ŸæˆäºŒç»´ç 
     */
    private String qrcodeflag;
    private String qrcodeFlag;
    /**
     * æ˜¯å¦ç”Ÿæˆä¸€ç»´ç 
     */
    private String barcodeflag;
    private String barcodeFlag;
    /**
     * ç»„合规则
     */
    private String componentrule;
    private String componentRule;
    /**
     * éªŒè¯è§„则
     */
    private String verifyrule;
    private String verifyRule;
    /**
     * åˆ†ç±»æ³¨å…¥å±‚级
     */
    private String classifyinvokelevel;
    private String classifyInvokeLevel;
    /**
     * åˆ†ç±»æ³¨å…¥çš„属性英文名称
     */
    private String classifyinvokeattr;
    private String classifyInvokeAttr;
    /**
     * åˆ†ç±»æ³¨å…¥çš„属性中文名称
     */
    private String classifyinvokeattrname;
    private String classifyInvokeAttrName;
    /**
     * åˆ†ç±»æ³¨å…¥æ˜¯å¦å¯ä»¥ç¼–辑
     */
    private String classifyinvokeeditflag;
    private String classifyInvokeEditFlag;
    /**
     * ç å€¼åºå·
     */
    private Integer ordernum;
    private Integer orderNum;
    /**
     * è¡¨å•里是否显示
     */
    private String formdisplayflag;
    private String formDisplayFlag;
    /**
     * åˆ—表里是否显示
     */
    private String tabledisplayflag;
    private String tableDisplayFlag;
    /**
     * æ‰€å±žå±žæ€§åˆ†ç»„
     */
    private String attributegroup;
    private String attributeGroup;
    /**
     * ä½¿ç”¨æžšä¸¾æ³¨å…¥çš„字符串格式
@@ -151,27 +151,27 @@
    /**
     * ä½¿ç”¨æžšä¸¾è‹±æ–‡ç¼–号
     */
    private String enumid;
    private String enumId;
    /**
     * ä½¿ç”¨æžšä¸¾ä¸­æ–‡åç§°
     */
    private String enumname;
    private String enumName;
    /**
     * æžšä¸¾æ˜¯å¦å¯ä»¥ç¼–辑
     */
    private String enumeditflag;
    private String enumEditFlag;
    /**
     * å‚照的业务类型英文名称
     */
    private String referbtmid;
    private String referBtmId;
    /**
     * å‚照的业务类型中文名称
     */
    private String referbtmname;
    private String referBtmName;
    /**
     * å‚照窗口配置
@@ -181,97 +181,97 @@
    /**
     * æ˜¯å¦å¿…输
     */
    private String requireflag;
    private String requireFlag;
    /**
     * æ˜¯å¦åªè¯»
     */
    private String readonlyflag;
    private String readOnlyFlag;
    /**
     * å±žæ€§æŽ§åˆ¶è¾“入的长度
     */
    private Integer controllength;
    private Integer controlLength;
    /**
     * è¡¨å•里显示的样式
     */
    private String formdisplaystyle;
    private String formDisplayStyle;
    /**
     * è¡¨æ ¼é‡Œæ˜¾ç¤ºçš„æ ·å¼
     */
    private String tabledisplaystyle;
    private String tableDisplayStyle;
    /**
     * è¡¨å•中超链接内容
     */
    private String formhref;
    private String formHref;
    /**
     * è¡¨æ ¼ä¸­è¶…链接内容
     */
    private String tablehref;
    private String tableHref;
    /**
     * å°æ•°ç²¾åº¦
     */
    private Integer precisionlength;
    private Integer precisionLength;
    /**
     * å°æ•°åˆ»åº¦
     */
    private Integer scalelength;
    private Integer scaleLength;
    /**
     * å–值范围
     */
    private String valuearea;
    private String valueArea;
    /**
     * æ—¶é—´æ ¼å¼
     */
    private String codedateformat;
    private String codeDateFormat;
    /**
     * è¡¨æ ¼é‡Œæ˜¾ç¤ºè°ƒç”¨çš„js
     */
    private String tabledisplayjs;
    private String tableDisplayJs;
    /**
     * æ˜¯å¦æ˜¾ç¤ºå¤šè¡Œæ–‡æœ¬
     */
    private String textareaflag;
    private String textAreaFlag;
    /**
     * é¢„览图
     */
    private String imageflag;
    private String imageFlag;
    /**
     * é»˜è®¤å€¼
     */
    private String defaultvalue;
    private String defaultValue;
    /**
     * å‰ç¼€
     */
    private String prefixvalue;
    private String prefixValue;
    /**
     * åŽç¼€
     */
    private String suffixvalue;
    private String suffixValue;
    /**
     * é€‰æ‹©æ•°æ®æ—¶è¿‡æ»¤çš„属性
     */
    private String filtersourceattr;
    private String filterSourceAttr;
    /**
     * é€‰æ‹©æ•°æ®æ—¶è¿‡æ»¤çš„属性名称
     */
    private String filtersourceattrname;
    private String filterSourceAttrName;
    /**
     * å±žæ€§åˆ—表中的宽度
@@ -306,5 +306,9 @@
     */
    //@Column(columnDefinition = "级联查询属性")
    private String parentQueryAttr;
    /**
     * è¾“入提示
     */
    private String inputTip;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeImprotParmaDatVO.java
@@ -5,7 +5,7 @@
public class CodeImprotParmaDatVO {
    private List<CodeImprotSaveDatVO> codeImprotSaveDatVOList;
    private String classifyAttr;
    private Boolean isImprot;
    private Boolean improt;
    public List<CodeImprotSaveDatVO> getCodeImprotSaveDatVOList() {
        return codeImprotSaveDatVOList;
@@ -24,18 +24,18 @@
    }
    public Boolean getImprot() {
        return isImprot;
        return this.improt;
    }
    public void setImprot(Boolean improt) {
        isImprot = improt;
        this.improt = improt;
    }
    @Override
    public String toString() {
        return "CodeImprotParmaDatVO{" +
                "codeImprotSaveDatVOList=" + codeImprotSaveDatVOList +
                ", isImprot=" + isImprot +
                ", isImprot=" + improt +
                '}';
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyTemplateAttrServiceImpl.java
@@ -36,7 +36,7 @@
import com.vci.ubcs.starter.web.util.VciDateUtil;
import com.vci.ubcs.system.entity.DictBiz;
import com.vci.ubcs.system.feign.IDictBizClient;
import org.springblade.core.log.exception.ServiceException;
import com.vci.ubcs.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
@@ -398,7 +398,7 @@
                throw new VciBaseException("{0}{1}属性的时间格式不符合要求",new String[]{codeClassifyTemplateAttrDO.getId(),codeClassifyTemplateAttrDO.getName()});
            }
            //如果是组合规则,里面使用的属性不能缺失,也都得显示
            String componentrule = codeClassifyTemplateAttrDTO.getComponentrule();
            String componentrule = codeClassifyTemplateAttrDTO.getComponentRule();
            boolean isContainsDynamicParameter = PatternUtil.isContainsDynamicParameter(componentrule);
            if(isContainsDynamicParameter){
                List<String> userdAttrList =  PatternUtil.getKeyListByContent(componentrule);//包含的所有${xxx}中的xxx
@@ -409,7 +409,7 @@
                    }
                    //要看看表单是否显示
                    String unFormDisplayAttr = userdAttrList.stream().filter(s -> !VciBaseUtil.getBoolean(attrDTOMap.getOrDefault(s.toLowerCase(Locale.ROOT),
                        new CodeClassifyTemplateAttrDTO()).getFormdisplayflag())).collect(Collectors.joining(","));
                        new CodeClassifyTemplateAttrDTO()).getFormDisplayFlag())).collect(Collectors.joining(","));
                    if(StringUtils.isNotBlank(unFormDisplayAttr)){
                        throw new VciBaseException("{0}属性是组合规则,但是规则里包含的属性[{1}]在当前模板中没有设置 è¡¨å•显示 ",new String[]{codeClassifyTemplateAttrDO.getName(),unFormDisplayAttr});
                    }
@@ -417,7 +417,7 @@
            }
            if(CLASSIFYTEMPLATEOID==null){
                CLASSIFYTEMPLATEOID = codeClassifyTemplateAttrDTO.getClassifytemplateoid();
                CLASSIFYTEMPLATEOID = codeClassifyTemplateAttrDTO.getClassifyTemplateOid();
            }
        }
@@ -439,7 +439,7 @@
        }
//        BatchCBO batchCBOTemplateDelete = new BatchCBO();
        if(!CollectionUtils.isEmpty(oids)){
            baseMapper.deleteBatchIds(oids);
            this.removeBatchByIds(oids);
        }
        //再新增
@@ -542,7 +542,7 @@
        }
        //判断传过来的参照配置是否是json格式
        if(StringUtils.isNotBlank(codeClassifyTemplateAttrDTO.getReferbtmid())&&!checkKVObj(codeClassifyTemplateAttrDTO.getReferbtmid())){
        if(StringUtils.isNotBlank(codeClassifyTemplateAttrDTO.getReferBtmId())&&!checkKVObj(codeClassifyTemplateAttrDTO.getReferBtmId())){
            throw new VciBaseException("枚举注入数据格式错误!");
        }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -54,6 +54,7 @@
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Workbook;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springframework.beans.BeanUtils;
@@ -1379,8 +1380,7 @@
    public List<CodeImportTemplateVO> gridclassifys(String redisOid) {
        List<CodeImportTemplateVO> codeImportTemplateVOs=new ArrayList<>();
        VciBaseUtil.alertNotNull(redisOid,"分类",redisOid,"分类缓存主键");
        List<CodeImportTemplateVO> redisServiceCacheObjects=bladeRedis.lRange(redisOid,0,-1);
        List<CodeImportTemplateVO> redisServiceCacheObjects=bladeRedis.get(redisOid);
        if(redisServiceCacheObjects!=null){
            codeImportTemplateVOs=  redisServiceCacheObjects;
        }
@@ -1396,7 +1396,7 @@
    @Override
    public DataGrid<Map<String, String>> gridDatas(String codeClssifyOid, String redisOid) {
        VciBaseUtil.alertNotNull(redisOid,"导入相似数据",redisOid,"数据缓存主键");
        List<CodeImprotDataVO> codeImprotDataVOs = bladeRedis.lRange(redisOid+"-"+codeClssifyOid,0,-1);
        List<CodeImprotDataVO> codeImprotDataVOs = bladeRedis.get(redisOid+"-"+codeClssifyOid);
//        redisService.getCacheList(redisOid+"-"+codeClssifyOid);
        CodeImprotDataVO codeImprotDataVO=new CodeImprotDataVO();
        if(!CollectionUtils.isEmpty(codeImprotDataVOs)){
@@ -1430,7 +1430,7 @@
    @Override
    public DataGrid<Map<String,String>> gridRowResemble(String oid,String redisOid){
        VciBaseUtil.alertNotNull(redisOid,"导入相似数据",redisOid,"数据缓存主键");
        List<DataResembleVO> codeImprotDataVOs = bladeRedis.lRange(redisOid,0,-1);;
        List<DataResembleVO> codeImprotDataVOs = bladeRedis.get(redisOid);;
        DataGrid<Map<String, String>> dataGrid = new DataGrid<>();
        List<Map<String, String>> dataList = new ArrayList<>();
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DdlDmMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
package com.vci.ubcs.ddl.mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultType;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;
/**
 * è¾¾æ¢¦æ•°æ®åº“的操作执行器
 */
@Repository
public interface DdlDmMapper extends DdlMapper{
    /**
     * åˆ é™¤è¡¨æ ¼ä¸­çš„列
     * @param tableName è¡¨åç§°
     * @param columnName åˆ—名称
     * @return å—影响的行数
     */
    @Update("alter table ${tableName} DROP COLUMN ${columnName}")
    @Override
    int dropTableColumn(@Param("tableName")String tableName, @Param("columnName")String columnName);
    /**
     * åˆ é™¤è¡¨æ ¼
     * @param tableName è¡¨æ ¼åç§°
     * @return å½±å“çš„行数
     */
    @Update("drop table if exists ${tableName}")
    @ResultType(Integer.class)
    @Override
    int dropTable(@Param("tableName") String tableName);
    /**
     * æ‰¹é‡ä¿®æ”¹æ•°æ®åº“表的字段
     * @param tableName è¡¨æ ¼çš„名称
     * @param attributeSql ä¿®æ”¹çš„属性的sql
     * @return å½±å“çš„行数
     */
    @Update("alter table ${tableName} modify ( ${attributeSql} ) ")
    @ResultType(Integer.class)
    @Override
    int modifyTableBySql(@Param("tableName") String tableName, @Param("attributeSql") String attributeSql);
    /**
     * å‘数据库表中批量添加字段
     * @param tableName è¡¨æ ¼çš„名称
     * @param attributeSql è¦æ·»åŠ çš„æ–°çš„sql
     * @return å½±å“çš„行数
     */
    @Update("alter table ${tableName} add ( ${attributeSql} )")
    @ResultType(Integer.class)
    @Override
    int addColumn2TableBySql(@Param("tableName") String tableName, @Param("attributeSql") String attributeSql);
}
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllDmMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.vci.ubcs.ddl.mapper;
import org.springframework.stereotype.Repository;
/**
 * è¾¾æ¢¦æ•°æ®åº“的操作执行器
 */
@Repository
public interface DllDmMapper extends DllMapper{
}
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/mapper/DllMapper.java
@@ -1,6 +1,11 @@
package com.vci.ubcs.ddl.mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultType;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
/**
 * Description:
 *
@@ -9,21 +14,31 @@
 */
public interface DllMapper {
    int createViewBySql(String viewCreateSql);
    @Update({"${viewCreateSql}"})
    int createViewBySql(@Param("viewCreateSql") String viewCreateSql);
    int createTableBySql(String tableName,String attributeSql);
    @Update({"create table ${tableName} ( ${attributeSql} )"})
    int createTableBySql(@Param("tableName") String tableName, @Param("attributeSql") String attributeSql);
    int checkTableExist(String tableName);
    @Update({"COMMENT ON TABLE ${tableName}  IS '${comment}' "})
    int commentTable(@Param("tableName") String tableName, @Param("comment") String comment);
    int countAll(String tableName);
    @Update({"COMMENT ON column ${tableName}.${columnName} IS '${comment}' "})
    int commentColumnTable(@Param("tableName") String tableName, @Param("columnName") String columnName, @Param("comment") String comment);
    int commentTable(String tableName, String comment);
    @Update({"alter table ${tableName} modify ( ${attributeSql} ) "})
    int modifyTableBySql(@Param("tableName") String tableName, @Param("attributeSql") String attributeSql);
    int commentColumnTable(String tableName, String columnName, String comment);
    @Update({"alter table ${tableName} add ( ${attributeSql} )"})
    int addColumn2TableBySql(@Param("tableName") String tableName, @Param("attributeSql") String attributeSql);
    int modifyTableBySql(String tableName, String attributeSql);
    @Update({"drop table if exists ${tableName}"})
    int dropTable(@Param("tableName") String tableName);
    int addColumn2TableBySql(String tableName, String attributeSql);
    @Select({"select count(table_name) from user_tables where upper(table_name) = upper(#{tableName,jdbcType=VARCHAR})"})
    int checkTableExist(@Param("tableName") String tableName);
    int dropTable(String tableName);
    @Select({"select count(*) from ${tableName}"})
    @ResultType(Integer.class)
    int countAll(@Param("tableName") String tableName);
}
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlDmMapperProcessor.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package com.vci.ubcs.ddl.processor.ddl;
import com.vci.ubcs.ddl.mapper.DdlDmMapper;
import com.vci.ubcs.ddl.mapper.DdlMapper;
import com.vci.ubcs.starter.util.VciSpringUtil;
import org.springframework.stereotype.Component;
/**
 * è¾¾æ¢¦æ•°æ®åº“执行表操作sql的处理器
 */
@Component
public class DdlDmMapperProcessor extends DdlMapperProcessor{
    private static final DdlMapper MAPPER = VciSpringUtil.getBean(DdlDmMapper.class);
    public DdlDmMapperProcessor() {
        super(MAPPER);
        System.out.println("-----------------");
        if (MAPPER != null){
            System.out.println("[success]::加载达梦数据库DDL操作服务成功");
        }else {
            System.out.println("[fail]::加载达梦数据库DDL操作服务失败");
        }
    }
    @Override
    public void modifyTableBySqlBase(String tableName, String attributeSql) {
        modifyTableBySql(tableName,attributeSql);
    }
    @Override
    boolean support(String url) {
        return "dm.jdbc.driver.DmDriver".equals(url);
    }
}
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java
@@ -7,6 +7,8 @@
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.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@@ -18,10 +20,11 @@
 * @author LiHang
 * @date 2023/4/24
 */
@Component
public class DdlMapperProcessStrategy {
    @Value("${spring.datasource.driver-class-name}")
    private static final String DATABASE_DRIVER = "";
    private String DATABASE_DRIVER;
    private final static List<DdlMapperProcessor> PROCESSORS = Lists.newArrayList();
@@ -29,11 +32,15 @@
        PROCESSORS.add(VciSpringUtil.getBean(DdlOracleMapperProcessor.class));
        PROCESSORS.add(VciSpringUtil.getBean(DdlMySqlMapperProcessor.class));
        PROCESSORS.add(VciSpringUtil.getBean(DdlMsMapperProcessor.class));
        PROCESSORS.add(VciSpringUtil.getBean(DdlDmMapperProcessor.class));
    }
    public static DdlMapperProcessor getProcessor(){
    @Bean("ddlMapper")
    public  DdlMapperProcessor getProcessor(){
        for (DdlMapperProcessor processor : PROCESSORS) {
            if (processor.support(DATABASE_DRIVER)){
                System.out.println("===========================================");
                System.out.println("获取DDL操作类成功:" + processor.getClass().getName());
                return processor;
            }
        }
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.vci.ubcs.ddl.processor.dll;
import com.vci.ubcs.ddl.bo.DdlFieldMappingAttrBO;
import com.vci.ubcs.ddl.mapper.DllDmMapper;
import com.vci.ubcs.ddl.mapper.DllMapper;
import com.vci.ubcs.starter.util.VciSpringUtil;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import org.apache.commons.collections4.BidiMap;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * Description: åº”用于达梦数据,生成创建表操作sql的处理器
 *
 * @author LiHang
 * @date 2023/4/24
 */
@Component
public class DllDmMapperProcessor extends DllMapperProcessor{
    private static final DllMapper MAPPER = VciSpringUtil.getBean(DllDmMapper.class);
    private static final BidiMap<VciFieldTypeEnum, DdlFieldMappingAttrBO> FIELD_MAP = getMappingMapCopy();
    static {
        // éœ€è¦é‡æ–°æ˜ å°„的字段类型在这里写
        FIELD_MAP.put(VciFieldTypeEnum.VTDouble,new DdlFieldMappingAttrBO("DOUBLE",26,8,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTInteger,new DdlFieldMappingAttrBO("NUMBER",22,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTLong,new DdlFieldMappingAttrBO("BIGINT",22,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));
        FIELD_MAP.put(VciFieldTypeEnum.VTDateTime,new DdlFieldMappingAttrBO("TIMESTAMP",null,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTTime,new DdlFieldMappingAttrBO("TIME",null,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTFilePath,new DdlFieldMappingAttrBO("TEXT",null,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTClob,new DdlFieldMappingAttrBO("CLOB",100,null,true,null));
        FIELD_MAP.put(VciFieldTypeEnum.VTString,new DdlFieldMappingAttrBO("VARCHAR",255,null,true,null));
    }
    public DllDmMapperProcessor() {
        super(MAPPER);
        System.out.println("-----------------");
        if (MAPPER != null){
            System.out.println("[success]::加载达梦数据库DLL操作服务成功");
        }else {
            System.out.println("[fail]::加载达梦数据库DLL操作服务失败");
        }
    }
    @Override
    public boolean support(String url) {
        return "dm.jdbc.driver.DmDriver".equals(url);
    }
    @Override
    protected DdlFieldMappingAttrBO getMappingBO(VciFieldTypeEnum fieldTypeEnum) {
        return getMappingBOInMap(fieldTypeEnum,FIELD_MAP);
    }
    /**
     * æŒ‰æ•°æ®åº“字段类型列举所有的VCI字段类型
     *
     * @param columnStr æ•°æ®åº“字段类型
     * @return VCI字段类型
     */
    @Override
    public List<VciFieldTypeEnum> listFieldByColumnStr(String columnStr) {
        return listFieldInMapByColumnStr(columnStr,FIELD_MAP);
    }
    @Override
    public VciFieldTypeEnum getFieldTypeByColumnStr(String columnStr, Integer length) {
        return getFieldTypeBeColumnStrInMap(columnStr,length,FIELD_MAP);
    }
}
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java
@@ -5,9 +5,13 @@
import com.vci.ubcs.ddl.mapper.DllOracleMapper;
import com.vci.ubcs.ddl.mapper.DllSqlLiteMapper;
import com.vci.ubcs.starter.util.VciSpringUtil;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.List;
@@ -17,10 +21,11 @@
 * @author LiHang
 * @date 2023/4/24
 */
@Component
public class DllMapperProcessorStrategy {
    @Value("${spring.datasource.driver-class-name}")
    private static final String DATABASE_DRIVER = "";
    private String DATABASE_DRIVER;
    public static List<DllMapperProcessor> processors = Lists.newArrayList();
@@ -29,11 +34,15 @@
        processors.add(VciSpringUtil.getBean(DllSqlLiteMapperProcessor.class));
        processors.add(VciSpringUtil.getBean(DllMySqlMapperProcessor.class));
        processors.add(VciSpringUtil.getBean(DllOracleMapperProcessor.class));
        processors.add(VciSpringUtil.getBean(DllDmMapperProcessor.class));
    }
    public static DllMapperProcessor getProcessor(){
    @Bean("dllMapper")
    public DllMapperProcessor getProcessor(){
        for (DllMapperProcessor processor : processors) {
            if (processor.support(DATABASE_DRIVER)){
                System.out.println("===========================================");
                System.out.println("获取DLL操作类成功:" + processor.getClass().getName());
                return processor;
            }
        }
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
@@ -35,6 +35,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -64,13 +65,15 @@
    /**
     * ddl数据操作服务
     */
    private final DdlMapperProcessor ddlMapper = DdlMapperProcessStrategy.getProcessor();
    @Autowired
    private DdlMapperProcessor ddlMapper;
    /**
     * dll数据操作服务
     */
    private final DllMapperProcessor dllMapper = DllMapperProcessorStrategy.getProcessor();
    @Autowired
    private DllMapperProcessor dllMapper;
    private static final String YES = "Y";