ludc
2023-05-04 7ff176bf622d6a4bad0fb2bdf92f11a79f0dd24a
增加弹窗界面,整合代码
已修改20个文件
已删除1个文件
已添加4个文件
6166 ■■■■ 文件已修改
Source/UBCS-WEB/src/api/code/codeClassifyValue.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/code/codebasic.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue 705 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/classisyValueTreeDialog.js 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/cloneBasicDialogOption.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/cloneCodeRuleDialogOption.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/cloneOption.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/codebasic.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/fixedValueMgrDialog.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/mdmrule.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/parentClassifyParentOptionDialog.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/referBtmDialog.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/main.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/code/addbasiccode.vue 615 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/code/clonecode.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/code/code.vue 4418 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyValueDTO.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/code/codeClassifyValue.js
@@ -6,7 +6,38 @@
    method: 'get',
    params: {
      ...params,
    }
  })
}
export const addSaveCodeClassifyValue = (codeFixedValueDTO) => {
  return request({
    url: '/api/ubcs-code/codeClassifyValueController/addSave',
    method: 'post',
    data: codeFixedValueDTO
  })
}
export const editCodeClassifyValue = (codeFixedValueDTO) => {
  return request({
    url: '/api/ubcs-code/codeClassifyValueController/editSave',
    method: 'put',
    data: codeFixedValueDTO,
  })
}
export const deleteCodeClassifyValue = (codeFixedValueDTO) => {
  return request({
    url: '/api/ubcs-code/codeClassifyValueController/deleteData',
    method: 'delete',
    data: codeFixedValueDTO,
  })
}
export const saveCodeClassifyValueOrder = (data) => {
  return request({
    url: '/api/ubcs-code/codeClassifyValueController/saveOrder',
    method: 'post',
    data: data,
  })
}
Source/UBCS-WEB/src/api/code/codebasic.js
@@ -80,7 +80,7 @@
    })
}
export const clone = (row) => {
export const cloneCodeBasic = (row) => {
    return request({
      url: '/api/ubcs-code/codeBasicSecController/clone',
      method: 'post',
Source/UBCS-WEB/src/components/code-dialog-page/formulaEditor.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,705 @@
<template>
  <!-- ç¬¬äºŒå±‚对话框,属性码段,公式编辑框弹窗 -->
  <el-dialog
    title="公式编辑框"
    append-to-body
    :visible.sync="isShowformulaEdit"
    @close="closeFormulaEdit"
    width="78%"
    style="height: 150vh; margin-top: -13vh; overflow: hidden">
    <div style="overflow-y: auto; height: 80vh">
      <el-row>
        <!-- å·¦ä¾§å…¬å¼å†…容 -->
        <el-col :span="14" style="overflow: hidden">
          <el-card
            class="box-card"
            style="height: 33vh; overflow-y: auto; overflow-x: auto">
            <div slot="header" class="clearfix">
              <span style="font-size: medium">公式内容</span>
              <el-button
                type="primary"
                size="mini"
                style="float: right"
                @click="saveFormulaContent">
                ç¡®å®š
              </el-button>
              <el-button
                type="warning"
                size="mini"
                style="margin-right: 10px; float: right"
                @click="resetFormulaContent">
                æ¸…空内容
              </el-button>
            </div>
            <div class="text item">
              <el-input
                type="textarea"
                :rows="5"
                style="width: 560px"
                v-model="formulaContent"
              ></el-input>
            </div>
          </el-card>
        </el-col>
        <!-- å³ä¾§è¿ç®—符 -->
        <el-col :span="10">
          <el-card
            class="box-card"
            style="height: 33vh;">
            <div slot="header" class="clearfix">
              <span style="font-size: medium">运算符</span>
            </div>
            <div class="text item">
              <div class="formula-editor">
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '7' })"
                  >
                    7
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '8' })"
                  >
                    8
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '9' })"
                  >
                    9
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '/' })"
                  >
                    /</button
                  ><br />
                </div>
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '4' })"
                  >
                    4
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '5' })"
                  >
                    5
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '6' })"
                  >
                    6
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '*' })"
                  >
                    *</button
                  ><br />
                </div>
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '1' })"
                  >
                    1
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '2' })"
                  >
                    2
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '3' })"
                  >
                    3
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '>' })"
                  >
                    -</button
                  ><br />
                </div>
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '0' })"
                  >
                    0
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '00' })"
                  >
                    00
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '.' })"
                  >
                    .
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '+' })"
                  >
                    +</button
                  ><br />
                </div>
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '->' })"
                  >
                    ->
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '==' })"
                  >
                    ==
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '(' })"
                  >
                    (
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: ')' })"
                  >
                    )</button
                  ><br />
                </div>
                <div class="one">
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '<' })"
                  >
                    &lt;
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '>' })"
                  >
                    &gt;
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '<=' })"
                  >
                    &lt;=
                  </button>
                  <button
                    class="formula-editor-btn-sm"
                    @click="dbClickAddContent({ formula: '>=' })"
                  >
                    &gt;=
                  </button>
                </div>
              </div>
            </div>
          </el-card>
        </el-col>
      </el-row>
      <el-row>
        <!-- å·¦ä¾§å…¬å¼é€‰æ‹©åŒºåŸŸ -->
        <el-col :span="14" style="overflow: hidden">
          <el-card
            class="box-card"
            style="height: 40vh; overflow-y: auto; overflow-x: auto"
          >
            <div slot="header" class="clearfix">
              <span style="font-size: medium">公式选择</span>
            </div>
            <div class="text item">
              <el-tabs v-model="activeName">
                <el-tab-pane label="常用" name="first">
                  <el-table
                    :data="commonFormulaTableData"
                    :show-header="false"
                    @row-dblclick="dbClickAddContent"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="300">
                    </el-table-column>
                    <el-table-column prop="desc" width="300"> </el-table-column>
                  </el-table>
                </el-tab-pane>
                <el-tab-pane label="财务" name="second">
                  <el-table
                    :data="financialFormulaTableData"
                    @row-dblclick="dbClickAddContent"
                    :show-header="false"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="300">
                    </el-table-column>
                    <el-table-column prop="desc" width="300"> </el-table-column>
                  </el-table>
                </el-tab-pane>
                <el-tab-pane label="日期" name="third">
                  <el-table
                    :data="dateFormulaTableData"
                    :show-header="false"
                    @row-dblclick="dbClickAddContent"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="300">
                    </el-table-column>
                    <el-table-column prop="desc" width="300"> </el-table-column>
                  </el-table>
                </el-tab-pane>
                <el-tab-pane label="数学" name="fourth">
                  <el-table
                    :data="mathFormulaTableData"
                    :show-header="false"
                    @row-dblclick="dbClickAddContent"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="300">
                    </el-table-column>
                    <el-table-column prop="desc" width="300"> </el-table-column>
                  </el-table>
                </el-tab-pane>
                <el-tab-pane label="其他" name="five">
                  <el-table
                    :data="otherFormulaTableData"
                    @row-dblclick="dbClickAddContent"
                    :show-header="false"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="300">
                    </el-table-column>
                    <el-table-column prop="desc" width="300"> </el-table-column>
                  </el-table>
                </el-tab-pane>
              </el-tabs>
            </div>
          </el-card>
        </el-col>
        <!-- å³ä¾§å˜é‡é€‰æ‹©åŒºåŸŸ -->
        <el-col :span="10" style="overflow: hidden">
          <el-card
            class="box-card"
            style="height: 40vh; overflow-y: auto; overflow-x: auto"
          >
            <div slot="header" class="clearfix">
              <span style="font-size: medium">变量</span>
            </div>
            <div class="text item">
              <el-tabs v-model="activeNameAttr">
                <el-tab-pane label="本场景变量" name="first">
                  <el-table
                    :data="thisSceneTableData"
                    @row-dblclick="dbClickAddContent"
                    :show-header="false"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="40">
                    </el-table-column>
                    <el-table-column prop="desc" width="100"> </el-table-column>
                  </el-table>
                </el-tab-pane>
                <el-tab-pane label="系统变量" name="second">
                  <el-table
                    :data="systemVariableTableData"
                    @row-dblclick="dbClickAddContent"
                    :show-header="false"
                    style="width: 100%"
                  >
                    <el-table-column prop="formula" width="150">
                    </el-table-column>
                    <el-table-column prop="desc" width="150"> </el-table-column>
                  </el-table>
                </el-tab-pane>
              </el-tabs>
            </div>
          </el-card>
        </el-col>
      </el-row>
    </div>
  </el-dialog>
</template>
  <script>
export default {
  name: "formulaEditor",
  props: {
    //本场景变量
    thisSceneTableData: {
      type: Array,
    },
     //系统变量
    systemVariableTableData: {
      type: Array,
    },
  },
  data() {
    return {
      isShowformulaEdit: false, //公式编辑框对话框显示控制
      formulaContent: '', //公式编辑框内容,方便值的回传
      activeName: 'first', //当前活动的tab
      activeNameAttr: 'first', //变量中的当前活动tab
      //常用公式
      commonFormulaTableData: [
      {
          formula: "if(compare,trueResult,falseResult)",
          desc: "如果compare的表达式为true,则执行trueResult的表达式,否则执行flaseResult.例如if(3>2,2*(3+2),3/(2-4)),值等于10",
      },
      {
          formula: "sum(douber1,douber2)",
          desc: "两个格式为douber的参数求和",
      },
      {
          formula: "sub(douber1,douber2)",
          desc: "格式为douber的参数douber1减去格式为douber的参数douber2",
      },
      {
          formula: "mul(douber1,douber2)",
          desc: "两个格式为douber的参数相乘",
      },
      {
          formula: "div(douber1,douber2)",
          desc: "格式为douber的参数douber1除以格式为douber的参数douber2.当douber2等于0的时候,返回0;如果除不尽的时候保留10位小数",
      },
      {
          formula: "mod(int,int)",
          desc: "求余数",
      },
      {
          formula: "toInt(string)",
          desc: "转换为int格式",
      },
      {
          formula: "doubleRound(string,count)",
          desc: "处理douber的小数位数,count表示小数位数",
      },
      {
          formula: "zeroIfNull(value)",
          desc: '如果参数的值为null或者"",将返回0',
      },
      {
          formula: "endsWith(string,str1)",
          desc: "字符串string是不是以str1结尾",
      },
      {
          formula: "startsWith(string,str1)",
          desc: "字符串string是否以str1开头",
      },
      {
          formula: "charAt(string,index)",
          desc: "获取字符串string中第index位置的字符,如果长度小于index,则返回",
      },
      {
          formula: "equalsIgnoreCase(str1,str2)",
          desc: "字符串str1和字符串str2是否相等",
      },
      {
          formula: "indexOf(str1,str2)",
          desc: "字符串str2在字符串str1中首次出现的位置",
      },
      {
          formula: "isEmpty(str1)",
          desc: "参数str1是否为空,其中null这个字符串也表示为空",
      },
      {
          formula: "lastIndexOf(str1,str2)",
          desc: "字符串str2在字符串str1中最后出现的位置",
      },
      {
          formula: "leftStr(str1,index)",
          desc: "获取index位置左侧的所有字符",
      },
      {
          formula: "rightStr(str1,str2)",
          desc: "获取index位置右侧的所有字符",
      },
      {
          formula: "length(str1)",
          desc: "参数str1的长度",
      },
      {
          formula: "mid(str1,start,end)",
          desc: "获取str1的从start到end直接的字符串,出现异常时返回",
      },
      {
          formula: "tolowercase(str1)",
          desc: "将字符串str1转为小写",
      },
      {
          formula: "touppercase(str1)",
          desc: "将字符串str1转为大写",
      },
      {
          formula: "trimzero(str1)",
          desc: "去除字符串str1中的0",
      },
      {
          formula: "MD5(str1)",
          desc: "将字符串进行MD5加密",
      },
      ],
      //财务公式
      financialFormulaTableData: [
      {
          formula: "toChinese(value)",
          desc: "将阿拉伯数字转为为汉字大写方式",
      },
      {
          formula: "getChineseCurrency(value)",
          desc: "将阿拉伯数字转为为汉字金额大写方式,与tochiness的区别是这个会显示元、角、分",
      },
      {
          formula: "setThmark(value)",
          desc: "为参数value设置千分位",
      },
      ],
      //日期公式
      dateFormulaTableData: [
      {
          formula: "compareDate(d1,d2)",
          desc: "对比参数d1,d2的大小。d1,d2为yyyy-MM-dd格式的日期字符串",
      },
      {
          formula: "nowDate()",
          desc: "获取当前日期",
      },
      {
          formula: "chinaDate(d1)",
          desc: "将时间转换为农历,d1是yyyy-MM-dd格式的日期字符串",
      },
      {
          formula: "dateAdd(d1,count)",
          desc: "在d1的基础上添加count天,d1为yyyy-MM-dd HH:mm:ss格式的时间字符串",
      },
      {
          formula: "dateBalanceYear(sourceDate,targetDate,false)",
          desc: '计算相差的年份,比如计算年龄,targetDate为""表示当前时间,第三个参数为true表示有多余的月份或者天数时,就加1;',
      },
      {
          formula: "dateBalanceDay(sourceDate,targetDate)",
          desc: '计算相差的天数,targetDate为""表示当前时间',
      },
      {
          formula: "dateformat(d1,format)<",
          desc: "将当前的日期(时间)字符串转为指定的字符串,如果format的内容有空格,请使用&代替",
      },
      {
          formula: "nowDatetime()",
          desc: "获取当前日期和时间。格式为yyyy-MM-dd HH:mm:ss",
      },
      {
          formula: "dayOf(d1)",
          desc: "获取格式为yyyy-MM-dd的日期的天数",
      },
      {
          formula: "nowMon()",
          desc: "获取当前的月份,格式为MM",
      },
      {
          formula: "monOf(d1)",
          desc: "获取日期d1的月份数",
      },
      {
          formula: "nowTime()",
          desc: "获取当前时间,格式为HH:mm:ss",
      },
      {
          formula: "nowYear()",
          desc: "获取年份,格式为yyyy",
      },
      {
          formula: "yearOf()",
          desc: "获取时间d1的年份",
      },
      ],
      //数学公式
      mathFormulaTableData: [
      {
          formula: "abs(value)",
          desc: "求参数value的绝对值,value必须为数字格式",
      },
      {
          formula: "acos(value)",
          desc: "求参数value的反余弦,value必须为数字格式",
      },
      {
          formula: "asin(value)",
          desc: "求参数value的反正弦,value必须为数字格式",
      },
      {
          formula: "atan(value)",
          desc: "求参数value的反正切,value必须为数字格式",
      },
      {
          formula: "cbrt(value)",
          desc: "求参数value的立方根,value必须为数字格式",
      },
      {
          formula: "ceil(value)",
          desc: "返回不大于参数value的最小整数,例如ceil(1.7)就等于2,value必须为数字格式",
      },
      {
          formula: "cos(value)",
          desc: "求参数value的余弦值,value必须为数字格式",
      },
      {
          formula: "cosh(value)",
          desc: "求参数value的双曲余弦值,value必须为数字格式",
      },
      {
          formula: "exp(n)",
          desc: "欧拉数 e çš„n次幂,n必须为数字格式",
      },
      {
          formula: "floor(n)",
          desc: "欧拉数 e çš„n次幂减1,n必须为数字格式",
      },
      {
          formula: "log(value)",
          desc: "返回不小于参数value的最大整数,例如floor(1.7)等于1,n必须为数字格式",
      },
      {
          formula: "log10(value)",
          desc: "自然对数,value必须为数字格式",
      },
      {
          formula: "log1p(value)",
          desc: "计算底数为 10 çš„对数,value必须为数字格式",
      },
      {
          formula: "random()",
          desc: "返回参数与 1 ä¹‹å’Œçš„自然对数,value必须为数字格式",
      },
      {
          formula: "rint(value)",
          desc: "返回一个伪随机数,该值大于等于 0.0 ä¸”小于 1.0",
      },
      {
          formula: "round(value)",
          desc: "返回其值最接近参数并且是整数的 double å€¼ã€‚如果两个整数的 double å€¼éƒ½åŒæ ·æŽ¥è¿‘,那么结果取偶数。特殊情况是:如果参数值是整数,那么结果就是该参数。如果参数是 NaN æˆ–无穷大或正零或负零,那么结果与参数相同",
      },
      {
          formula: "signum(value)",
          desc: "符号函数;如果参数为 0,则返回 0;如果参数大于 0, åˆ™è¿”回 1.0;如果参数小于 0,则返回 -1.0",
      },
      {
          formula: "sin(value)",
          desc: "求参数value的正弦值,value必须为数字格式",
      },
      {
          formula: "sinh(value)",
          desc: "求参数value的双曲正弦值,value必须为数字格式",
      },
      {
          formula: "tan(value)",
          desc: "求参数value的正切值,value必须为数字格式",
      },
      {
          formula: "tanh(value)",
          desc: "求参数value的双曲正切值,value必须为数字格式",
      },
      {
          formula: "max(v1,v2)",
          desc: "求两个数中的较大的值,v1,v2都必须为数字格式,例如max(3.2,3)就等于3.2",
      },
      {
          formula: "min(v1,v2)",
          desc: "求两个数中的较小的值,v1,v2都必须为数字格式,例如max(3.2,3)就等于3",
      },
      {
          formula: "sqrt(value)",
          desc: "求平方根",
      },
      ],
      //其他公式
      otherFormulaTableData: [
      {
          formula: "getcolvalue(servername,tablename,fieldname,pkField,pkValue)",
          desc: "查询servername中tablename数据库表中fieldname字段的值,pkfield表示主键的字段名称,pkValue表示主键的值,serverName现在默认为localServer",
      },
      ],
    };
  },
  methods: {
    //双击添加公式内容
    dbClickAddContent(row){
      //console.log(row.formula);
      this.formulaContent = this.formulaContent + row.formula;
    },
    //清空公式内容
    resetFormulaContent(){
      this.formulaContent = '';
    },
    //关闭时清空上次公式内容
    closeFormulaEdit(){
      this.resetFormulaContent();
    },
    //编辑完成公式内容回显并关闭对话框
    saveFormulaContent(){
      //console.log(this.formulaContent);
      if(this.formulaContent.trim == null || this.formulaContent.trim == ''){
          this.$message.warning("公式内容不能为空!");
          return;
      }
      //公式内容回显
      this.$emit('updateFormulaContent', this.formulaContent) // è§¦å‘update:data将子组件值传递给父组件
      this.isShowformulaEdit = false;
    },
  },
};
</script>
<style scoped>
  .formula-editor{
    margin-top: -15px;
    margin-left: 4vw;
    /*设置弹性盒子*/
    display: flex;
    /*子元素以竖列排列,一共有6列*/
    flex-direction:column;
    width: 310px;
    height: 185px;
    /*左右均匀排列*/
    justify-content: space-around;
    /*上下均匀排列*/
    align-items: center;
  }
  .one{
    display: flex;
    /*以行排列*/
    flex-direction: row;
    width: 223px;
    height: 80px;
    justify-content: space-between;
    align-items: center;
    }
  .formula-editor-btn-sm {
    width: 55px;
    height: 29px;
    background: rgb(153, 214, 240);
    border-radius: 10%;
  }
</style>
Source/UBCS-WEB/src/const/code/classifyTreeOptionDialog.js
@@ -6,7 +6,7 @@
    lazy: true,
    treeLoad: function (node, resolve) {
      // const parentId = (node.level === 0) ? 0 : node.data.id;
      treeTopCodeClassify({"queryAllLevel": true,"loadType": "all","multipleSelect": false,}).then( res=> {
      treeTopCodeClassify({"queryAllLevel": true,"loadType": "all","multipleSelect": false}).then( res=> {
        resolve(res.data.map(classifyitem => {
          let item = {
            "hasChildren": false,
Source/UBCS-WEB/src/const/code/classisyValueTreeDialog.js
@@ -1,43 +1,41 @@
import { treeCodeClassifyValue } from "@/api/code/codeClassifyValue";
export default {
    nodeKey: 'oid',
    border: true,
    lazy: true,
    lazy: false,
    defaultExpandAll: true,
    treeLoad: function (node, resolve) {
      // const parentId = (node.level === 0) ? 0 : node.data.id;
      let condtionData = {
        "queryAllLevel": true,
        "loadType": "all",
        "multipleSelect": false,
        "isMuti": false,
        "isQueryAllColumn": true,
        'conditionMap[codeclassifysecoid]':this.currentSelectTreeData.oid}
      treeCodeClassifyValue().then( res=> {
        console.log(res);
        resolve(res.data.map(classifyitem => {
          let item = {
            "hasChildren": false,
            "oid": classifyitem.oid,
            "key": classifyitem.oid,
            "parentId": 0,
            "title": classifyitem.text,
            "value": classifyitem.oid,
          }
          return {
            ...item,
            leaf: !item.hasChildren
          }
        }))
      });
      // treeCodeClassifyValue(condtionData).then( res=> {
      //   console.log(res);
      //   resolve(res.data.map(classifyValueItem => {
      //     let item = {
      //       "hasChildren": item.children!=null,
      //       "oid": classifyValueItem.oid,
      //       "key": classifyValueItem.oid,
      //       "parentId": classifyValueItem.parentclassifyvalueoid,
      //       "title": classifyValueItem.text,
      //       "value": classifyValueItem.oid,
      //     }
      //     return {
      //       ...item,
      //       leaf: item.hasChildren
      //     }
      //   }))
      // });
    },
    addBtn: false,
    menu: false,
    size: 'small',
    props: {
      labelText: '标题',
      label: 'title',
      value: 'value',
      labelText: 'text',
      label: 'text',
      key: 'oid',
      value: 'oid',
      parentId: 'parentId',
      parentBtmName: 'parentBtmName',
      parentName: 'parentName',
      codeclassifysecoid: 'codeclassifysecoid',
      children: 'children'
    }
}
Source/UBCS-WEB/src/const/code/cloneBasicDialogOption.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
export default {
    height:"190px",
    calcHeight: 30,
    tip: false,
    editBtn: false,
    addBtn: false,
    delBtn: false,
    searchShow: false,
    searchBtn: false,
    searchMenuSpan: 5,
    disablePage: false,
    border: true,
    index: true,
    viewBtn: false,
    selection: true,
    menu: false,
    refreshBtn: false,
    columnBtn: false,
    dialogClickModal: false,
    highlightCurrentRow: true, //行选中时高亮
    column: [
      {
        label: "码段编号",
        prop: "id",
        search: false,
        searchLabelWidth: 80,
        searchSpan: 5,
      },
      {
        label: "码段名称",
        prop: "name",
        search: false,
        searchLabelWidth: 80,
        searchSpan: 5,
      },
      {
        label: "码段描述",
        prop: "description",
        search: false,
        span: 24,
      },
      {
        label: "码段类型",
        prop: "secTypeText",
      }
    ]
}
Source/UBCS-WEB/src/const/code/cloneCodeRuleDialogOption.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
export default {
    height:"210px",
    calcHeight: 30,
    tip: false,
    editBtn: false,
    addBtn: false,
    delBtn: false,
    searchShow: false,
    searchMenuSpan: 5,
    disablePage: true,
    border: true,
    index: true,
    viewBtn: false,
    selection: true,
    menu: false,
    refreshBtn: false,
    columnBtn: false,
    dialogClickModal: false,
    highlightCurrentRow: true, //行选中时高亮
    column: [
      {
        label: "编号",
        prop: "id",
        search: false,
      },
      {
        label: "名称",
        prop: "name",
        search: false,
      },
      {
        label: "描述",
        prop: "description",
        search: false,
        type: "textarea",
        span: 24,
      },
      {
        label: "状态",
        prop: "lcStatusText",
        search: false,
      },
    ]
  }
Source/UBCS-WEB/src/const/code/cloneOption.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
export default {
    height:'350px',
    calcHeight: 30,
    tip: false,
    editBtn: false,
    addBtn: false,
    delBtn: false,
    searchShow: false,
    searchMenuSpan: 5,
    disablePage: false,
    border: true,
    index: true,
    viewBtn: false,
    selection: false,
    menu:true,
    refreshBtn: false,
    columnBtn: false,
    dialogClickModal: false,
    highlightCurrentRow: true, //行选中时高亮
    column: [
      {
        label: "码段编号",
        prop: "id",
        search: false,
        searchLabelWidth: 80,
        searchSpan: 5,
      },
      {
        label: "码段名称",
        prop: "name",
        search: false,
        searchLabelWidth: 80,
        searchSpan: 5,
      },
      {
        label: "码段描述",
        prop: "description",
        search: false,
        span: 24,
      },
      {
        label: "码段类型",
        prop: "secTypeText",
        search: false,
      }
    ]
}
Source/UBCS-WEB/src/const/code/codebasic.js
@@ -1,6 +1,5 @@
export default {
    height:'auto',
    with: '60%',
    calcHeight: 30,
    tip: false,
    editBtn: false,
@@ -12,6 +11,7 @@
    index: true,
    viewBtn: false,
    selection: true,
    menuWidth:260,
    dialogClickModal: false,
    highlightCurrentRow: true, //行选中时高亮
    column: [
@@ -21,11 +21,6 @@
        search: true,
        searchLabelWidth: 80,
        searchSpan: 5,
        rules: [{
          required: true,
          message: "请输入码段编码",
          trigger: "blur",
        }]
      },
      {
        label: "码段名称",
@@ -33,34 +28,16 @@
        search: true,
        searchLabelWidth: 80,
        searchSpan: 5,
        rules: [{
          required: true,
          message: "请输入码段名称",
          trigger: "blur"
        }]
      },
      {
        label: "码段描述",
        prop: "description",
        search: false,
        type: "textarea",
        span: 24,
        rules: [{
            required: false,
            message: "请输入码段名称",
            trigger: "blur"
        }]
      },
      {
        label: "码段类型",
        prop: "secTypeText",
        search: false,
        type: "select",
        rules: [{
          required: true,
          message: "请选择码段类型",
          trigger: "blur"
        }],
      }
    ]
Source/UBCS-WEB/src/const/code/fixedValueMgrDialog.js
@@ -1,6 +1,6 @@
export default {
    with: '70%',
    height: '55vh',
    //width: '70%',
    height: '60vh',
    calcHeight: 30,
    tip: false,
    editBtn: false,
Source/UBCS-WEB/src/const/code/mdmrule.js
@@ -1,5 +1,5 @@
export default {
  height:"200px",
  height:"220px",
  calcHeight: 30,
  tip: false,
  editBtn:false,
Source/UBCS-WEB/src/const/code/parentClassifyParentOptionDialog.js
@@ -1,5 +1,4 @@
export default {
    with: '60%',
    height: '40vh',
    calcHeight: 30,
    tip: false,
Source/UBCS-WEB/src/const/code/referBtmDialog.js
@@ -1,5 +1,4 @@
export default {
    with: '60%',
    height: '40vh',
    calcHeight: 30,
    tip: false,
Source/UBCS-WEB/src/const/code/selectAttrOptionDialog.js
@@ -1,5 +1,4 @@
export default {
    with: '60%',
    calcHeight: 30,
    tip: false,
    editBtn: false,
Source/UBCS-WEB/src/main.js
@@ -32,10 +32,11 @@
import Torelationpackage from "@/views/modeling/Torelationpackage"
import originalRange from "@/views/modeling/originalRange"
import originalLink from "@/views/modeling/originalLink"
import addBasicCode from './views/code/addbasiccode';
import classifyTrees from "@/components/Tree/classifyTrees"
import classifyTreeform from "@/components/Tree/classifyTreeform"
import TemplatePro from "@/components/Tree/TemplatePro"
import formulaEditor from "@/components/code-dialog-page/formulaEditor"
// æ³¨å†Œå…¨å±€crud驱动
window.$crudCommon = crudCommon;
// åŠ è½½Vue拓展
@@ -64,10 +65,10 @@
Vue.component('Torelationpackage',Torelationpackage)
Vue.component('originalRange',originalRange)
Vue.component('originalLink',originalLink)
Vue.component('addBasicCode',addBasicCode)
Vue.component('classifyTrees',classifyTrees)
Vue.component('classifyTreeform',classifyTreeform)
Vue.component('TemplatePro',TemplatePro)
Vue.component('formulaEditor',formulaEditor)
// åŠ è½½ç›¸å…³url地址
Object.keys(urls).forEach(key => {
Source/UBCS-WEB/src/views/code/addbasiccode.vue
ÎļþÒÑɾ³ý
Source/UBCS-WEB/src/views/code/clonecode.vue
@@ -1,10 +1,11 @@
<template>
    <avue-crud :option="option"
               :table-loading="loading"
               :data="data"
               :permission="permissionList"
               @refresh-change="refreshChange"
               @on-load="onLoad">
    <avue-crud
      :option="option"
      :table-loading="loading"
      :data="data"
      :permission="permissionList"
      @refresh-change="refreshChange"
      @on-load="onLoad">
    </avue-crud>
    
</template>
Source/UBCS-WEB/src/views/code/code.vue
ÎļþÌ«´ó
Source/UBCS/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
@@ -41,7 +41,7 @@
     * nacos dev åœ°å€
     */
    //String NACOS_DEV_ADDR = "dev.vci-tech.com:38848";
    String NACOS_DEV_ADDR = "192.168.93.167:38848";
    String NACOS_DEV_ADDR = "192.168.93.183:38848";
    /**
     * nacos prod åœ°å€
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeClassifyValueDTO.java
@@ -19,7 +19,7 @@
    /**
     * åˆ†ç±»ç æ®µä¸»é”®
     */
    private String codeclassifysecoid;
    private String codeClassifySecOid;
    /**
     * åˆ†ç±»ç æ®µä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
@@ -28,26 +28,26 @@
    /**
     * ç å€¼åºå·
     */
    private Integer ordernum;
    private Integer orderNum;
    /**
     * ä¸Šçº§åˆ†ç±»ç å€¼ä¸»é”®
     */
    private String parentclassifyvalueoid;
    private String parentClassifyValueOid;
    /**
     * èŽ·å– åˆ†ç±»ç æ®µä¸»é”®
     */
    public String getCodeclassifysecoid (){
        return codeclassifysecoid;
    public String getCodeClassifySecOid (){
        return codeClassifySecOid;
    }
    /**
     * è®¾ç½® åˆ†ç±»ç æ®µä¸»é”®
     */
    public void setCodeclassifysecoid (String codeclassifysecoid){
        this.codeclassifysecoid = codeclassifysecoid;
    public void setCodeClassifySecOid (String codeClassifySecOid){
        this.codeClassifySecOid = codeClassifySecOid;
    }
    /**
@@ -66,39 +66,39 @@
    /**
     * èŽ·å– ç å€¼åºå·
     */
    public Integer getOrdernum (){
        return ordernum;
    public Integer getOrderNum (){
        return orderNum;
    }
    /**
     * è®¾ç½® ç å€¼åºå·
     */
    public void setOrdernum (Integer ordernum){
        this.ordernum = ordernum;
    public void setOrderNum (Integer orderNum){
        this.orderNum = orderNum;
    }
    /**
     * èŽ·å– ä¸Šçº§åˆ†ç±»ç å€¼ä¸»é”®
     */
    public String getParentclassifyvalueoid (){
        return parentclassifyvalueoid;
    public String getParentClassifyValueOid (){
        return parentClassifyValueOid;
    }
    /**
     * è®¾ç½® ä¸Šçº§åˆ†ç±»ç å€¼ä¸»é”®
     */
    public void setParentclassifyvalueoid (String parentclassifyvalueoid){
        this.parentclassifyvalueoid = parentclassifyvalueoid;
    public void setParentClassifyValueOid (String parentClassifyValueOid){
        this.parentClassifyValueOid = parentClassifyValueOid;
    }
    @Override
    public String toString() {
        return "CodeClassifyValueDTO{" +
        "codeclassifysecoid='" + codeclassifysecoid +"',"+
        "codeClassifySecOid='" + codeClassifySecOid +"',"+
        "codeclassifysecoidName='" + codeclassifysecoidName +"'," +
        "ordernum='" + ordernum +"',"+
        "parentclassifyvalueoid='" + parentclassifyvalueoid +"',"+
        "orderNum='" + orderNum +"',"+
        "parentClassifyValueOid='" + parentClassifyValueOid +"',"+
        "}" + super.toString();
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/CodeClassifyValueVO.java
@@ -18,7 +18,7 @@
    /**
    * åˆ†ç±»ç æ®µä¸»é”®
    */
    private String codeclassifysecoid;
    private String codeClassifySecOid;
    /**
    * åˆ†ç±»ç æ®µä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
@@ -28,12 +28,12 @@
    /**
    * ç å€¼åºå·
    */
    private Integer ordernum;
    private Integer orderNum;
    /**
    * ä¸Šçº§åˆ†ç±»ç å€¼ä¸»é”®
    */
    private String parentclassifyvalueoid;
    private String parentClassifyValueOid;
    /**
     * åˆ†ç±»ç å€¼ä¸­çš„编号
@@ -48,15 +48,15 @@
    /**
     * èŽ·å– åˆ†ç±»ç æ®µä¸»é”®
     */
    public String getCodeclassifysecoid (){
        return codeclassifysecoid;
    public String getCodeClassifySecOid (){
        return codeClassifySecOid;
    }
    /**
    * è®¾ç½® åˆ†ç±»ç æ®µä¸»é”®
    */
    public void setCodeclassifysecoid (String codeclassifysecoid){
        this.codeclassifysecoid = codeclassifysecoid;
    public void setCodeClassifySecOid (String codeclassifysecoid){
        this.codeClassifySecOid = codeclassifysecoid;
    }
    /**
     * èŽ·å–åˆ†ç±»ç æ®µä¸»é”®æ˜¾ç¤ºæ–‡æœ¬
@@ -74,28 +74,28 @@
    /**
     * èŽ·å– ç å€¼åºå·
     */
    public Integer getOrdernum (){
        return ordernum;
    public Integer getOrderNum (){
        return orderNum;
    }
    /**
    * è®¾ç½® ç å€¼åºå·
    */
    public void setOrdernum (Integer ordernum){
        this.ordernum = ordernum;
    public void setOrderNum (Integer ordernum){
        this.orderNum = ordernum;
    }
    /**
     * èŽ·å– ä¸Šçº§åˆ†ç±»ç å€¼ä¸»é”®
     */
    public String getParentclassifyvalueoid (){
        return parentclassifyvalueoid;
    public String getParentClassifyValueOid (){
        return parentClassifyValueOid;
    }
    /**
    * è®¾ç½® ä¸Šçº§åˆ†ç±»ç å€¼ä¸»é”®
    */
    public void setParentclassifyvalueoid (String parentclassifyvalueoid){
        this.parentclassifyvalueoid = parentclassifyvalueoid;
    public void setParentClassifyValueOid (String parentClassifyValueOid){
        this.parentClassifyValueOid = parentClassifyValueOid;
    }
    @Override
@@ -122,10 +122,10 @@
    @Override
    public String toString() {
        return "CodeClassifyValueVO{" +
                "codeclassifysecoid='" + codeclassifysecoid + '\'' +
                "codeClassifySecOid='" + codeClassifySecOid + '\'' +
                ", codeclassifysecoidName='" + codeclassifysecoidName + '\'' +
                ", ordernum=" + ordernum +
                ", parentclassifyvalueoid='" + parentclassifyvalueoid + '\'' +
                ", orderNum=" + orderNum +
                ", parentClassifyValueOid='" + parentClassifyValueOid + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                "} " + super.toString();
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClassifyValueController.java
@@ -42,7 +42,7 @@
     */
    @GetMapping("/treeCodeClassifyValue")
    public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject)  {
        return  codeClassifyValueService.treeCodeClassifyValue(treeQueryObject);
        return codeClassifyValueService.treeCodeClassifyValue(treeQueryObject);
    }
    /**
@@ -81,7 +81,7 @@
     * @return åˆ é™¤ç»“果反馈::success:成功,fail:失败
     */
    @DeleteMapping( "/deleteData")
    public R delCodeClassifyValue( CodeClassifyValueDTO codeClassifyValueDTO) {
    public R delCodeClassifyValue(@RequestBody CodeClassifyValueDTO codeClassifyValueDTO) {
        return codeClassifyValueService.deleteCodeClassifyValue(codeClassifyValueDTO);
    }
@@ -130,7 +130,7 @@
            CodeClassifyValueDTO codeFixedValueDTO = JSONObject.toJavaObject(JSONObject.parseObject(JSONObject.toJSONString(json.get(i))), CodeClassifyValueDTO.class);
            dtoList.add(codeFixedValueDTO);
        }
        String codeclassifysecoid = (String) param.get("codeclassifysecoid");
        String codeclassifysecoid = (String) param.get("codeClassifySecOid");
        VciBaseUtil.alertNotNull(dtoList,"码值集合");
        if (CollectionUtils.isEmpty(dtoList)){
            return R.success("");
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -124,8 +124,12 @@
        if (CollectionUtils.isEmpty(deleteList)){
            return true;
        }
        boolean deletFlag = false;
        // 2、再删除基础码段
        boolean deletFlag = codeBasicSecMapper.deleteBatchIds(deleteList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet())) > 0;
        Set<String> basicOids = deleteList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet());
        if(basicOids.size()>0 || !Func.isEmpty(basicOids)){
            deletFlag = codeBasicSecMapper.deleteBatchIds(basicOids) > 0;
        }
        // 3、再根据删除固定码段,丛查询出来的基础码段中过滤出包含固定码段的记录
        List<CodeBasicSec> fixedSecList = deleteList.stream().filter(sec -> {
            return CodeSecTypeEnum.CODE_FIXED_SEC.getValue().equals(sec.getSecType());
@@ -135,8 +139,11 @@
            Set<String> fixedSecOidSet = fixedSecList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet());
            // é€šè¿‡å¤–键进行查询
            List<CodeFixedValue> fixedValueS = fixedValueMapper.selectList(Wrappers.<CodeFixedValue>query().lambda().in(CodeFixedValue::getCodeFixedSecOid,fixedSecOidSet));
            // æ ¹æ®æŸ¥è¯¢å‡ºæ¥çš„id执行固定码段执行删除
            deletFlag = fixedValueMapper.deleteBatchIds(fixedValueS.stream().map(CodeFixedValue::getOid).collect(Collectors.toSet()))>0;
            Set<String> collectOid = fixedValueS.stream().map(CodeFixedValue::getOid).collect(Collectors.toSet());
            if(collectOid.size()>0 || !Func.isEmpty(collectOid)){
                // æ ¹æ®æŸ¥è¯¢å‡ºæ¥çš„id执行固定码段执行删除
                fixedValueMapper.deleteBatchIds(collectOid);
            }
        }
        // 4、再删除分类码段
        List<CodeBasicSec> classifySecList = deleteList.stream().filter(sec -> {
@@ -146,9 +153,12 @@
            // å°†è¦ä½œä¸ºåˆ é™¤æ¡ä»¶çš„值放在一个集合里面
            Set<String> classifySecOidSet = classifySecList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet());
            // é€šè¿‡å¤–键进行查询
            List<CodeClassifyValue> fixedValueS = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query().lambda().in(CodeClassifyValue::getCodeClassifySecOid,classifySecOidSet));
            List<CodeClassifyValue> classifyValues = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query().lambda().in(CodeClassifyValue::getCodeClassifySecOid,classifySecOidSet));
            // æ ¹æ®æŸ¥è¯¢å‡ºæ¥çš„主键id执行固定码段执行删除
            deletFlag = fixedValueMapper.deleteBatchIds(fixedValueS.stream().map(CodeClassifyValue::getOid).collect(Collectors.toSet()))>0;
            Set<String> codeclassifyOids = classifyValues.stream().map(CodeClassifyValue::getOid).collect(Collectors.toSet());
            if(codeclassifyOids.size()>0 || !Func.isEmpty(codeclassifyOids)){
                fixedValueMapper.deleteBatchIds(codeclassifyOids);
            }
        }
        return deletFlag;
    }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyValueServiceImpl.java
@@ -4,9 +4,11 @@
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
import com.vci.ubcs.code.dto.CodeClassifyValueDTO;
import com.vci.ubcs.code.entity.CodeBasicSec;
import com.vci.ubcs.code.entity.CodeClassifyValue;
import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus;
import com.vci.ubcs.code.enumpack.*;
import com.vci.ubcs.code.mapper.CodeClassifyValueMapper;
import com.vci.ubcs.code.service.ICodeBasicSecService;
import com.vci.ubcs.code.service.ICodeClassifyValueService;
@@ -19,6 +21,7 @@
import com.vci.ubcs.starter.web.pagemodel.Tree;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@@ -49,7 +52,7 @@
    /**
     * ä¸Šçº§èŠ‚ç‚¹çš„å±žæ€§åç§°
     */
    private static  final String PARENT_FIELD_NAME = "parentClassifyValueOid";
    private static final String PARENT_FIELD_NAME = "parentClassifyValueOid";
    /**
     * æŸ¥è¯¢åˆ†ç±»ç æ®µçš„码值 æ ‘
@@ -60,7 +63,7 @@
    @Override
    public List<Tree> treeCodeClassifyValue(TreeQueryObject treeQueryObject) throws VciBaseException {
        // List<CodeClassifyValueDO> doList =selectCodeClassifyValueDOByTree(treeQueryObject);
        List<CodeClassifyValue> doList =selectCodeClassifyValueDO4Tree(treeQueryObject);
        List<CodeClassifyValue> doList = selectCodeClassifyValueDO4Tree(treeQueryObject);
        List<CodeClassifyValueVO> voList = CodeClassifyValueWrapper.build().listVO(doList);
        TreeWrapperOptions treeWrapperOptions = new TreeWrapperOptions(PARENT_FIELD_NAME);
        treeWrapperOptions.copyFromTreeQuery(treeQueryObject);
@@ -78,12 +81,13 @@
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean addSave(CodeClassifyValueDTO codeClassifyValueDTO) throws VciBaseException{
        VciBaseUtil.alertNotNull(codeClassifyValueDTO,"需要添加的数据对象");
        //添加对码值子父级的判断
        if(StringUtils.isNotBlank(codeClassifyValueDTO.getParentclassifyvalueoid())){
            String parentclassifyvalueoid = codeClassifyValueDTO.getParentclassifyvalueoid();
            String codeclassifysecoid = codeClassifyValueDTO.getCodeclassifysecoid();
        if(StringUtils.isNotBlank(codeClassifyValueDTO.getParentClassifyValueOid())){
            String parentclassifyvalueoid = codeClassifyValueDTO.getParentClassifyValueOid();
            String codeclassifysecoid = codeClassifyValueDTO.getCodeClassifySecOid();
            CodeClassifyValue parentDO = codeClassifyValueMapper.selectById(parentclassifyvalueoid);
            if (parentDO.getCodeClassifySecOid().equalsIgnoreCase(codeclassifysecoid)){
                throw new VciBaseException("不允许在父码值中直接添加子码值");
@@ -92,6 +96,16 @@
        //将DTO转换为DO
        CodeClassifyValue codeClassifyValueDO = new CodeClassifyValue();
        BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyValueDTO,codeClassifyValueDO);
        //填充一些默认值
        codeClassifyValueDO.setOid(VciBaseUtil.getPk());
        codeClassifyValueDO.setRevisionOid(VciBaseUtil.getPk());
        codeClassifyValueDO.setNameOid(VciBaseUtil.getPk());
        codeClassifyValueDO.setBtmname(MdmBtmTypeConstant.CODE_CLASSIFY_VALUE);
        codeClassifyValueDO.setTs(new Date());
        codeClassifyValueDO.setCreateTime(new Date());
        codeClassifyValueDO.setCreator(AuthUtil.getUserId().toString());
        codeClassifyValueDO.setLastModifier(AuthUtil.getUserId().toString());
        codeClassifyValueDO.setLastModifyTime(new Date());
        //查询
        List<CodeClassifyValue> existList = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query()
            .lambda().eq(CodeClassifyValue::getCodeClassifySecOid, codeClassifyValueDO.getCodeClassifySecOid())
@@ -114,6 +128,10 @@
        //将DTO转换为DO
        CodeClassifyValue codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
        revisionModelUtil.copyFromDTOIgnore(codeClassifyValueDTO,codeClassifyValueDO);
        //填充一些默认值
        codeClassifyValueDO.setTs(new Date());
        codeClassifyValueDO.setLastModifier(AuthUtil.getUserId().toString());
        codeClassifyValueDO.setLastModifyTime(new Date());
        boolean resBoolean = codeClassifyValueMapper.updateById(codeClassifyValueDO) > 0;
        return resBoolean;
    }
@@ -203,7 +221,7 @@
        VciBaseUtil.alertNotNull(codeClassifyValueDTO,"分类码段的码值数据对象",codeClassifyValueDTO.getOid(),"分类码段的码值的主键");
        CodeClassifyValue codeClassifyValueDO = selectByOid(codeClassifyValueDTO.getOid());
        R baseResult = checkIsCanDeleteForDO(codeClassifyValueDTO,codeClassifyValueDO);
        if(baseResult.isSuccess()) {
        if(!baseResult.isSuccess()) {
            //找下级的,这个是可以删除的时候R
            List<String> childrenOids = codeClassifyValueMapper.selectAllLevelChildOid(codeClassifyValueDO.getOid().trim());
            if (!CollectionUtils.isEmpty(childrenOids)) {
@@ -280,12 +298,12 @@
        List<CodeClassifyValue> updateList = new ArrayList<>();
        dtoList.forEach(dto -> {
            if( StringUtils.isNotBlank( dto.getOid() )){
            if(StringUtils.isNotBlank(dto.getOid())){
                List<CodeClassifyValue> collect = valueDOList.stream().filter(value -> {
                    return dto.getOid().equals(value.getOid());
                }).collect(Collectors.toList());
                collect.forEach(ccv -> {
                    ccv.setOrderNum(dto.getOrdernum());
                    ccv.setOrderNum(dto.getOrderNum());
                    ccv.setId(dto.getId());
                    ccv.setName(dto.getName());
                    updateList.add(ccv);
@@ -335,9 +353,8 @@
        List<String> oids = codeBasicSecService.getOidByCodeclassifysecOid(conditionMap.get("codeclassifysecoid"));
        LambdaQueryWrapper<CodeClassifyValue> wrapper = Wrappers.<CodeClassifyValue>query()
            .lambda().in(CodeClassifyValue::getCodeClassifySecOid,oids)
            .orderByDesc(CodeClassifyValue::getOrderNum);
            .orderByAsc(CodeClassifyValue::getOrderNum);
        return codeClassifyValueMapper.selectList(wrapper);
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeBasicSecMapper.xml
@@ -204,7 +204,7 @@
    <select id="getOidByCodeclassifysecOid" resultType="java.lang.String">
        SELECT OID
        FROM PLATFORMBTM_CODEBASICSEC START WITH OID = #{codeClassifySecOid}
        FROM PL_CODE_BASICSEC START WITH OID = #{codeClassifySecOid}
        CONNECT BY PRIOR PARENTCLASSIFYSECOID = OID
    </select>