ludc
2023-05-21 e3410e9cdb22cfea4e46537d34db303612411e93
代码整合
已修改16个文件
已添加26个文件
26007 ■■■■■ 文件已修改
Source/UBCS-WEB/src/api/template/templateAttr.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/TemplatePro.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue 1147 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/code-dialog-page/tableEdit.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/main.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/page/login/userlogin.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/template/templateAttr.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/code/code.vue 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/.gitignore 2 ●●●●● 补丁 | 查看 | 原始文档 | 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/entity/CodePhaseAttr.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeReferConfig.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeShowFieldConfig.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSrchCondConfig.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeReferConfigVO.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeShowFieldConfigVO.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeSrchCondConfigVO.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/WebUtil.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeReferConfigController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeShowFieldConfigController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSrchCondConfigController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeReferConfigMapper.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeShowFieldConfigMapper.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSrchCondConfigMapper.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeReferConfigService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeShowFieldConfigService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeSrchCondConfigService.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeShowFieldConfigServiceImpl.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeSrchCondConfigServiceImpl.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeReferConfigMapper.xml 540 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeShowFieldConfigMapper.xml 397 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeSrchCondConfigMapper.xml 342 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/ValueRangeController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-webservice/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/data/applogs/xxl-job/xxl-job-admin.log 20963 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/data/applogs/xxl-job/xxl-job-admin.log.2023-05-19.zip 补丁 | 查看 | 原始文档 | blame | 历史
Source/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log 822 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log.2023-05-19.zip 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/template/templateAttr.js
@@ -67,13 +67,47 @@
}
//主键获取分类模板属性
export const  gridCodeClassifyTemplate = (oid) =>{
export const  gridCodeClassifyTemplate = (params) =>{
  return request({
    url:'/api/ubcs-code/codeClassifyTemplateController/gridCodeClassifyTemplate',
    method: 'get',
    params:{
      oid
      ...params
    }
  })
}
export const  gridCodeClassifyFindTemplate = (params) =>{
  return request({
    url:'/api/ubcs-code/codeClassifyTemplateController/gridCodeClassifyTemplate',
    method: 'get',
    params:{
      ...params
    }
  })
}
//添加
export const  addSave = (data) =>{
  return request({
    url:'/api/ubcs-code/codeClassifyTemplateController/addSave',
    method: 'post',
    data:data
  })
}
//删除
export const deleteData = (data) =>{
  return request({
    url:'/api/ubcs-code/codeClassifyTemplateController/deleteData',
    method: 'Delete',
    data:data
  })
}
//修改
export const editSave = (data) =>{
  return request({
    url:'/api/ubcs-code/codeClassifyTemplateController/editSave',
    method: 'Put',
    data:data
  })
}
//基本信息表单数据
@@ -96,3 +130,4 @@
    }
  })
}
Source/UBCS-WEB/src/components/Tree/TemplatePro.vue
@@ -6,7 +6,6 @@
    </span>
    <span v-else-if="type.prop==='tab2'">模板流程</span>
    <span v-else-if="type.prop==='tab3'">模板阶段</span>
    <span v-else-if="type.prop==='tab4'">模板按钮流程</span>
  </basic-container>
</template>
@@ -366,7 +365,7 @@
<!--</script>-->
<style lang="scss" scoped>
<style lang="scss">
//修改分类注入对话框公共样式
.mydialog .el-dialog__body {
  padding: 10px 20px 30px;
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
@@ -1,3 +1,4 @@
<!--suppress ALL -->
<template>
  <el-container>
    <!--    å·¦ä¾§èœå•-->
@@ -70,16 +71,43 @@
        <avue-tabs :option="tabOption" @change="handleChange"></avue-tabs>
        <span v-if="type.prop==='tab1'">
          <basic-container>
               <avue-crud v-model="crudForm" :data="this.Formlist" :option="this.crudTreeOption" v-loading="FormLoing"
               <avue-crud v-model="crudForm" v-loading="FormLoing" :data="this.Formlist" :option="this.crudTreeOption"
                          @row-save="CrudRowSave"
                          @row-del="CrudRowDel"
                          @row-update="CrudRowUpdata"
               >
            <template slot="menuLeft">
              <el-button plain size="small" type="primary">查询</el-button>
              <el-button plain size="small" type="primary" @click="FindFormVisible = true;">查询</el-button>
              <el-button plain size="small" type="primary" @click="TemRefresh">刷新</el-button>
              <el-button plain size="small" type="primary">从其它模板克隆</el-button>
              <div style="display: inline-block"> <el-input v-model="FindText" placeholder="请输入关键字按回车查询"
                                                            size="small"
                                                            @keyup.enter.native="EnterFind"></el-input></div>
           <el-dialog :visible.sync="FindFormVisible" append-to-body title="高级查询">
              <div>
                <el-button size="small" type="primary" @click="AdvQueries">查询</el-button>
                <el-button size="small" type="primary">重置</el-button>
              </div>
             <div style="padding-left: 80px;margin-top: 15px;">
               <template v-for="(value, key) in FindSelect">
                <div style="display: flex;justify-content: space-around;width: 85%;margin-bottom: 15px">
                <el-select v-model="FindSelect[key]" placeholder="请选择" style="width: 28%" @change="handleSelectChange(key)">
                  <el-option label="模板编号" value="0"></el-option>
                  <el-option label="模板名称" value="1"></el-option>
                  <el-option label="模板描述" value="2"></el-option>
                  <el-option label="版本号" value="3"></el-option>
                  <el-option label="状态" value="4"></el-option>
                 </el-select>
                <el-select v-model="condition[0]" placeholder="请选择" style="width: 15%">
                  <el-option label="包含" value="0"></el-option>
                  <el-option label="等于" value="1"></el-option>
                </el-select>
              <el-input v-model="QueryArray[key]" style="width: 49%"></el-input>
          <span> <i class="el-icon-delete" style="font-size: 22px;margin-top:8px;margin-left: 10px"/></span>
    </div>
  </template>
</div>
           </el-dialog>
            </template>
          </avue-crud>
          </basic-container>
@@ -108,7 +136,11 @@
  importClassify,
  gridCodeClassifyTemplate,
  getObjectByOid,
  gridCodeClassifyTemplateAttr
  gridCodeClassifyTemplateAttr,
  gridCodeClassifyFindTemplate,
  addSave,
  deleteData,
  editSave
} from "@/api/template/templateAttr";
export default {
@@ -119,9 +151,33 @@
  inject: ['crudTreeOption', "crudTreeData"],
  data() {
    return {
      //模板属性展示内容
      ProData: [],
      //回车键搜索绑定值
      FindText: "",
      fileList: [],
      //高级查询对话框
      FindFormVisible: false,
      //高级查询下拉框
      FindSelect: {
        id: "0",
        name: "1",
        description: "2",
        revisionValue: "3",
        lcStatus: "4"
      },
      //高级查询条件
      condition: ["0", "0", "0", "0", "0"],
      //高级查询 ç­‰äºŽ/不等于
      Equalto: "0",
      //高级查询 è¾“入框数据
      QueryArray: {
        id: "",
        name: "",
        description: "",
        revisionValue: "",
        lcStatus: ""
      },
      //停用启用接收数组
      FlagObj: {},
      //修改对话框
      TreeEditFormVisible: false,
@@ -191,7 +247,7 @@
      ],
      //传递给子组件动态渲染的数据
      TreeList: {},
      //定义一个模板属性id,数据是模板管理表格里面的oid
      codeClassifyOid:""
    }
  },
  //tab栏默认是表格
@@ -215,7 +271,7 @@
        this.$message.error(res)
      })
    },
    //定义一个修改对象属性名的方法
    //定义一个修改对象属性名的方法 è¿™é‡Œåˆ«æ”¹ï¼ï¼ï¼å¥½åƒæ˜¯åŽå°æŽ¥å£æ•°æ®å­—段不一致,添加的方法。具体什么原因我也忘记了
    ModifyProperties(obj, oldName, newName) {
      for (let key in obj) {
        if (key === oldName) {
@@ -388,10 +444,11 @@
        });
      }
    },
    //树点击事件
    async nodeClick(data) {
      //定义一个模板属性id,数据是模板管理表格里面的oid
      this.nodeClickList = data
      console.log(data.oid)
      //console.log(data.oid)
      try {
        await TreeObjcet(data.oid).then(res => {
          this.FlagObj = res.data.data
@@ -399,9 +456,10 @@
          this.$message.error(res)
        })
        //模板管理表格数据
        await gridCodeClassifyTemplate(data.oid).then(res => {
        await gridCodeClassifyTemplate({'conditionMap[codeClassifyOid]':data.oid }).then(res => {
          this.Formlist = res.data.data.filter(item => {
          if(item.codeclassifyoid != ""){
              this.codeClassifyOid=item.codeclassifyoid
            return  item.codeclassifyoid == this.nodeClickList.oid
          }
          })
@@ -430,6 +488,114 @@
    handleChange(column) {
      this.type = column
    },
    // //高级查询按钮
    // handleSelectChange(key) {
    //   const selectedValue = this.FindSelect[key];
    //   console.log(selectedValue)
    //   console.log(this.QueryArray[0])
    //   switch (this.FindSelect[key]) {
    //     case '0':
    //       this.QueryArray[key] = '';
    //       this.$set(this.QueryArray, key, '');
    //       // å¦‚果选中的是模板编号,相应的输入框双向绑定关系为 QueryArray.id
    //       this.$set(this.QueryArray, 'id', this.QueryArray[key]);
    //       break;
    //     case '1':
    //       this.QueryArray[key] = '';
    //       this.$set(this.QueryArray, key, '');
    //       // å¦‚果选中的是模板名称,相应的输入框双向绑定关系为 QueryArray.name
    //       this.$set(this.QueryArray, 'name', this.QueryArray[key]);
    //       break;
    //     case '2':
    //       this.QueryArray[key] = '';
    //       this.$set(this.QueryArray, key, '');
    //       // å¦‚果选中的是模板描述,相应的输入框双向绑定关系为 QueryArray.description
    //       this.$set(this.QueryArray, 'description', this.QueryArray[key]);
    //       break;
    //     case '3':
    //       this.QueryArray[key] = '';
    //       this.$set(this.QueryArray, key, '');
    //       // å¦‚果选中的是版本号,相应的输入框双向绑定关系为 QueryArray.revisionValue
    //       this.$set(this.QueryArray, 'revisionValue', this.QueryArray[key]);
    //       break;
    //     case '4':
    //       this.QueryArray[key] = '';
    //       this.$set(this.QueryArray, key, '');
    //       // å¦‚果选中的是状态,相应的输入框双向绑定关系为 QueryArray.lcStatus
    //       this.$set(this.QueryArray, 'lcStatus', this.QueryArray[key]);
    //       break;
    //   }
    // },
    AdvQueries() {
      this.FindFormVisible = false
      //如果全部为空 allEmpty为true
      const allEmpty = Object.values(this.QueryArray).every(value => !value);
      //如果全部为空,点击查询出现所有数据
      if (allEmpty) {
        gridCodeClassifyTemplate().then(res => {
          this.Formlist = res.data.data
        })
      } else {
        //默认是等于
        gridCodeClassifyFindTemplate({'conditionMap[id]': this.QueryArray.id},
          {'conditionMap[name]': this.QueryArray.name},
          {'conditionMap[description]': this.QueryArray.description},
          {'conditionMap[revisionValue]': this.QueryArray.revisionValue},
          {'conditionMap[lcStatus]': this.QueryArray.lcStatus}
        ).then(res => {
          this.Formlist = res.data.data
        })
      }
    },
    //模板管理渲染
    CrudRend(){
      gridCodeClassifyTemplate({'conditionMap[codeclassifyoid]':this.nodeClickList.oid }).then(res=>{
        this.Formlist = res.data.data
      })
    },
    //模板管理表格添加
    CrudRowSave(row){
      if(this.nodeClickList.length <= 0){
        this.$message({
          type: 'warning',
          message: '请先从树上选择一条数据!'
        });
      }else {
        console.log(this.nodeClickList)
        let codeClassifyOid=this.codeClassifyOid
        this.$set(row,"codeclassifyoid",codeClassifyOid)
        addSave(row).then(res=>{
          this.CrudRend()
        }).catch(res=>{
          this.$message({
            type: 'info',
            message: res
          });
        })
      }
    },
    //模板管理修改
    CrudRowUpdata(row){
      editSave(row).then(()=>{
        this.CrudRend()
      }).catch(res=>{
        this.$message({
          type: 'info',
          message: res
        });
      })
    },
    //模板管理删除
    CrudRowDel(row){
      deleteData(row).then(res=>{
        this.CrudRend()
      }).catch(res=>{
        this.$message({
          type: 'info',
          message: res
        });
      })
    },
    //模板管理表格查询
    EnterFind() {
      console.log(this.Formlist)
@@ -441,16 +607,15 @@
        gridCodeClassifyTemplate().then(res => {
            this.Formlist = res.data.data.filter(item => {
                  return item.name.includes(this.FindText)
              }
            )
          }
        )
          })
        })
      }
    },
    //刷新
    TemRefresh(){
      this.FormLoing=true
      if(this.nodeClickList.oid != ""){
        gridCodeClassifyTemplate(this.nodeClickList.oid).then(res=>{
        gridCodeClassifyTemplate({'conditionMap[codeclassifyoid]':this.nodeClickList.oid}).then(res => {
          this.Formlist = res.data.data.filter(item => {
            return  item.codeclassifyoid == this.nodeClickList.oid
          })
Source/UBCS-WEB/src/components/code-dialog-page/referConfigDialog.vue
@@ -5,6 +5,7 @@
      append-to-body
      :visible.sync="isShowReferConfig"
      width="90%"
      id="refer-config"
      @close="recoveryDataAndForm('initData')"
      style="height: 115vh; margin-top: -14vh; overflow-y: hidden">
        <el-tabs v-model="activeName" @tab-click="handleClick">
@@ -12,15 +13,28 @@
                <div style="width: 100%; overflow-y: auto; height: 65vh">
                    <el-row>
                        <avue-form ref="form" :option="formOption" v-model="form" class="referTypeForm">
                            <template>
                                <el-input
                                    ref="referType"
                            <template #referTypeName="{disabled,size}">
                                <el-input :disabled="disabled"
                                    :size="size"
                                    v-model="form.referTypeName"
                                    ref="referTypeName"
                                    placeholder="请选择 å‚照的业务类型"
                                    prefix-icon="el-icon-search"
                                    readonly="true"
                                    v-model="form.referType"
                                    @focus="openAttrSelectOrGetValue('referType')">
                                    <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referType')" style="margin-right: 5px;cursor: pointer;"></i>
                                    @focus="openSelectionTable('referType')">
                                    <i v-show="!disabled" slot="suffix" class="el-icon-circle-close" @click="clearSelectionTable('referType')" style="margin-right: 5px;cursor: pointer;"></i>
                                </el-input>
                            </template>
                            <template #sortField="{disabled,size}">
                                <el-input :disabled="disabled"
                                    :size="size"
                                    v-model="form.sortField"
                                    ref="sortField"
                                    placeholder="请选择 æŽ’序字段"
                                    prefix-icon="el-icon-search"
                                    readonly="true"
                                    @focus="openSelectionTable('sortField')">
                                    <i slot="suffix" class="el-icon-circle-close" @click="clearSelectionTable('sortField')" style="margin-right: 5px;cursor: pointer;"></i>
                                </el-input>
                            </template>
                        </avue-form>
@@ -28,8 +42,9 @@
                    <el-row v-show="form.type=='default' || form.type=='grid'">
                        <avue-crud
                            ref="crudAttr"
                            class="crud-attr"
                            :option="attrOption"
                            @cell-click="clicktest"
                            @cell-click="clickAttrEdit"
                            :data="attrData">
                            <!-- è¡¨æ ¼å†…操作按钮 -->
                            <template slot="menu" slot-scope="scope">
@@ -52,15 +67,28 @@
                                <el-button type="primary"
                                    size="small"
                                    icon="el-icon-plus"
                                    @click="openAddSearchOrAttrDialog('selectAttr')">选择属性
                                    @click="openSelectionTable('selectAttr')">选择属性
                                </el-button>
                                <div class="tag-group" style="display: inline">
                                    <el-tag
                                        v-for="item in attrData"
                                        v-show="item.isquery && item.title!=''"
                                        style="margin-left: 3px"
                                        :key="item.title"
                                        type="info"
                                        size="small"
                                        effect="dark">
                                        {{ item.title }}
                                    </el-tag>
                                </div>
                            </template>
                        </avue-crud>
                    </el-row>
                    <el-row>
                    <el-row style="margin-top: 10px">
                        <avue-crud
                            ref="crudAddCondition"
                            :option="addSearchCondtionOption" 
                            @cell-click="clickAddSearchCondtionEdit"
                            :data="addSearchCondtionData">
                            <!-- è¡¨æ ¼å†…操作按钮 -->
                            <template slot="menu" slot-scope="scope">
@@ -76,7 +104,7 @@
                                <el-button type="primary"
                                    size="small"
                                    icon="el-icon-plus"
                                    @click="openAddSearchOrAttrDialog('addSearchCondition')">
                                    @click="openSelectionTable('addSearchCondition')">
                                    æ·»åŠ æŸ¥è¯¢æ¡ä»¶
                                </el-button>
                            </template>
@@ -87,7 +115,7 @@
            <el-tab-pane label="直接选取参照配置" name="second">
                <div style="width: 100%; overflow-y: auto; height: 65vh">
                    <avue-crud
                        :option="optionSelectReferConfig"
                        :option="selectReferConfigOption"
                        :table-loading="selectReferConfigLoading"
                        :data="selectReferConfigData"
                        :page.sync="selectReferConfigPage"
@@ -109,6 +137,110 @@
            <el-button @click="recoveryDataAndForm('initForm')">清空内容</el-button>
            <el-button @click="isShowReferConfig = false">取 æ¶ˆ</el-button>
        </div>
        <el-dialog title="为【参照的业务类型】选取值"
            append-to-body
            :visible.sync="isShowReferBtmType"
            width="70%"
            destroy-on-close
            @close="clearTableRowSelection('referType')"
            style="height: 110vh; margin-top: -12vh; overflow-y: hidden">
            <avue-crud :option="selectionReferBtmTypeOption"
                :table-loading="selectReferBtmTypeLoading"
                :data="selectReferBtmTypeData"
                :page.sync="selectReferBtmTypePage"
                ref="selectReferBtmTypeCrud"
                class="referBtmType-crud"
                @row-click="referBtmTypeRowClick"
                @search-change="referBtmTypeSearchChange"
                @search-reset="referBtmTypeSearchReset"
                @current-change="referBtmTypeCurrentChange"
                @size-change="referBtmTypeSizeChange">
                <template #radio="{row}">
                    <el-radio v-model="referBtmTypeSelectRow"
                        :label="row.$index">
                        -
                    </el-radio>
                </template>
            </avue-crud>
            <div slot="footer" class="dialog-footer">
                <el-button type="primary" @click="selectedReferBtmType">ç¡® å®š</el-button>
                <el-button @click="isShowReferBtmType = false">取 æ¶ˆ</el-button>
            </div>
        </el-dialog>
        <el-dialog title="为【排序字段】选取值"
            append-to-body
            :visible.sync="isShowSortField"
            width="70%"
            destroy-on-close
            @close="clearTableRowSelection('sortField')"
            style="height: 110vh; margin-top: -12vh; overflow-y: hidden">
            <avue-crud :option="selectionSortFieldOption"
                :table-loading="selectSortFieldLoading"
                :data="selectSortFieldData"
                :page.sync="selectSortFieldPage"
                ref="selectSortFieldCrud"
                @row-click="sortFieldRowClick"
                @search-change="sortFieldChange"
                @search-reset="sortFieldSearchReset"
                @current-change="sortFieldCurrentChange"
                @size-change="sortFieldSizeChange">
                <template #radio="{row}">
                    <el-radio v-model="sortFieldSelectRow"
                        :label="row.$index">
                        -
                    </el-radio>
                </template>
            </avue-crud>
            <div slot="footer" class="dialog-footer">
                <el-button type="primary" @click="selectedSortField">ç¡® å®š</el-button>
                <el-button @click="isShowSortField = false">取 æ¶ˆ</el-button>
            </div>
        </el-dialog>
        <el-dialog title="选择显示字段"
            append-to-body
            :visible.sync="isShowShowField"
            width="70%"
            destroy-on-close
            style="height: 110vh; margin-top: -12vh; overflow-y: hidden">
            <avue-crud :option="selectionShowFieldOption"
                :table-loading="selectShowFieldLoading"
                :data="selectShowFieldData"
                ref="selectShowFieldCrud"
                @row-click="showFieldRowClick"
                @selection-change="selectionShowFieldDataChange"
                @search-change="showFieldSearchChange"
                @search-reset="showFieldSearchReset">
            </avue-crud>
            <div slot="footer" class="dialog-footer">
                <el-button type="primary" @click="selectedShowField">ç¡® å®š</el-button>
                <el-button @click="isShowShowField = false">取 æ¶ˆ</el-button>
            </div>
        </el-dialog>
        <el-dialog title="选择查询条件"
            append-to-body
            :visible.sync="isShowSearchCondition"
            width="70%"
            destroy-on-close
            style="height: 110vh; margin-top: -12vh; overflow-y: hidden">
            <avue-crud :option="selectionSearchConditionOption"
                :table-loading="selectSearchConditionLoading"
                :data="selectSearchConditionData"
                ref="selectSearchConditionCrud"
                @row-click="searchConditionRowClick"
                @selection-change="searchConditionDataChange"
                @search-change="searchConditionSearchChange"
                @search-reset="searchConditionSearchReset">
            </avue-crud>
            <div slot="footer" class="dialog-footer">
                <el-button type="primary" @click="selectedSearchCondition">ç¡® å®š</el-button>
                <el-button @click="isShowSearchCondition = false">取 æ¶ˆ</el-button>
            </div>
        </el-dialog>
    </el-dialog>
</template>
@@ -123,13 +255,43 @@
            },
        },
        data() {
            let element = '';
            return {
                //测试表格行编辑效果
                // tableData:[{
                //         field: 'id',
                //         title: '编号',
                //         fieldType: 'text',
                //         fieldTypeText: '文本框',
                //         sort: true,
                //         sortField: 'id',
                //         width: '150',
                //         isquery: true,
                //         $cellEdit: false
                // },{
                //         field: 'name',
                //         title: '名称',
                //         fieldType: 'text',
                //         fieldTypeText: '文本框',
                //         sort: true,
                //         sortField: 'name',
                //         width: '180',
                //         isquery: true,
                //         $cellEdit: false
                // }],
                // tableOption:{
                //     tableData:[], //表格数据
                //     options:[] //表格配置项信息(表头,label宽度等)
                // },
                activeName: 'first', //当前活动的tabs
                labelWidth: '150',   // æ ‡é¢˜å®½åº¦
                isShowReferConfig: false,  // å¯¹è¯æ¡†æ˜¾ç¤ºéšè—æŽ§åˆ¶
                isShowReferConfig: false,  // ç¬¬ä¸€å±‚对话框显示隐藏控制
                referTypeIsReadOnly: false,
                // è¡¨å•对象
                form: {
                    referType: '',
                    referTypeName: '', //显示的值
                    referType: '',    //实际存储的值
                    textField: 'name',
                    valueField: 'oid',
                    type: 'default', //参照窗口类型
@@ -141,6 +303,7 @@
                    paramForFormKey: '',
                    isMuti: false,
                    mapFields: '', 
                     // æŸ¥è¯¢æ¡ä»¶åˆ—表
                    // limit: '15',
                    // sortField: '',
                    // sortType: 'asc',
@@ -152,29 +315,9 @@
                    // loadType: 'all',
                    // onlyLeaf: false,
                },
                attrData: [
                    {
                        field: 'id',
                        title: '编号',
                        fieldType: 'text',
                        fieldTypeText: '文本框',
                        sort: "true",
                        sortField: 'id',
                        width: '150',
                        isquery: true,
                    },{
                        field: 'name',
                        title: '名称',
                        fieldType: 'text',
                        fieldTypeText: '文本框',
                        sort: "true",
                        sortField: 'name',
                        width: '180',
                        isquery: true,
                    }
                ],
                attrData: [],
                attrOption: {
                    height:'150',
                    height:'180',
                    tip: false,
                    addBtn: false,
                    editBtn: false,
@@ -194,49 +337,76 @@
                        {
                            label: "列字段(*)",
                            prop: "field",
                            cell: true,
                            clearable: false,
                            blur: (value) => this.updateAttrBlur(value),
                        },{
                            label: "列名(*)",
                            prop: "title",
                            cell: true,
                            clearable: false,
                            blur: (value) => this.updateAttrBlur(value),
                        },{
                            label: "字段类型(*)",
                            prop: "fieldTypeText",
                            cell: true,
                            clearable: false,
                            type:"select",
                            value: 'text',
                            dicData: [{
                                value: 'text', label: '文本框'
                            }, {
                                value: 'combox', label: '下拉菜单'
                            }, {
                                value: 'radio',label: '单选'
                            }, {
                                value: 'swtich', label: '开关'
                            }, {
                                value: 'date', label: '时间'
                            }, {
                                value: 'textarea', label: '文本域'
                            }],
                            blur: (value) => this.updateAttrBlur(value),
                        },{
                            label: "列表可排序",
                            prop: "sort",
                            cell: true,
                            clearable: false,
                            type:"switch",
                            width: '80px',
                            value: true,
                            blur: (value) => this.updateAttrBlur(value),
                        },{
                            label: "排序字段",
                            prop: "sortField",
                            cell: true,
                            clearable: false,
                            blur: (value) => this.updateAttrBlur(value),
                        },{
                            label: "字段宽度",
                            prop: "width",
                            cell: true,
                            clearable: false,
                            blur: (value) => this.updateAttrBlur(value),
                        },{
                            label: "列固定位置",
                            prop: "fixedText",
                            cell: true,
                            type:"select",
                            clearable: false,
                            value: 'noFixed',
                            dicData: [{value: 'noFixed', label: '不固定'}, {value: 'left', label: '左边'}, {value: 'right', label: '右边'}],
                            blur: (value) => this.updateAttrBlur(value),
                        },{
                            label: "js显示代码",
                            prop: "templet",
                            cell: true,
                            clearable: false,
                            blur: (value) => this.updateAttrBlur(value),
                        },
                    ]
                },
                addSearchCondtionData: [
                        {
                            id: 'test',
                            cate: 'test',
                            value: 1
                        },{
                            id: 'test1',
                            cate: 'test1',
                            value: 2
                        },{
                            id: 'test2',
                            cate: 'test2',
                            value: 3
                        },{
                            id: 'test4',
                            cate: 'test4',
                            value: 4
                        }
                ],
                addSearchCondtionData: [],
                addSearchCondtionOption: {
                    height:'150',
                    tip: false,
@@ -257,18 +427,40 @@
                    column: [
                        {
                            label: "筛选字段",
                            prop: "id",
                            prop: "filterField",
                            cell: true,
                            clearable: false,
                        },{
                            label: "筛选类型",
                            prop: "cate",
                            prop: "filterType",
                            type: "select",
                            cell: true,
                            clearable: false,
                            dicData: [{
                                value: 'like', label: '包含'
                            }, {
                                value: '=', label: '等于'
                            }, {
                                value: '>', label: '大于'
                            }, {
                                value: '<', label: '小于'
                            }, {
                                value: '!=', label: '不等于'
                            }, {
                                value: '>=', label: '大于等于'
                            }, {
                                value: '<=', label: '小于等于'
                            }]
                        },{
                            label: "筛选值",
                            prop: "value",
                            prop: "filterValue",
                            cell: true,
                            clearable: false,
                        }
                    ]
                },
                optionSelectReferConfig: {
                selectReferConfigOption: {
                    height:'auto',
                    tip: false,
                    addBtn: false,
@@ -342,6 +534,217 @@
                },
                selectReferConfigQuery: {},
                //为【参照的业务类型】选取值对话框
                selectionReferBtmTypeOption: {
                    border: true,
                    height: '260',
                    tip: false,
                    //searchShow: false,
                    index: true,
                    selection: false,
                    menu: false,
                    addBtn: false,
                    refreshBtn: false,
                    searchShowBtn: false,
                    columnBtn: false,
                    dialogClickModal: false,
                    highlightCurrentRow: true,
                    align: 'center',
                    menuAlign: 'center',
                    column: [{
                        label: '-',
                        prop: 'radio',
                        width: 60,
                        hide: false
                    },{
                        label: '业务类型编号',
                        width: 120,
                        search: true,
                        searchSpan: 8,
                        searchLabelWidth: 100,
                        prop: 'id'
                    },{
                        label: '业务类型名称',
                        search: true,
                        searchSpan: 8,
                        searchLabelWidth: 100,
                        prop: 'name'
                    },{
                        label: '描述',
                        search: false,
                        prop: 'description'
                    }],
                },
                selectReferBtmTypeLoading: false,
                selectReferBtmTypeData: [],
                selectReferBtmTypePage: {
                    pageSize: 10,
                    currentPage: 1,
                    total: 0
                },
                referBtmTypeQuery: {},
                isShowReferBtmType: false,
                referBtmTypeSelectRowData: '',
                referBtmTypeSelectRow: '',
                // ä¸ºã€æŽ’序字段】选取值对话框
                isShowSortField: false,
                selectionSortFieldOption: {
                    border: true,
                    height: '220px',
                    tip: false,
                    //searchShow: false,
                    index: true,
                    selection: false,
                    addBtn: false,
                    menu: false,
                    refreshBtn: false,
                    searchShowBtn: false,
                    columnBtn: false,
                    dialogClickModal: false,
                    highlightCurrentRow: true,
                    align: 'center',
                    menuAlign: 'center',
                    border: true,
                    column: [{
                        label: '-',
                        prop: 'radio',
                        width: 60,
                        hide: false
                    },{
                        label: '属性英文编号',
                        width: 120,
                        search: true,
                        searchSpan: 8,
                        searchLabelWidth: 100,
                        prop: 'id'
                    },{
                        label: '属性中文名称',
                        search: true,
                        searchSpan: 8,
                        searchLabelWidth: 100,
                        prop: 'name'
                    },{
                        label: '属性长度',
                        search: false,
                        prop: 'attrLength'
                    },{
                        label: '属性类型',
                        search: false,
                        prop: 'attrType'
                    }],
                },
                selectSortFieldLoading: false,
                selectSortFieldData: [],
                selectSortFieldPage: {
                    pageSize: 10,
                    currentPage: 1,
                    total: 0
                },
                sortFieldQuery: {},
                sortFieldSelectRow: '',
                sortFieldSelectRowData: '',
                //选择显示字段
                isShowShowField: false,
                selectionShowFieldOption:  {
                    border: true,
                    height: '220px',
                    tip: false,
                    //searchShow: false,
                    index: true,
                    selection: true,
                    addBtn: false,
                    menu: false,
                    refreshBtn: false,
                    searchShowBtn: false,
                    columnBtn: false,
                    dialogClickModal: false,
                    highlightCurrentRow: true,
                    align: 'center',
                    menuAlign: 'center',
                    border: true,
                    column: [{
                        label: '属性英文编号',
                        width: 120,
                        search: true,
                        searchSpan: 8,
                        searchLabelWidth: 100,
                        prop: 'id'
                    },{
                        label: '属性中文名称',
                        search: true,
                        searchSpan: 8,
                        searchLabelWidth: 100,
                        prop: 'name'
                    },{
                        label: '属性长度',
                        search: false,
                        prop: 'attrLength'
                    },{
                        label: '属性类型',
                        search: false,
                        prop: 'attrType'
                    }],
                },
                showFieldQuery: {},
                selectShowFieldLoading: false,
                selectShowFieldData: [],
                showFieldSelectList: [],
                //添加查询条件
                isShowSearchCondition: false,
                selectionSearchConditionOption: {
                    border: true,
                    height: '220px',
                    tip: false,
                    //searchShow: false,
                    index: true,
                    selection: true,
                    addBtn: false,
                    menu: false,
                    refreshBtn: false,
                    searchShowBtn: false,
                    columnBtn: false,
                    dialogClickModal: false,
                    highlightCurrentRow: true,
                    align: 'center',
                    menuAlign: 'center',
                    border: true,
                    column: [{
                        label: '属性英文编号',
                        width: 120,
                        search: true,
                        searchSpan: 8,
                        searchLabelWidth: 100,
                        prop: 'id'
                    },{
                        label: '属性中文名称',
                        search: true,
                        searchSpan: 8,
                        searchLabelWidth: 100,
                        prop: 'name'
                    },{
                        label: '属性长度',
                        search: false,
                        prop: 'attrLength'
                    },{
                        label: '属性类型',
                        search: false,
                        prop: 'attrType'
                    }],
                },
                selectSearchConditionLoading: false,
                selectSearchConditionData: [],
                searchConditionQuery: {},
                searchConditionSelectList: [],
                //上一次点击的行编辑数据
                preClickAttrRow: '',
                preClickAddSearchConditionRow: '',
            };
        },
        // è¡¨å•界面显示内容配置
@@ -364,93 +767,17 @@
                    column: [
                        {
                            label: '参照的业务类型',
                            prop: 'referType',
                            prop: 'referTypeName',
                            span: 7,
                            disabled: this.referTypeIsReadOnly,
                            clearable: !this.referTypeIsReadOnly,
                            tip: '参照数据查询的业务类型。',
                            tipPlacement: 'right',
                            type: 'input',
                            rules: [{
                                required: true,
                                message: "(参照的业务类型)必填项不能为空",
                                trigger: "blur",
                                trigger: ["blur","change"],
                            }],
                            children: {
                                border: true,
                                height: '200px',
                                tip: false,
                                //searchShow: false,
                                index: true,
                                selection: true,
                                //refreshBtn: false,
                                //columnBtn: false,
                                dialogClickModal: false,
                                highlightCurrentRow: true,
                                column: [{
                                    label: '业务类型编号',
                                    width: 120,
                                    search: true,
                                    searchSpan: 8,
                                    searchLabelWidth: 100,
                                    prop: 'id'
                                },{
                                    label: '业务类型名称',
                                    search: true,
                                    searchSpan: 8,
                                    searchLabelWidth: 100,
                                    prop: 'name'
                                },{
                                    label: '描述',
                                    search: false,
                                    prop: 'description'
                                }],
                            },
                            // formatter: (row) => {
                            //     console.log(row.name);
                            //     if (!row.name)
                            //         return ''
                            //     return row.name;
                            // },
                            // onLoad: ({ page, value, data }, callback) => {
                            //     console.log(page);
                            //     console.log(value);
                            //     console.log(data);
                            //     //首次加载去查询对应的值
                            //     if (value) {
                            //         console.log(111+"======="+ value);
                            //         this.$message.success('首次查询' + value)
                            //         callback({
                            //             id: 't1',
                            //             name: 'test1',
                            //             description: 'test1',
                            //         })
                            //         return;
                            //     }
                            //     if (data) {
                            //         console.log(111+"======="+ data);
                            //         this.$message.success('搜索查询参数' + JSON.stringify(data))
                            //     }
                            //     if (page) {
                            //         console.log(111+"======="+ page);
                            //         this.$message.success('分页参数' + JSON.stringify(page))
                            //     }
                            //     //分页查询信息
                            //     callback({
                            //         total: 2,
                            //         data: [{
                            //             id: 't2',
                            //             name: 'test2',
                            //             description: 'test2',
                            //         }, {
                            //             id: 't3',
                            //             name: 'test3',
                            //             description: 'test3',
                            //         }]
                            //     })
                            // },
                            // props: {
                            //     label: 'name',
                            //     value: 'id',
                            // }
                        },{
                            label: '显示的属性',
                            prop: 'textField',
@@ -654,36 +981,9 @@
                                    label: '排序字段',
                                    prop: 'sortField',
                                    span: 7,
                                    type: 'table',
                                    tip: '查询数据时的排序字段',
                                    //clearable: false,
                                    tipPlacement: 'right',
                                    children: {
                                        border: true,
                                        column: [{
                                            label: '属性英文编号',
                                            width: 120,
                                            search: true,
                                            searchSpan: 8,
                                            searchLabelWidth: 100,
                                            prop: 'id'
                                        },{
                                            label: '属性中文名称',
                                            search: true,
                                            searchSpan: 8,
                                            searchLabelWidth: 100,
                                            prop: 'name'
                                        },{
                                            label: '属性长度',
                                            search: false,
                                            prop: 'attrLength'
                                        },{
                                            label: '属性类型',
                                            search: false,
                                            prop: 'attrType'
                                        }],
                                    },
                                    // è¿™å„¿éœ€è¦æ·»åŠ ä¸šåŠ¡ç±»åž‹æŽ¥å£
                                },{
                                    label: '排序类型',
                                    prop: 'sortType',
@@ -776,32 +1076,34 @@
                                    label: '排序字段',
                                    prop: 'sortField',
                                    span: 7,
                                    type: 'table',
                                    children: {
                                        border: true,
                                        column: [{
                                            label: '属性英文编号',
                                            width: 120,
                                            search: true,
                                            searchSpan: 8,
                                            searchLabelWidth: 100,
                                            prop: 'id'
                                        },{
                                            label: '属性中文名称',
                                            search: true,
                                            searchSpan: 8,
                                            searchLabelWidth: 100,
                                            prop: 'name'
                                        },{
                                            label: '属性长度',
                                            search: false,
                                            prop: 'attrLength'
                                        },{
                                            label: '属性类型',
                                            search: false,
                                            prop: 'attrType'
                                        }],
                                    },
                                    //type: 'table',
                                    tip: '查询数据时的排序字段',
                                    tipPlacement: 'right',
                                    // children: {
                                    //     border: true,
                                    //     column: [{
                                    //         label: '属性英文编号',
                                    //         width: 120,
                                    //         search: true,
                                    //         searchSpan: 8,
                                    //         searchLabelWidth: 100,
                                    //         prop: 'id'
                                    //     },{
                                    //         label: '属性中文名称',
                                    //         search: true,
                                    //         searchSpan: 8,
                                    //         searchLabelWidth: 100,
                                    //         prop: 'name'
                                    //     },{
                                    //         label: '属性长度',
                                    //         search: false,
                                    //         prop: 'attrLength'
                                    //     },{
                                    //         label: '属性类型',
                                    //         search: false,
                                    //         prop: 'attrType'
                                    //     }],
                                    // },
                                    // è¿™å„¿éœ€è¦æ·»åŠ ä¸šåŠ¡ç±»åž‹æŽ¥å£è¯·æ±‚å®žçŽ°å¼¹çª—ç•Œé¢è¡¨æ ¼æ¸²æŸ“
                                },{
                                    label: '排序类型',
@@ -820,18 +1122,75 @@
                    ]
                }
            },
        },
        mounted() {
            // éº»çš„这个地方调死我了
            this.element = document.getElementById('refer-config');
            this.element.addEventListener("click", (e) => {
                //<table cellspacing="0" cellpadding="0" border="0" class="el-table__body" style="width: 911px;">
                //console.log(e.target);
                // console.log(this.$refs.crudAttr);
                // console.log(this.$refs.crudAttr.$el.contains(e.target));
                //console.log(!this.$refs.crudAttr.$el.contains(e.target) && this.preClickAttrRow != null);
                if (!this.$refs.crudAttr.$el.contains(e.target) &&
                   this.preClickAttrRow != '') {
                   this.preClickAttrRow.$cellEdit = false;
                }
                if (!this.$refs.crudAddCondition.$el.contains(e.target) &&
                   this.preClickAddSearchConditionRow != '') {
                   this.preClickAddSearchConditionRow.$cellEdit = false;
                }
            });
        },
        watch: {
            // è´¼å‘,切换类型时表格,隐藏再显示就会出现表格错位问题,
            'form.type'(val) {
                //console.log(val);
                this.onloadAttrData();
            }
        },
        methods: {
            clicktest(cell){
                
                //cell.$cellEdit = true;
            // å•击表格实现表格行编辑
            clickAttrEdit(row, column, event){
                if(this.preClickAttrRow && this.preClickAttrRow != row){
                    //console.log(this.attrData[this.preClickAttrRow.$index]);
                    this.attrData[this.preClickAttrRow.$index].$cellEdit = false;
                }
                row.$cellEdit = true;
                this.preClickAttrRow = row;
            },
            // å±žæ€§è¡¨æ ¼è¡Œç¼–辑失去焦点时保存方法
            updateAttrBlur(value){
                //console.log(this.attrData[0]);
            },
            // å•击表格实现表格行编辑
            clickAddSearchCondtionEdit(row, column, event){
                if(this.preClickAddSearchConditionRow && this.preClickAddSearchConditionRow != row){
                    //console.log(this.attrData[this.preClickAttrRow.$index]);
                    this.addSearchCondtionData[this.preClickAddSearchConditionRow.$index].$cellEdit = false;
                }
                row.$cellEdit = true;
                this.preClickAddSearchConditionRow = row;
            },
            //上一个页面已经选中参照应用的业务类型的情况,和上一次已经配置过参照配置的情况下进行页面初始化渲染
            initPageData(val){
                let value = JSON.parse(val);
                if(value != null || value != 'undefined' ){
                    this.form = value;
                    //console.log(val);
                    this.referTypeIsReadOnly = true;
                }
                //console.log(localStorage.getItem("userId"));
            },
            // åˆ‡æ¢å½“前活动的tabs
            handleClick(tab, event) {
                if(tab.index=='0'){
                    this.onloadAttrData(); 
                }else{
                    this.onloadselectReferConfigData();
                    //this.onloadSelectReferConfigData();
                }
            },
            // é€‰æ‹©å®Œå‚照配置之后点击保存按钮触发
@@ -839,13 +1198,11 @@
                //表单验证
                this.$refs.form.validate((valid, done, msg) => {
                    if (valid) {
                        // æ ¹æ®ç±»åž‹å¯¹form表单中的参数进行过滤,只保留非空且需要的属性
                        let submitForm = this.filterForm();
                        //console.log(submitForm);
                        //转换成JSON字符串进行父组件回显
                        let submitFormJson = JSON.stringify(submitForm);
                        //console.log(submitFormJson);
                        this.$emit('echoReferConfig', submitFormJson) // è§¦å‘update:data将子组件值传递给父组件
                        //this.isShowReferConfig = false;
                        this.$emit('echoReferConfig', submitForm) // è§¦å‘update:data将子组件值传递给父组件
                        this.isShowReferConfig = false;
                        done()
                    } else {
                        for(let attr in msg) {
@@ -857,12 +1214,40 @@
                    }
                })
            },
            //从缓存中那form表单对象
            getLocalStoregeForm(){
                localStorage.getItem("userId");
            },
            /** å…¶å®žé€‰å–属性表格的默认数据不需要加载,
             ä½†æ˜¯å¼¹çª—打开会有表格错行问题所以需要在这调用doLayout方法*/
            onloadAttrData(){
                this.$nextTick(() => {
                    this.$refs.crudAttr.doLayout()
                })
                this.attrData = [
                    {
                        field: 'id',
                        title: '编号',
                        fieldType: 'text',
                        fieldTypeText: '文本框',
                        sort: true,
                        sortField: 'id',
                        width: '150',
                        isquery: true,
                        $cellEdit: false
                    },{
                        field: 'name',
                        title: '名称',
                        fieldType: 'text',
                        fieldTypeText: '文本框',
                        sort: true,
                        sortField: 'name',
                        width: '180',
                        isquery: true,
                        $cellEdit: false
                    }
                ];
            },
            // å±žæ€§é€‰æ‹©è¡¨æ ¼ä¸­çš„移除按钮功能
            removeCurrentRow(row,condition){
@@ -875,33 +1260,25 @@
            // è¯¥ç•Œé¢çš„æ•°æ®è¿›è¡Œåˆå§‹åŒ–复原
            recoveryDataAndForm(condition){
                if(condition=='initForm'){
                    this.referTypeIsReadOnly = false;
                    let currentType = this.form.type;
                    this.form = this.$options.data().form;
                    this.form.type = currentType;
                    console.log(this.form);
                    // this.form.referContent = '';
                    // this.form.displayTable = '';
                    return;
                }
                Object.assign(this.$data,this.$options.data());         
            },
            // æ‰“开添加查询条件对话框
            openAddSearchOrAttrDialog(condition){
                if(condition=='addSearchCondition'){
                    console.log('this is open addSearchCondition');
                }else {
                    if(this.form.referType == '' || this.form.referType == null){
                        this.$message.warning("请输入参照的业务类型")
                        return;
                    }
                    console.log('this is open selectAttr');
                // ç§»é™¤ç»‘定在该页面对话框上的全局监听事件
                if(this.element != ''){
                   let te = window.removeEventListener('click', this.element)
                }
            },
            // æäº¤è¡¨å•之前过滤掉空或不需要的表单数据
            filterForm(){
                const oldForm = this.form;
                let submittDefaultForm = [
                    'referTypeName',
                    'referType',
                    'textField',
                    'valueField',
@@ -914,6 +1291,7 @@
                    'paramForFormKey',
                    'isMuti',
                    'mapFields', 
                    'searchCondition',
                ];
                let addArray = [];
                let newForm ={};
@@ -934,19 +1312,352 @@
                    ];
                }
                submittDefaultForm = submittDefaultForm.concat(addArray);
                if(!this.checkArrayIsUndefined(this.addSearchCondtionData)){
                    newForm = {
                        searchCondition: this.addSearchCondtionData,
                    }
                }
                if((oldForm.type == 'default' || oldForm.type  == 'grid') && (this.attrData.length >= 0 && !this.checkArrayIsUndefined(this.addSearchCondtionData))){
                    newForm = Object.assign(newForm,{attrData:this.attrData});
                }
                // è¿‡æ»¤å‡ºç©ºå€¼å±žæ€§å’Œä¸éœ€è¦çš„属性
                submittDefaultForm.forEach(item=>{
                    //console.log(item);
                    if(item == 'isMuti' || item == 'onlyLeaf' || oldForm[item] != '' || oldForm[item] != ''){
                    // console.log(!this.checkStringIsEmpty(oldForm[item]) || !this.checkArrayIsUndefined(oldForm[item]));
                    if((item == 'isMuti' || item == 'onlyLeaf') || (!this.checkStringIsEmpty(oldForm[item]) || !this.checkArrayIsUndefined(oldForm[item]))){
                        //console.log(item,oldForm[item]);
                      newForm = Object.assign(newForm,{[item]:oldForm[item]});  
                    }
                });
                // console.log(newForm);
                return newForm;
            },
            onloadselectReferConfigData(){
            /**
             * ä¸ºç©º
             * @param val
             * @returns {boolean}
            */
            checkStringIsEmpty(val){
                if (
                    val === null ||
                    typeof val === 'undefined' ||
                    (typeof val === 'string' && val === "" && val !== 'undefined')
                ) {
                    return true;
                }
                    return false;
            },
             /**
             * æ˜¯å¦ä¸ºå®šä¹‰
             * @param val
             * @returns {boolean}
             */
            checkArrayIsUndefined(val){
                return typeof val === 'array' && (val.length === 0 ||val === null || typeof val === 'undefined');
            },
            onloadSelectReferConfigData(){
                this.$nextTick(() => {
                    this.$refs.selectReferConfigCrud.doLayout()
                })
                this.selectReferConfigData = [{
                    field: 'id',
                    title: '编号',
                    fieldType: 'text',
                    fieldTypeText: '文本框',
                    sort: "true",
                    sortField: 'id',
                    width: '150',
                    isquery: true,
                },{
                    field: 'name',
                    title: '名称',
                    fieldType: 'text',
                    fieldTypeText: '文本框',
                    sort: "true",
                    sortField: 'name',
                    width: '180',
                    isquery: true,
                }];
            },
            // æ‰“开表格选择框
            openSelectionTable(condition){
                if (condition == 'referType'){
                    this.isShowReferBtmType = true;
                    this.referBtmTypeOnLoad();
                }else if (condition == 'sortField'){
                    this.isShowSortField = true;
                    this.sortFieldOnLoad();
                }else {
                    if(this.form.referType == '' || this.form.referType == null){
                        this.$message.warning("请输入参照的业务类型")
                        return;
                    }
                    if(condition == 'addSearchCondition'){
                        this.isShowSearchCondition = true;
                        this.selectSearchConditionDataOnload();
                    }else {
                        this.isShowShowField = true;
                        this.selectShowFieldDataOnload();
                    }
                }
            },
            // æ¸…空表格选择框
            clearSelectionTable(condition){
                if(condition == 'referType'){
                    this.form.referType = '';
                    this.form.referTypeName = '';
                }else {
                    this.form.sortField = '';
                }
            },
            // å…³é—­å¯¹è¯æ¡†æ—¶å¯¹é€‰ä¸­å†…容进行清空,并解绑全局监听事件
            clearTableRowSelection(condition){
                if(condition == 'sortField'){
                    this.sortFieldSelectRow = '';
                    this.sortFieldSelectRowData = '';
                }else if(condition == 'referType'){
                    this.referBtmTypeSelectRow='';
                    this.referBtmTypeSelectRowData = '';
                }
            },
            // ä¸ºã€å‚照的业务类型】选取值
            referBtmTypeOnLoad(page, params = {}){
                this.selectReferBtmTypeLoading = true;
                // è°ƒç”¨api请求
                const data = {
                    total: 2,
                    data: [{
                        id: 't2',
                        name: 'test2',
                        description: 'test2',
                    }, {
                        id: 't3',
                        name: 'test3',
                        description: 'test3',
                    }]
                }
                this.selectReferBtmTypeData = data.data;
                this.selectReferBtmTypePage.total = data.total;
                this.selectReferBtmTypeLoading = false;
            },
            referBtmTypeSizeChange(pageSize){
                this.selectReferBtmTypePage.pageSize = pageSize;
            },
            referBtmTypeSearchChange(params, done){
                this.referBtmTypeQuery = params;
                this.selectReferBtmTypePage.currentPage = 1;
                this.referBtmTypeOnLoad(this.page, params);
                done();
            },
            referBtmTypeSearchReset(){
                this.referBtmTypeQuery = {};
                this.referBtmTypeOnLoad(this.selectReferBtmTypePage);
            },
            referBtmTypeRowClick(row){
                this.referBtmTypeSelectRowData = row;
                this.referBtmTypeSelectRow = row.$index
                //console.log( this.referBtmTypeSelectRowData);
            },
            referBtmTypeCurrentChange(currentPage){
                this.selectReferBtmTypePage.currentPage = currentPage;
            },
            selectedReferBtmType(){
                if(!this.referBtmTypeSelectRowData) {
                    this.$message.warning("请选择一条数据");
                    return;
                }
                this.form.referTypeName = this.referBtmTypeSelectRowData.name;
                this.form.referType = this.referBtmTypeSelectRowData.id;
                this.isShowReferBtmType = false;
            },
            // ä¸ºã€æŽ’序字段】选取值
            sortFieldOnLoad(page, params = {}){
                this.selectSortFieldLoading = true;
                // è°ƒç”¨api请求
                const data = {
                    total: 2,
                    data: [{
                        id: 'test',
                        name: '测试',
                        attrLength: 11,
                        attrType: '字符串'
                    }, {
                        id: 'test1',
                        name: '测试1',
                        attrLength: 12,
                        attrType: '数字'
                    }]
                }
                this.selectSortFieldData = data.data;
                this.selectSortFieldPage.total = data.total;
                this.selectSortFieldLoading = false;
            },
            sortFieldSizeChange(pageSize){
                this.selectSortFieldPage.pageSize = pageSize;
            },
            sortFieldSearchChange(params, done){
                this.sortFieldQuery = params;
                this.selectSortFieldPage.currentPage = 1;
                this.sortFieldOnLoad(this.page, params);
                done();
            },
            sortFieldSearchReset(){
                this.sortFieldQuery = {};
                this.sortFieldOnLoad(this.selectSortFieldPage);
            },
            sortFieldRowClick(row){
                this.sortFieldSelectRowData = row;
                this.sortFieldSelectRow = row.$index
                //console.log( this.sortFieldSelectRowData);
            },
            sortFieldCurrentChange(currentPage){
                this.selectReferBtmTypePage.currentPage = currentPage;
            },
            selectedSortField(){
                if(!this.sortFieldSelectRowData) {
                    this.$message.warning("请选择一条数据");
                    return;
                }
                this.form.sortField = this.sortFieldSelectRowData.id;
                this.isShowSortField = false;
            },
            // é€‰æ‹©æ˜¾ç¤ºå­—段
            selectShowFieldDataOnload(params = {}){
                this.selectShowFieldLoading = true;
                // è°ƒç”¨api请求
                const data = {
                    total: 2,
                    data: [{
                        id: 'test',
                        name: '测试',
                        attrLength: 11,
                        attrType: 'text',
                        attrTypeText: '文本框'
                    }, {
                        id: 'test1',
                        name: '测试1',
                        attrLength: 12,
                        attrType: 'number',
                        attrTypeText: '数字'
                    }, {
                        id: 'test2',
                        name: '测试2',
                        attrLength: 13,
                        attrType: 'date',
                        attrTypeText: '日期'
                    }]
                }
                this.selectShowFieldData = data.data;
                this.selectShowFieldLoading = false;
            },
            selectionShowFieldDataChange(list){
                this.showFieldSelectList = list;
                this.$refs.selectShowFieldCrud.setCurrentRow(this.showFieldSelectList[list.length-1]);
            },
            showFieldRowClick(row){
                //this.showFieldSelectList.push(row);
                this.$refs.selectShowFieldCrud.setCurrentRow(row);
                this.$refs.selectShowFieldCrud.toggleRowSelection(row); //选中当前行
            },
            showFieldSearchChange(params, done){
                this.showFieldQuery = params;
                this.selectShowFieldDataOnload(params);
                done();
            },
            showFieldSearchReset(){
                this.showFieldQuery = {};
                this.sortFieldOnLoad();
            },
            selectedShowField(){
                //console.log(this.showFieldSelectList);
                if(this.showFieldSelectList.length <= 0) {
                    this.$message.warning("请至少选择一条数据");
                    return;
                }
                //this.showFieldSelectList;
                this.showFieldSelectList.forEach(item => {
                    this.attrData.push(
                        {
                            field: item.id,
                            title: item.id,
                            fieldType: item.attrType,
                            fieldTypeText: item.attrTypeText,
                            sort: false,
                            sortField: item.id,
                            width: item.attrLength,
                            isquery: false,
                            $cellEdit: false
                        }
                    )
                })
                this.isShowShowField = false;
            },
            // é€‰æ‹©æŸ¥è¯¢æ¡ä»¶
            selectSearchConditionDataOnload(params = {}){
                this.selectSearchConditionLoading = true;
                // è°ƒç”¨api请求
                this.selectSearchConditionData = [{
                        id: 'test',
                        name: '测试',
                        attrLength: 11,
                        attrType: '字符串',
                        $cellEdit: false,
                    }, {
                        id: 'test1',
                        name: '测试1',
                        attrLength: 12,
                        attrType: '数字',
                        $cellEdit: false,
                    }, {
                        id: 'test2',
                        name: '测试2',
                        attrLength: 13,
                        attrType: '日期',
                        $cellEdit: false,
                }];
                this.selectSearchConditionLoading = false;
            },
            searchConditionRowClick(row){
                this.$refs.selectSearchConditionCrud.setCurrentRow(row);
                this.$refs.selectSearchConditionCrud.toggleRowSelection(row); //选中当前行
            },
            searchConditionDataChange(list){
                this.searchConditionSelectList = list;
                this.$refs.selectSearchConditionCrud.setCurrentRow(this.searchConditionSelectList[list.length-1]);
            },
            searchConditionSearchChange(params, done){
                this.searchConditionQuery = params;
                this.selectSearchConditionDataOnload(params);
                done();
            },
            searchConditionSearchReset(){
                this.searchConditionQuery = {};
                this.sortFieldOnLoad();
            },
            selectedSearchCondition(){
                console.log(this.searchConditionSelectList);
                if(this.searchConditionSelectList.length <= 0) {
                    this.$message.warning("请至少选择一条数据");
                    return;
                }
                this.searchConditionSelectList.forEach(item => {
                    this.addSearchCondtionData.push(
                        {
                            filterField: item.id,
                            filterType: '=',
                            filterValue: '',
                            $cellEdit: false
                        }
                    )
                })
                this.isShowSearchCondition = false;
            },
            
        }
@@ -955,6 +1666,10 @@
<style>
    .referBtmType-crud > .el-card > .el-card__body > .avue-crud__menu {
        display: none!important;
    }
    /* æç¤ºæ–‡æœ¬å‡ºçŽ°çš„é€Ÿåº¦ */
    .el-tooltip__popper{
        width: 200px !important;
Source/UBCS-WEB/src/components/code-dialog-page/tableEdit.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
<template>
    <div>
      <el-table :data="tableOptions.tableData" @cell-click="cellCilck" @cell-mouse-leave="cellMouseLeave" height="250" border style="width: 100%">
        <el-table-column v-for="(item,index) in tableOptions.options" :key="index" align="center"
          :prop="item.prop" :label="item.label" :width="item.labelWidth">
          <template slot-scope="{row}">
            <!-- è‡ªå®šä¹‰çš„字段 -->
            <div v-if="item.isSlot">
              <slot :name="item.prop" :row="row"></slot>
            </div>
            <div v-else>
              <el-input v-if="row.isClickProperty == item.prop" v-model="row[item.prop]" placeholder="请输入内容" @change="valChange"></el-input>
              <span v-else>{{row[item.prop]}}</span>
            </div>
          </template>
          <!-- è¡¨æ ¼å†…操作按钮 -->
          <template slot="menu" slot-scope="{scope}">
              <el-button type="text"
                  size="small"
                  icon="el-icon-search"
                  plain
                  @click="scope.row.isquery=!scope.row.isquery">
                  {{scope.row.isquery ? "取消快速查询":"快速查询"}}
              </el-button>
              <el-button type="text"
                  size="small"
                  icon="el-icon-minus"
                  plain
                  @click="removeCurrentRow(scope.row,'removeAttr')">移除
              </el-button>
          </template>
          <!-- è¡¨æ ¼å·¦ä¸Šæ–¹æŒ‰é’®åŒºåŸŸ -->
          <template slot="menuLeft" slot-scope="scope">
              <el-button type="primary"
                  size="small"
                  icon="el-icon-plus"
                  @click="openSelectionTable('selectAttr')">选择属性
              </el-button>
              <div class="tag-group" style="display: inline">
                  <el-tag
                      v-for="item in attrData"
                      v-show="item.isquery && item.title!=''"
                      style="margin-left: 3px"
                      :key="item.title"
                      type="info"
                      size="small"
                      effect="dark">
                      {{ item.title }}
                  </el-tag>
              </div>
          </template>
        </el-table-column>
      </el-table>
    </div>
  </template>
  <script>
  export default {
    name: "tableEdit",
    props:{
      tableOptions:{
        type:Object,
        default(){
          return {}
        }
      }
    },
    data(){
      return{}
    },
    methods:{
      //单击单元格开启编辑
      cellCilck(row, column, cell, event){
        this.$set(row, "isClickProperty", column.property);
        console.log(row,column,cell,event);
      },
      //鼠标离开单元格,编辑关闭
      cellMouseLeave(row){
        this.$set(row, "isClickProperty", "");
      },
      //编辑单元格值变化
      valChange(val){
        this.$emit("editTable",val)
      }
    }
  }
  </script>
Source/UBCS-WEB/src/main.js
@@ -35,9 +35,11 @@
import classifyTrees from "@/components/Tree/classifyTrees"
import classifyTreeform from "@/components/Tree/classifyTreeform"
import TemplatePro from "@/components/Tree/TemplatePro"
import attrCrud from "@/components/Tree/attrCrud"
import formulaEditor from "@/components/code-dialog-page/formulaEditor"
import referConfigDialog from "@/components/code-dialog-page/referConfigDialog"
import businessAdd from "@/views/modeling/BusinessAdd"
import tableEdit from "@/components/code-dialog-page/tableEdit"
// æ³¨å†Œå…¨å±€crud驱动
window.$crudCommon = crudCommon;
@@ -47,6 +49,7 @@
Vue.use(Element, {
  i18n: (key, value) => i18n.t(key, value)
});
Vue.use(window.AVUE, {
  size: 'small',
  tableSize: 'small',
@@ -73,6 +76,10 @@
Vue.component('formulaEditor',formulaEditor)
Vue.component('referConfigDialog',referConfigDialog)
Vue.component('businessAdd',businessAdd)
Vue.component('attrCrud',attrCrud)
Vue.component('tableEdit',tableEdit)
// åŠ è½½ç›¸å…³url地址
Object.keys(urls).forEach(key => {
Source/UBCS-WEB/src/page/login/userlogin.vue
@@ -271,6 +271,7 @@
            //把判断密码策略修改的值存进本地,然后再路由权限js文件里面获取再做判断,不然刷新会进入首页(因为在有id和token的情况下,刷新页面或者进入登录页会自动进入首页)
            //index页面也可以用到这个值来判断是否是超管身份登录来判断是否提醒过期时间等
            localStorage.setItem("updataid",JSON.stringify(this.userInfo))
            localStorage.setItem("userId",this.userInfo.user_id)
            loading.close();
          }).catch(() => {
            loading.close();
Source/UBCS-WEB/src/template/templateAttr.js
@@ -68,6 +68,7 @@
//主键获取分类模板属性
export const  gridCodeClassifyTemplate = (oid) =>{
  console.log(oid);
  return request({
    url:'/api/ubcs-code/codeClassifyTemplateController/gridCodeClassifyTemplate',
    method: 'get',
Source/UBCS-WEB/src/views/code/code.vue
@@ -1,5 +1,5 @@
<template>
  <basic-container style="height: 350px;">
  <basic-container style="height: 100%;">
    <!-- ç¼–码规则信息展示区域 -->
    <basic-container class="code-rule-container">
@@ -149,8 +149,8 @@
        </el-row>
      </div>
      <div slot="footer" class="dialog-footer" style="height: 50px; margin-top: -4vh;">
        <el-button @click="cloneSettingBox = false">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="saveCloneCodeRule">保 å­˜</el-button>
        <el-button @click="cloneSettingBox = false">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
    <!-- ç¼–码规则,从其他规则克隆对话框 -->
@@ -190,8 +190,8 @@
        </el-row>
      </div>
      <div slot="footer" class="dialog-footer" style="height: 50px; margin-top: -4vh;">
        <el-button @click="cloneOtherCodeRuleSettingBox = false">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="saveOtherCodeBasic">保 å­˜</el-button>
        <el-button @click="cloneOtherCodeRuleSettingBox = false">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
@@ -647,8 +647,8 @@
      <!-- ç¬¬ä¸€å±‚对话框的按钮和,线条 -->
      <el-divider class="horizontal-line" direction="horizontal"></el-divider>
      <div slot="footer" class="dialog-footer">
        <el-button @click="addBasicCodeSettingBox = false" v-show="showbtn">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="saveOrEditBasicCode" v-show="showbtn">保 å­˜</el-button>
        <el-button @click="addBasicCodeSettingBox = false" v-show="showbtn">取 æ¶ˆ</el-button>
      </div>
      <!--  ç¬¬äºŒå±‚对话框,属性码段,属性选择对话框 -->
@@ -691,8 +691,8 @@
          </el-row>
        </div>
        <div slot="footer" class="dialog-footer">
          <el-button @click="isShowSelectAttrOption = false">取 æ¶ˆ</el-button>
          <el-button type="primary" @click="selectedListClassifyLinkAttr">ç¡® å®š</el-button>
          <el-button @click="isShowSelectAttrOption = false">取 æ¶ˆ</el-button>
        </div>
      </el-dialog>
@@ -726,8 +726,8 @@
          @on-load="parentClassifyOnLoad">
        </avue-crud>
        <div slot="footer" class="dialog-footer">
          <el-button @click="isShowParentClassifyOption = false">取 æ¶ˆ</el-button>
          <el-button type="primary" @click="saveSelectedParentClassify">保 å­˜</el-button>
          <el-button @click="isShowParentClassifyOption = false">取 æ¶ˆ</el-button>
        </div>
      </el-dialog>
@@ -752,8 +752,8 @@
          @row-click="referBtmRowClick">
        </avue-crud>
        <div slot="footer" class="dialog-footer">
          <el-button @click="isShowSelectReferBtmOption = false">取 æ¶ˆ</el-button>
          <el-button type="primary" @click="saveSelectedreferBtm">保 å­˜</el-button>
          <el-button @click="isShowSelectReferBtmOption = false">取 æ¶ˆ</el-button>
        </div>
      </el-dialog>
@@ -796,7 +796,7 @@
  import referBtmOption from "@/const/code/referBtmDialog";
  import fixedValueOption from "@/const/code/fixedValueMgrDialog";
  import {mapGetters} from "vuex";
  import func from "@/util/func";
  export default {
      data() {
        return {
@@ -1117,7 +1117,12 @@
        /* å¼•用码段参照配置,子组件填完参照配置之后内容回显时调用 */
        echoReferConfig(content){
          this.form.referConfig = content;
          this.form.referBtmId = content.referType;
          this.form.referBtmName = content.referTypeName;
          //console.log(content);
          //转换成JSON字符串进行父组件回显
          let submitFormJson = JSON.stringify(content);
          this.form.referConfig = submitFormJson;
        },
        
        /** ä¸ºå‚照引用的业务类型选取值,第二层嵌套对话框,及其相关方法  */
@@ -2074,6 +2079,7 @@
        },
        // å•击编码规则实现行选择
        codeRuleRowClick (row) {
          // è¿™å„¿åº”该可以不要,因为toggleRowSelection也会触发行选择时间
          this.selectionList = row;
          this.$refs.crud.toggleSelection();
          this.$refs.crud.setCurrentRow(row);
@@ -2380,6 +2386,9 @@
            this.refreshReferBtmDataChange();
          }else if(condition === 'referConfig'){
            this.$refs.referConfigDialog.isShowReferConfig = true;
            if(func.notEmpty(this.form.referConfig)){
               this.$refs.referConfigDialog.initPageData(this.form.referConfig);
            }
            //表格错行的问题所
            this.$refs.referConfigDialog.onloadAttrData();
          }
@@ -2397,6 +2406,7 @@
            this.form.parentClassifySecOid = '';
          }else if(condition === 'referBtmId'){
            this.form.referBtmId = '';
            this.form.referConfig = '';
          }else if(condition === 'referConfig'){
            this.form.referConfig = '';
          }
@@ -2663,14 +2673,14 @@
  .add-basicsec-form > .el-divider--vertical {
    width: 2px;
    height: 72%;
    height: 100%;
    margin: 0 auto;
    position: fixed;
    /* position: fixed; */
  }
 .left {
    /* float: left; */
    width: 49%;
    width: 45%;
    height: 100%;
 }
Source/UBCS/.gitignore
@@ -25,3 +25,5 @@
*.war
*.ear
/target
/ubcs-common/src/main/java/com/vci/ubcs/common/constant/LauncherConstant.java
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 = "127.0.0.1:8848";
    String NACOS_DEV_ADDR = "localhost:8848";
    /**
     * nacos prod åœ°å€
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodePhaseAttr.java
@@ -35,6 +35,10 @@
@EqualsAndHashCode(callSuper = true)
public class CodePhaseAttr extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 4585738864127061777L;
    /**
     *
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeReferConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®æ“ä½œå±‚
 *
 * @author ludc
 * @date 2023/5/19 17:24
 */
@Data
@TableName("PL_CODE_REFERCONFIG")
@ApiModel(value = "CodeReferConfig对象", description = "编码规则管理-引用码段-参照配置")
public class CodeReferConfig extends BaseModel {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 957685333614390234L;
    /**
     * å‚照的业务类型
     */
    private String referType;
    /**
     * æ˜¾ç¤ºçš„属性
     */
    private String textField;
    /**
     * å­˜å‚¨å€¼çš„属性
     */
    private String valueField;
    /**
     * å‚照窗口类型
     */
    private String type;
    /**
     * è‡ªå®šä¹‰çš„后台路径
     */
    private String url;
    /**
     * æœåŠ¡çš„åœ°å€
     */
    private String backPath;
    /**
     * è¯·æ±‚后台的协议方式
     */
    private String method;
    /**
     * çª—口显示的高度
     */
    private Long height;
    /**
     * è¿‡æ»¤å±žæ€§è¯·æ±‚参数
     */
    private String paramForFormKey;
    /**
     * æ˜¯å¦å¤šé€‰
     */
    private String isMuti;
    /**
     * æ˜ å°„其他属性
     */
    private String mapFields;
    /**
     * å‚考的UI上下文
     */
    private String referContent;
    /**
     * å¹³å°çš„表格编号
     */
    private String displayTable;
    /**
     * æ¯é¡µæ˜¾ç¤ºæ¡æ•°
     */
    private String limit;
    /**
     * æŽ’序字段
     */
    private String sortField;
    /**
     * æŽ’序类型
     */
    private String sortType;
    /**
     * æ ‘形的上级属性
     */
    private String parentFieldName;
    /**
     * ä¸Šçº§å±žæ€§å€¼å¯¹åº”属性
     */
    private String parentUsedField;
    /**
     * æ ¹èŠ‚ç‚¹çš„å€¼
     */
    private String parentValue;
    /**
     * æ ‘加载方式
     */
    private String loadType;
    /**
     * æ˜¯å¦åªèƒ½é€‰æ‹©å¶å­èŠ‚ç‚¹
     */
    private String onlyLeaf;
    /**
     * æŽ’序
     */
    private Integer orderNum;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeShowFieldConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * ç¼–码规则管理-引用码段-参照配置-显示属性配置
 *
 * @author ludc
 * @date 2023/5/19 17:35
 */
@Data
@TableName("PL_CODE_SHOWFIELDCONFIG")
@ApiModel(value = "CodeShowFieldConfig对象", description = "编码规则管理-引用码段-参照配置-显示属性配置")
public class CodeShowFieldConfig extends BaseModel {
    private static final long serialVersionUID = -71135592796848692L;
    /**
     * åˆ—字段
     */
    private String field;
    /**
     * åˆ—名
     */
    private String title;
    /**
     * å­—段类型
     */
    private String fieldType;
    /**
     * åˆ—表可排序
     */
    private String sort;
    /**
     * æŽ’序字段
     */
    private String sortField;
    /**
     * å­—段宽度
     */
    private Long width;
    /**
     * åˆ—固定位置
     */
    private String fixedText;
    /**
     * js显示代码
     */
    private String templet;
    /**
     * æŽ’序
     */
    private Integer orderNum;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeSrchCondConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * ç¼–码规则管理-引用码段-参照配置-搜索条件配置
 *
 * @author ludc
 * @date 2023/5/19 17:36
 */
@Data
@TableName("PL_CODE_SRCHCONDCONFIG")
@ApiModel(value = "CodeSrchCondConfig对象", description = "编码规则管理-引用码段-参照配置-搜索条件配置")
public class CodeSrchCondConfig extends BaseModel {
    private static final long serialVersionUID = -51655155561881523L;
    /**
     * ç­›é€‰å­—段
     */
    private String filterField;
    /**
     * ç­›é€‰ç±»åž‹
     */
    private String filterType;
    /**
     * ç­›é€‰çš„值
     */
    private String filterValue;
    /**
     * æŽ’序
     */
    private Integer orderNum;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeReferConfigVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,129 @@
package com.vci.ubcs.code.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * ç æ®µåŸºç¡€ä¿¡æ¯æ•°æ®æ“ä½œå±‚
 *
 * @author ludc
 * @date 2023/5/19 17:24
 */
@Data
public class CodeReferConfigVO extends BaseModelVO {
    /**
     * åºåˆ—化
     */
    private static final long serialVersionUID = 957685333614390234L;
    /**
     * å‚照的业务类型
     */
    private String referType;
    /**
     * æ˜¾ç¤ºçš„属性
     */
    private String textField;
    /**
     * å­˜å‚¨å€¼çš„属性
     */
    private String valueField;
    /**
     * å‚照窗口类型
     */
    private String type;
    /**
     * è‡ªå®šä¹‰çš„后台路径
     */
    private String url;
    /**
     * æœåŠ¡çš„åœ°å€
     */
    private String backPath;
    /**
     * è¯·æ±‚后台的协议方式
     */
    private String method;
    /**
     * çª—口显示的高度
     */
    private Long height;
    /**
     * è¿‡æ»¤å±žæ€§è¯·æ±‚参数
     */
    private String paramForFormKey;
    /**
     * æ˜¯å¦å¤šé€‰
     */
    private String isMuti;
    /**
     * æ˜ å°„其他属性
     */
    private String mapFields;
    /**
     * å‚考的UI上下文
     */
    private String referContent;
    /**
     * å¹³å°çš„表格编号
     */
    private String displayTable;
    /**
     * æ¯é¡µæ˜¾ç¤ºæ¡æ•°
     */
    private String limit;
    /**
     * æŽ’序字段
     */
    private String sortField;
    /**
     * æŽ’序类型
     */
    private String sortType;
    /**
     * æ ‘形的上级属性
     */
    private String parentFieldName;
    /**
     * ä¸Šçº§å±žæ€§å€¼å¯¹åº”属性
     */
    private String parentUsedField;
    /**
     * æ ¹èŠ‚ç‚¹çš„å€¼
     */
    private String parentValue;
    /**
     * æ ‘加载方式
     */
    private String loadType;
    /**
     * æ˜¯å¦åªèƒ½é€‰æ‹©å¶å­èŠ‚ç‚¹
     */
    private String onlyLeaf;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeShowFieldConfigVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package com.vci.ubcs.code.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * ç¼–码规则管理-引用码段-参照配置-显示属性配置
 *
 * @author ludc
 * @date 2023/5/19 17:35
 */
@Data
public class CodeShowFieldConfigVO extends BaseModelVO {
    private static final long serialVersionUID = -71135592796848692L;
    /**
     * åˆ—字段
     */
    private String field;
    /**
     * åˆ—名
     */
    private String title;
    /**
     * å­—段类型
     */
    private String fieldType;
    /**
     * åˆ—表可排序
     */
    private String sort;
    /**
     * æŽ’序字段
     */
    private String sortField;
    /**
     * å­—段宽度
     */
    private Long width;
    /**
     * åˆ—固定位置
     */
    private String fixedText;
    /**
     * js显示代码
     */
    private String templet;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeSrchCondConfigVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package com.vci.ubcs.code.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * ç¼–码规则管理-引用码段-参照配置-搜索条件配置
 *
 * @author ludc
 * @date 2023/5/19 17:36
 */
@Data
public class CodeSrchCondConfigVO extends BaseModelVO {
    private static final long serialVersionUID = -51655155561881523L;
    /**
     * ç­›é€‰å­—段
     */
    private String filterField;
    /**
     * ç­›é€‰ç±»åž‹
     */
    private String filterType;
    /**
     * ç­›é€‰çš„值
     */
    private String filterValue;
}
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/WebUtil.java
@@ -6,6 +6,7 @@
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,6 +39,7 @@
     * æ˜¯å¦æŒä¹…化
     */
    private static ThreadLocal<String> needPersistenceInThread = new ThreadLocal<>();
    /**
     * æ—¥å¿—对象
     */
@@ -65,6 +67,21 @@
        } else {
            return null;
        }
    }
    /**
     * æž„建主键的查询条件
     * @param oid ä¸»é”®
     * @return æŸ¥è¯¢æ¡ä»¶
     */
    public static Map<String,String> getOidQuery(String oid) {
        Map<String,String> conditionMap = new HashMap<>();
        if(oid.contains(",")){
            conditionMap.put("oid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(VciBaseUtil.str2List(oid).toArray(new String[0])) + ")");
        }else {
            conditionMap.put("oid", oid.trim());
        }
        return conditionMap;
    }
    /**
@@ -581,7 +598,6 @@
            return false;
        }
    }
    /**
     * å°†whereSql里的内容转化到查询map里
Source/UBCS/ubcs-service/ubcs-code/pom.xml
@@ -25,11 +25,6 @@
        </dependency>
        <dependency>
            <groupId>com.vci.ubcs</groupId>
            <artifactId>ubcs-webservice</artifactId>
            <version>3.0.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.vci.ubcs</groupId>
            <artifactId>ubcs-ddl</artifactId>
            <version>3.0.1.RELEASE</version>
        </dependency>
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeReferConfigController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
package com.vci.ubcs.code.controller;
import com.vci.ubcs.code.entity.CodeReferConfig;
import com.vci.ubcs.code.service.CodeReferConfigService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
 * å‚照配置表(CodeReferConfig)表控制层
 *
 * @author ludc
 * @since 2023-05-19 17:47:49
 */
@RestController
@RequestMapping("codeReferConfig")
public class CodeReferConfigController {
    /**
     * æœåŠ¡å¯¹è±¡
     */
    @Resource
    private CodeReferConfigService plCodeReferconfigService;
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param codeReferConfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping
    public ResponseEntity<Page<CodeReferConfig>> queryByPage(CodeReferConfig codeReferConfig, PageRequest pageRequest) {
        return ResponseEntity.ok(this.plCodeReferconfigService.queryByPage(codeReferConfig, pageRequest));
    }
    /**
     * é€šè¿‡ä¸»é”®æŸ¥è¯¢å•条数据
     *
     * @param id ä¸»é”®
     * @return å•条数据
     */
    @GetMapping("{id}")
    public ResponseEntity<CodeReferConfig> queryById(@PathVariable("id") String id) {
        return ResponseEntity.ok(this.plCodeReferconfigService.queryById(id));
    }
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param codeReferConfig å®žä½“
     * @return æ–°å¢žç»“æžœ
     */
    @PostMapping
    public ResponseEntity<CodeReferConfig> add(CodeReferConfig codeReferConfig) {
        return ResponseEntity.ok(this.plCodeReferconfigService.insert(codeReferConfig));
    }
    /**
     * ç¼–辑数据
     *
     * @param codeReferConfig å®žä½“
     * @return ç¼–辑结果
     */
    @PutMapping
    public ResponseEntity<CodeReferConfig> edit(CodeReferConfig codeReferConfig) {
        return ResponseEntity.ok(this.plCodeReferconfigService.update(codeReferConfig));
    }
    /**
     * åˆ é™¤æ•°æ®
     *
     * @param id ä¸»é”®
     * @return åˆ é™¤æ˜¯å¦æˆåŠŸ
     */
    @DeleteMapping
    public ResponseEntity<Boolean> deleteById(String id) {
        return ResponseEntity.ok(this.plCodeReferconfigService.deleteById(id));
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeShowFieldConfigController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
package com.vci.ubcs.code.controller;
import com.vci.ubcs.code.entity.CodeShowFieldConfig;
import com.vci.ubcs.code.service.CodeShowFieldConfigService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
 * å¼•用码段,参照配置界面,显示的属性配置表(CodeShowFieldConfig)表控制层
 *
 * @author ludc
 * @since 2023-05-19 17:58:55
 */
@RestController
@RequestMapping("codeShowFieldConfig")
public class CodeShowFieldConfigController {
    /**
     * æœåŠ¡å¯¹è±¡
     */
    @Resource
    private CodeShowFieldConfigService codeShowFieldConfigService;
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param plCodeShowfieldconfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping
    public ResponseEntity<Page<CodeShowFieldConfig>> queryByPage(CodeShowFieldConfig plCodeShowfieldconfig, PageRequest pageRequest) {
        return ResponseEntity.ok(this.codeShowFieldConfigService.queryByPage(plCodeShowfieldconfig, pageRequest));
    }
    /**
     * é€šè¿‡ä¸»é”®æŸ¥è¯¢å•条数据
     *
     * @param id ä¸»é”®
     * @return å•条数据
     */
    @GetMapping("{id}")
    public ResponseEntity<CodeShowFieldConfig> queryById(@PathVariable("id") String id) {
        return ResponseEntity.ok(this.codeShowFieldConfigService.queryById(id));
    }
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param plCodeShowfieldconfig å®žä½“
     * @return æ–°å¢žç»“æžœ
     */
    @PostMapping
    public ResponseEntity<CodeShowFieldConfig> add(CodeShowFieldConfig plCodeShowfieldconfig) {
        return ResponseEntity.ok(this.codeShowFieldConfigService.insert(plCodeShowfieldconfig));
    }
    /**
     * ç¼–辑数据
     *
     * @param plCodeShowfieldconfig å®žä½“
     * @return ç¼–辑结果
     */
    @PutMapping
    public ResponseEntity<CodeShowFieldConfig> edit(CodeShowFieldConfig plCodeShowfieldconfig) {
        return ResponseEntity.ok(this.codeShowFieldConfigService.update(plCodeShowfieldconfig));
    }
    /**
     * åˆ é™¤æ•°æ®
     *
     * @param id ä¸»é”®
     * @return åˆ é™¤æ˜¯å¦æˆåŠŸ
     */
    @DeleteMapping
    public ResponseEntity<Boolean> deleteById(String id) {
        return ResponseEntity.ok(this.codeShowFieldConfigService.deleteById(id));
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSrchCondConfigController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
package com.vci.ubcs.code.controller;
import com.vci.ubcs.code.entity.CodeSrchCondConfig;
import com.vci.ubcs.code.service.CodeSrchCondConfigService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
 * å¼•用码段,参照配置界面,查询条件配置表(CodeSrchCondConfig)表控制层
 *
 * @author ludc
 * @since 2023-05-19 17:58:56
 */
@RestController
@RequestMapping("codeSrchCondConfig")
public class CodeSrchCondConfigController {
    /**
     * æœåŠ¡å¯¹è±¡
     */
    @Resource
    private CodeSrchCondConfigService codeSrchCondConfigService;
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param plCodeSrchcondconfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping
    public ResponseEntity<Page<CodeSrchCondConfig>> queryByPage(CodeSrchCondConfig plCodeSrchcondconfig, PageRequest pageRequest) {
        return ResponseEntity.ok(this.codeSrchCondConfigService.queryByPage(plCodeSrchcondconfig, pageRequest));
    }
    /**
     * é€šè¿‡ä¸»é”®æŸ¥è¯¢å•条数据
     *
     * @param id ä¸»é”®
     * @return å•条数据
     */
    @GetMapping("{id}")
    public ResponseEntity<CodeSrchCondConfig> queryById(@PathVariable("id") String id) {
        return ResponseEntity.ok(this.codeSrchCondConfigService.queryById(id));
    }
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param plCodeSrchcondconfig å®žä½“
     * @return æ–°å¢žç»“æžœ
     */
    @PostMapping
    public ResponseEntity<CodeSrchCondConfig> add(CodeSrchCondConfig plCodeSrchcondconfig) {
        return ResponseEntity.ok(this.codeSrchCondConfigService.insert(plCodeSrchcondconfig));
    }
    /**
     * ç¼–辑数据
     *
     * @param plCodeSrchcondconfig å®žä½“
     * @return ç¼–辑结果
     */
    @PutMapping
    public ResponseEntity<CodeSrchCondConfig> edit(CodeSrchCondConfig plCodeSrchcondconfig) {
        return ResponseEntity.ok(this.codeSrchCondConfigService.update(plCodeSrchcondconfig));
    }
    /**
     * åˆ é™¤æ•°æ®
     *
     * @param id ä¸»é”®
     * @return åˆ é™¤æ˜¯å¦æˆåŠŸ
     */
    @DeleteMapping
    public ResponseEntity<Boolean> deleteById(String id) {
        return ResponseEntity.ok(this.codeSrchCondConfigService.deleteById(id));
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeReferConfigMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
package com.vci.ubcs.code.mapper;
import com.vci.ubcs.code.entity.CodeReferConfig;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
 * å‚照配置表(CodeReferConfig)表数据库访问层
 *
 * @author makejava
 * @since 2023-05-19 17:47:51
 */
public interface CodeReferConfigMapper {
    /**
     * é€šè¿‡ID查询单条数据
     *
     * @param oid ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeReferConfig queryById(String oid);
    /**
     * æŸ¥è¯¢æŒ‡å®šè¡Œæ•°æ®
     *
     * @param plCodeReferconfig æŸ¥è¯¢æ¡ä»¶
     * @param pageable         åˆ†é¡µå¯¹è±¡
     * @return å¯¹è±¡åˆ—表
     */
    List<CodeReferConfig> queryAllByLimit(CodeReferConfig plCodeReferconfig, @Param("pageable") Pageable pageable);
    /**
     * ç»Ÿè®¡æ€»è¡Œæ•°
     *
     * @param plCodeReferconfig æŸ¥è¯¢æ¡ä»¶
     * @return æ€»è¡Œæ•°
     */
    long count(CodeReferConfig plCodeReferconfig);
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @return å½±å“è¡Œæ•°
     */
    int insert(CodeReferConfig plCodeReferconfig);
    /**
     * æ‰¹é‡æ–°å¢žæ•°æ®ï¼ˆMyBatis原生foreach方法)
     *
     * @param entities List<CodeReferConfig> å®žä¾‹å¯¹è±¡åˆ—表
     * @return å½±å“è¡Œæ•°
     */
    int insertBatch(@Param("entities") List<CodeReferConfig> entities);
    /**
     * æ‰¹é‡æ–°å¢žæˆ–按主键更新数据(MyBatis原生foreach方法)
     *
     * @param entities List<CodeReferConfig> å®žä¾‹å¯¹è±¡åˆ—表
     * @return å½±å“è¡Œæ•°
     * @throws org.springframework.jdbc.BadSqlGrammarException å…¥å‚是空List的时候会抛SQL语句错误的异常,请自行校验入参
     */
    int insertOrUpdateBatch(@Param("entities") List<CodeReferConfig> entities);
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @return å½±å“è¡Œæ•°
     */
    int update(CodeReferConfig plCodeReferconfig);
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param oid ä¸»é”®
     * @return å½±å“è¡Œæ•°
     */
    int deleteById(String oid);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeShowFieldConfigMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
package com.vci.ubcs.code.mapper;
import com.vci.ubcs.code.entity.CodeShowFieldConfig;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
 * å¼•用码段,参照配置界面,显示的属性配置表(CodeShowFieldConfig)表数据库访问层
 *
 * @author makejava
 * @since 2023-05-19 17:58:55
 */
public interface CodeShowFieldConfigMapper {
    /**
     * é€šè¿‡ID查询单条数据
     *
     * @param oid ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeShowFieldConfig queryById(String oid);
    /**
     * æŸ¥è¯¢æŒ‡å®šè¡Œæ•°æ®
     *
     * @param plCodeShowfieldconfig æŸ¥è¯¢æ¡ä»¶
     * @param pageable         åˆ†é¡µå¯¹è±¡
     * @return å¯¹è±¡åˆ—表
     */
    List<CodeShowFieldConfig> queryAllByLimit(CodeShowFieldConfig plCodeShowfieldconfig, @Param("pageable") Pageable pageable);
    /**
     * ç»Ÿè®¡æ€»è¡Œæ•°
     *
     * @param plCodeShowfieldconfig æŸ¥è¯¢æ¡ä»¶
     * @return æ€»è¡Œæ•°
     */
    long count(CodeShowFieldConfig plCodeShowfieldconfig);
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param plCodeShowfieldconfig å®žä¾‹å¯¹è±¡
     * @return å½±å“è¡Œæ•°
     */
    int insert(CodeShowFieldConfig plCodeShowfieldconfig);
    /**
     * æ‰¹é‡æ–°å¢žæ•°æ®ï¼ˆMyBatis原生foreach方法)
     *
     * @param entities List<CodeShowFieldConfig> å®žä¾‹å¯¹è±¡åˆ—表
     * @return å½±å“è¡Œæ•°
     */
    int insertBatch(@Param("entities") List<CodeShowFieldConfig> entities);
    /**
     * æ‰¹é‡æ–°å¢žæˆ–按主键更新数据(MyBatis原生foreach方法)
     *
     * @param entities List<CodeShowFieldConfig> å®žä¾‹å¯¹è±¡åˆ—表
     * @return å½±å“è¡Œæ•°
     * @throws org.springframework.jdbc.BadSqlGrammarException å…¥å‚是空List的时候会抛SQL语句错误的异常,请自行校验入参
     */
    int insertOrUpdateBatch(@Param("entities") List<CodeShowFieldConfig> entities);
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param plCodeShowfieldconfig å®žä¾‹å¯¹è±¡
     * @return å½±å“è¡Œæ•°
     */
    int update(CodeShowFieldConfig plCodeShowfieldconfig);
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param oid ä¸»é”®
     * @return å½±å“è¡Œæ•°
     */
    int deleteById(String oid);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeSrchCondConfigMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
package com.vci.ubcs.code.mapper;
import com.vci.ubcs.code.entity.CodeSrchCondConfig;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
 * å¼•用码段,参照配置界面,查询条件配置表(CodeSrchCondConfig)表数据库访问层
 *
 * @author makejava
 * @since 2023-05-19 17:58:56
 */
public interface CodeSrchCondConfigMapper {
    /**
     * é€šè¿‡ID查询单条数据
     *
     * @param oid ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeSrchCondConfig queryById(String oid);
    /**
     * æŸ¥è¯¢æŒ‡å®šè¡Œæ•°æ®
     *
     * @param plCodeSrchcondconfig æŸ¥è¯¢æ¡ä»¶
     * @param pageable         åˆ†é¡µå¯¹è±¡
     * @return å¯¹è±¡åˆ—表
     */
    List<CodeSrchCondConfig> queryAllByLimit(CodeSrchCondConfig plCodeSrchcondconfig, @Param("pageable") Pageable pageable);
    /**
     * ç»Ÿè®¡æ€»è¡Œæ•°
     *
     * @param plCodeSrchcondconfig æŸ¥è¯¢æ¡ä»¶
     * @return æ€»è¡Œæ•°
     */
    long count(CodeSrchCondConfig plCodeSrchcondconfig);
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param plCodeSrchcondconfig å®žä¾‹å¯¹è±¡
     * @return å½±å“è¡Œæ•°
     */
    int insert(CodeSrchCondConfig plCodeSrchcondconfig);
    /**
     * æ‰¹é‡æ–°å¢žæ•°æ®ï¼ˆMyBatis原生foreach方法)
     *
     * @param entities List<CodeSrchCondConfig> å®žä¾‹å¯¹è±¡åˆ—表
     * @return å½±å“è¡Œæ•°
     */
    int insertBatch(@Param("entities") List<CodeSrchCondConfig> entities);
    /**
     * æ‰¹é‡æ–°å¢žæˆ–按主键更新数据(MyBatis原生foreach方法)
     *
     * @param entities List<CodeSrchCondConfig> å®žä¾‹å¯¹è±¡åˆ—表
     * @return å½±å“è¡Œæ•°
     * @throws org.springframework.jdbc.BadSqlGrammarException å…¥å‚是空List的时候会抛SQL语句错误的异常,请自行校验入参
     */
    int insertOrUpdateBatch(@Param("entities") List<CodeSrchCondConfig> entities);
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param plCodeSrchcondconfig å®žä¾‹å¯¹è±¡
     * @return å½±å“è¡Œæ•°
     */
    int update(CodeSrchCondConfig plCodeSrchcondconfig);
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param oid ä¸»é”®
     * @return å½±å“è¡Œæ•°
     */
    int deleteById(String oid);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeReferConfigService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
package com.vci.ubcs.code.service;
import com.vci.ubcs.code.entity.CodeReferConfig;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
/**
 * å‚照配置表(CodeReferConfig)表服务接口
 *
 * @author ludc
 * @since 2023-05-19 17:47:59
 */
public interface CodeReferConfigService {
    /**
     * é€šè¿‡ID查询单条数据
     *
     * @param oid ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeReferConfig queryById(String oid);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param plCodeReferconfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    Page<CodeReferConfig> queryByPage(CodeReferConfig plCodeReferconfig, PageRequest pageRequest);
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeReferConfig insert(CodeReferConfig plCodeReferconfig);
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeReferConfig update(CodeReferConfig plCodeReferconfig);
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param oid ä¸»é”®
     * @return æ˜¯å¦æˆåŠŸ
     */
    boolean deleteById(String oid);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeShowFieldConfigService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
package com.vci.ubcs.code.service;
import com.vci.ubcs.code.entity.CodeShowFieldConfig;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
/**
 * å¼•用码段,参照配置界面,显示的属性配置表(CodeShowFieldConfig)表服务接口
 *
 * @author ludc
 * @since 2023-05-19 17:58:56
 */
public interface CodeShowFieldConfigService {
    /**
     * é€šè¿‡ID查询单条数据
     *
     * @param oid ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeShowFieldConfig queryById(String oid);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param codeShowFieldConfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    Page<CodeShowFieldConfig> queryByPage(CodeShowFieldConfig codeShowFieldConfig, PageRequest pageRequest);
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param codeShowFieldConfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeShowFieldConfig insert(CodeShowFieldConfig codeShowFieldConfig);
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param codeShowFieldConfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeShowFieldConfig update(CodeShowFieldConfig codeShowFieldConfig);
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param oid ä¸»é”®
     * @return æ˜¯å¦æˆåŠŸ
     */
    boolean deleteById(String oid);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/CodeSrchCondConfigService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
package com.vci.ubcs.code.service;
import com.vci.ubcs.code.entity.CodeSrchCondConfig;
import com.vci.ubcs.code.entity.CodeSrchCondConfig;
import com.vci.ubcs.code.service.impl.CodeSrchCondConfigServiceImpl;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
/**
 * å¼•用码段,参照配置界面,查询条件配置表(CodeSrchCondConfig)表服务接口
 *
 * @author ludc
 * @since 2023-05-19 17:58:56
 */
public interface CodeSrchCondConfigService {
    /**
     * é€šè¿‡ID查询单条数据
     *
     * @param oid ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeSrchCondConfig queryById(String oid);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param codeSrchCondConfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    Page<CodeSrchCondConfig> queryByPage(CodeSrchCondConfig codeSrchCondConfig, PageRequest pageRequest);
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param codeSrchCondConfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeSrchCondConfig insert(CodeSrchCondConfig codeSrchCondConfig);
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param codeSrchCondConfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    CodeSrchCondConfig update(CodeSrchCondConfig codeSrchCondConfig);
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param oid ä¸»é”®
     * @return æ˜¯å¦æˆåŠŸ
     */
    boolean deleteById(String oid);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -44,7 +44,8 @@
import org.apache.poi.hssf.util.HSSFColor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.cache.utils.CacheUtil;import com.vci.ubcs.core.log.exception.ServiceException;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
package com.vci.ubcs.code.service.impl;
import com.vci.ubcs.code.entity.CodeReferConfig;
import com.vci.ubcs.code.mapper.CodeReferConfigMapper;
import com.vci.ubcs.code.service.CodeReferConfigService;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
/**
 * å‚照配置表(CodeReferconfig)表服务实现类
 *
 * @author ludc
 * @since 2023-05-19 17:48:02
 */
@Service("CodeReferconfigService")
public class CodeReferConfigServiceImpl implements CodeReferConfigService {
    @Resource
    private CodeReferConfigMapper codeReferconfigMapper;
    /**
     * é€šè¿‡ID查询单条数据
     *
     * @param oid ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeReferConfig queryById(String oid) {
        return this.codeReferconfigMapper.queryById(oid);
    }
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param plCodeReferconfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public Page<CodeReferConfig> queryByPage(CodeReferConfig plCodeReferconfig, PageRequest pageRequest) {
        long total = this.codeReferconfigMapper.count(plCodeReferconfig);
        return new PageImpl<>(this.codeReferconfigMapper.queryAllByLimit(plCodeReferconfig, pageRequest), pageRequest, total);
    }
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeReferConfig insert(CodeReferConfig plCodeReferconfig) {
        this.codeReferconfigMapper.insert(plCodeReferconfig);
        return plCodeReferconfig;
    }
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param plCodeReferconfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeReferConfig update(CodeReferConfig plCodeReferconfig) {
        this.codeReferconfigMapper.update(plCodeReferconfig);
        return this.queryById(plCodeReferconfig.getOid());
    }
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param oid ä¸»é”®
     * @return æ˜¯å¦æˆåŠŸ
     */
    @Override
    public boolean deleteById(String oid) {
        return this.codeReferconfigMapper.deleteById(oid) > 0;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeShowFieldConfigServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
package com.vci.ubcs.code.service.impl;
import com.vci.ubcs.code.entity.CodeShowFieldConfig;
import com.vci.ubcs.code.mapper.CodeShowFieldConfigMapper;
import com.vci.ubcs.code.service.CodeShowFieldConfigService;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
/**
 * å¼•用码段,参照配置界面,显示的属性配置表(CodeShowFieldConfigService)表服务实现类
 *
 * @author ludc
 * @since 2023-05-19 17:58:56
 */
@Service("CodeShowFieldConfigService")
public class CodeShowFieldConfigServiceImpl implements CodeShowFieldConfigService {
    @Resource
    private CodeShowFieldConfigMapper codeShowFieldConfigMapper;
    /**
     * é€šè¿‡ID查询单条数据
     *
     * @param oid ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeShowFieldConfig queryById(String oid) {
        return this.codeShowFieldConfigMapper.queryById(oid);
    }
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param codeShowFieldConfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public Page<CodeShowFieldConfig> queryByPage(CodeShowFieldConfig codeShowFieldConfig, PageRequest pageRequest) {
        long total = this.codeShowFieldConfigMapper.count(codeShowFieldConfig);
        return new PageImpl<>(this.codeShowFieldConfigMapper.queryAllByLimit(codeShowFieldConfig, pageRequest), pageRequest, total);
    }
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param codeShowFieldConfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeShowFieldConfig insert(CodeShowFieldConfig codeShowFieldConfig) {
        this.codeShowFieldConfigMapper.insert(codeShowFieldConfig);
        return codeShowFieldConfig;
    }
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param codeShowFieldConfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeShowFieldConfig update(CodeShowFieldConfig codeShowFieldConfig) {
        this.codeShowFieldConfigMapper.update(codeShowFieldConfig);
        return this.queryById(codeShowFieldConfig.getOid());
    }
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param oid ä¸»é”®
     * @return æ˜¯å¦æˆåŠŸ
     */
    @Override
    public boolean deleteById(String oid) {
        return this.codeShowFieldConfigMapper.deleteById(oid) > 0;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeSrchCondConfigServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
package com.vci.ubcs.code.service.impl;
import com.vci.ubcs.code.entity.CodeSrchCondConfig;
import com.vci.ubcs.code.mapper.CodeSrchCondConfigMapper;
import com.vci.ubcs.code.service.CodeSrchCondConfigService;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
/**
 * å¼•用码段,参照配置界面,查询条件配置表(CodeSrchCondConfigService)表服务实现类
 *
 * @author ludc
 * @since 2023-05-19 17:58:56
 */
@Service("CodeSrchCondConfigService")
public class CodeSrchCondConfigServiceImpl implements CodeSrchCondConfigService {
    @Resource
    private CodeSrchCondConfigMapper codeSrchcondconfigMapper;
    /**
     * é€šè¿‡ID查询单条数据
     *    codeSrchcondconfig
     * @param oid ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeSrchCondConfig queryById(String oid) {
        return this.codeSrchcondconfigMapper.queryById(oid);
    }
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param codeSrchcondconfig ç­›é€‰æ¡ä»¶
     * @param pageRequest      åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public Page<CodeSrchCondConfig> queryByPage(CodeSrchCondConfig codeSrchcondconfig, PageRequest pageRequest) {
        long total = this.codeSrchcondconfigMapper.count(codeSrchcondconfig);
        return new PageImpl<>(this.codeSrchcondconfigMapper.queryAllByLimit(codeSrchcondconfig, pageRequest), pageRequest, total);
    }
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param codeSrchcondconfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeSrchCondConfig insert(CodeSrchCondConfig codeSrchcondconfig) {
        this.codeSrchcondconfigMapper.insert(codeSrchcondconfig);
        return codeSrchcondconfig;
    }
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param codeSrchcondconfig å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public CodeSrchCondConfig update(CodeSrchCondConfig codeSrchcondconfig) {
        this.codeSrchcondconfigMapper.update(codeSrchcondconfig);
        return this.queryById(codeSrchcondconfig.getOid());
    }
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param oid ä¸»é”®
     * @return æ˜¯å¦æˆåŠŸ
     */
    @Override
    public boolean deleteById(String oid) {
        return this.codeSrchcondconfigMapper.deleteById(oid) > 0;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeReferConfigMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,540 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vci.ubcs.code.mapper.CodeReferConfigMapper">
    <resultMap type="com.vci.ubcs.code.entity.CodeReferConfig" id="CodeReferconfigMap">
        <result property="oid" column="OID" jdbcType="VARCHAR"/>
        <result property="revisionOid" column="REVISIONOID" jdbcType="VARCHAR"/>
        <result property="nameOid" column="NAMEOID" jdbcType="VARCHAR"/>
        <result property="btmname" column="BTMNAME" jdbcType="VARCHAR"/>
        <result property="lastR" column="LASTR" jdbcType="VARCHAR"/>
        <result property="firstR" column="FIRSTR" jdbcType="VARCHAR"/>
        <result property="lastV" column="LASTV" jdbcType="VARCHAR"/>
        <result property="firstV" column="FIRSTV" jdbcType="VARCHAR"/>
        <result property="creator" column="CREATOR" jdbcType="VARCHAR"/>
        <result property="createTime" column="CREATETIME" jdbcType="VARCHAR"/>
        <result property="revisionSeq" column="REVISIONSEQ" jdbcType="INTEGER"/>
        <result property="revisionValue" column="REVISIONVALUE" jdbcType="VARCHAR"/>
        <result property="versionSeq" column="VERSIONSEQ" jdbcType="INTEGER"/>
        <result property="versionValue" column="VERSIONVALUE" jdbcType="VARCHAR"/>
        <result property="lctid" column="LCTID" jdbcType="VARCHAR"/>
        <result property="lcStatus" column="LCSTATUS" jdbcType="VARCHAR"/>
        <result property="ts" column="TS" jdbcType="VARCHAR"/>
        <result property="name" column="NAME" jdbcType="VARCHAR"/>
        <result property="description" column="DESCRIPTION" jdbcType="VARCHAR"/>
        <result property="owner" column="OWNER" jdbcType="VARCHAR"/>
        <result property="copyFromVersion" column="COPYFROMVERSION" jdbcType="VARCHAR"/>
        <result property="orderNum" column="ORDERNUM" jdbcType="INTEGER"/>
        <result property="referType" column="REFERTYPE" jdbcType="VARCHAR"/>
        <result property="textField" column="TEXTFIELD" jdbcType="VARCHAR"/>
        <result property="valueField" column="VALUEFIELD" jdbcType="VARCHAR"/>
        <result property="type" column="TYPE" jdbcType="VARCHAR"/>
        <result property="url" column="URL" jdbcType="VARCHAR"/>
        <result property="backPath" column="BACKPATH" jdbcType="VARCHAR"/>
        <result property="method" column="METHOD" jdbcType="VARCHAR"/>
        <result property="height" column="HEIGHT" jdbcType="INTEGER"/>
        <result property="paramForFormKey" column="PARAMFORFORMKEY" jdbcType="VARCHAR"/>
        <result property="isMuti" column="ISMUTI" jdbcType="VARCHAR"/>
        <result property="mapFields" column="MAPFIELDS" jdbcType="VARCHAR"/>
        <result property="referContent" column="REFERCONTENT" jdbcType="VARCHAR"/>
        <result property="displayTable" column="DISPLAYTABLE" jdbcType="VARCHAR"/>
        <result property="limit" column="LIMIT" jdbcType="VARCHAR"/>
        <result property="sortField" column="SORTFIELD" jdbcType="VARCHAR"/>
        <result property="sortType" column="SORTTYPE" jdbcType="VARCHAR"/>
        <result property="parentFieldName" column="PARENTFIELDNAME" jdbcType="VARCHAR"/>
        <result property="parentUsedField" column="PARENTUSEDFIELD" jdbcType="VARCHAR"/>
        <result property="parentValue" column="PARENTVALUE" jdbcType="VARCHAR"/>
        <result property="loadType" column="LOADTYPE" jdbcType="VARCHAR"/>
        <result property="onlyLeaf" column="ONLYLEAF" jdbcType="VARCHAR"/>
    </resultMap>
    <!--查询单个-->
    <select id="queryById" resultMap="CodeReferconfigMap">
        select
          OID, REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, REFERTYPE, TEXTFIELD, VALUEFIELD, TYPE, URL, BACKPATH, METHOD, HEIGHT, PARAMFORFORMKEY, ISMUTI, MAPFIELDS, REFERCONTENT, DISPLAYTABLE, LIMIT, SORTFIELD, SORTTYPE, PARENTFIELDNAME, PARENTUSEDFIELD, PARENTVALUE, LOADTYPE, ONLYLEAF
        from PL_CODE_REFERCONFIG
        where OID = #{oid}
    </select>
    <!--查询指定行数据-->
    <select id="queryAllByLimit" resultMap="CodeReferconfigMap">
        select
          OID, REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, REFERTYPE, TEXTFIELD, VALUEFIELD, TYPE, URL, BACKPATH, METHOD, HEIGHT, PARAMFORFORMKEY, ISMUTI, MAPFIELDS, REFERCONTENT, DISPLAYTABLE, LIMIT, SORTFIELD, SORTTYPE, PARENTFIELDNAME, PARENTUSEDFIELD, PARENTVALUE, LOADTYPE, ONLYLEAF
        from PL_CODE_REFERCONFIG
        <where>
            <if test="oid != null and oid != ''">
                and OID = #{oid}
            </if>
            <if test="revisionoid != null and revisionoid != ''">
                and REVISIONOID = #{revisionoid}
            </if>
            <if test="nameoid != null and nameoid != ''">
                and NAMEOID = #{nameoid}
            </if>
            <if test="btmname != null and btmname != ''">
                and BTMNAME = #{btmname}
            </if>
            <if test="lastr != null and lastr != ''">
                and LASTR = #{lastr}
            </if>
            <if test="firstr != null and firstr != ''">
                and FIRSTR = #{firstr}
            </if>
            <if test="lastv != null and lastv != ''">
                and LASTV = #{lastv}
            </if>
            <if test="firstv != null and firstv != ''">
                and FIRSTV = #{firstv}
            </if>
            <if test="creator != null and creator != ''">
                and CREATOR = #{creator}
            </if>
            <if test="createtime != null and createtime != ''">
                and CREATETIME = #{createtime}
            </if>
            <if test="revisionseq != null">
                and REVISIONSEQ = #{revisionseq}
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                and REVISIONVALUE = #{revisionvalue}
            </if>
            <if test="versionseq != null">
                and VERSIONSEQ = #{versionseq}
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                and VERSIONVALUE = #{versionvalue}
            </if>
            <if test="lctid != null and lctid != ''">
                and LCTID = #{lctid}
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                and LCSTATUS = #{lcstatus}
            </if>
            <if test="ts != null and ts != ''">
                and TS = #{ts}
            </if>
            <if test="name != null and name != ''">
                and NAME = #{name}
            </if>
            <if test="description != null and description != ''">
                and DESCRIPTION = #{description}
            </if>
            <if test="owner != null and owner != ''">
                and OWNER = #{owner}
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                and COPYFROMVERSION = #{copyfromversion}
            </if>
            <if test="ordernum != null">
                and ORDERNUM = #{ordernum}
            </if>
            <if test="refertype != null and refertype != ''">
                and REFERTYPE = #{refertype}
            </if>
            <if test="textfield != null and textfield != ''">
                and TEXTFIELD = #{textfield}
            </if>
            <if test="valuefield != null and valuefield != ''">
                and VALUEFIELD = #{valuefield}
            </if>
            <if test="type != null and type != ''">
                and TYPE = #{type}
            </if>
            <if test="url != null and url != ''">
                and URL = #{url}
            </if>
            <if test="backpath != null and backpath != ''">
                and BACKPATH = #{backpath}
            </if>
            <if test="method != null and method != ''">
                and METHOD = #{method}
            </if>
            <if test="height != null">
                and HEIGHT = #{height}
            </if>
            <if test="paramforformkey != null and paramforformkey != ''">
                and PARAMFORFORMKEY = #{paramforformkey}
            </if>
            <if test="ismuti != null and ismuti != ''">
                and ISMUTI = #{ismuti}
            </if>
            <if test="mapfields != null and mapfields != ''">
                and MAPFIELDS = #{mapfields}
            </if>
            <if test="refercontent != null and refercontent != ''">
                and REFERCONTENT = #{refercontent}
            </if>
            <if test="displaytable != null and displaytable != ''">
                and DISPLAYTABLE = #{displaytable}
            </if>
            <if test="limit != null and limit != ''">
                and LIMIT = #{limit}
            </if>
            <if test="sortfield != null and sortfield != ''">
                and SORTFIELD = #{sortfield}
            </if>
            <if test="sorttype != null and sorttype != ''">
                and SORTTYPE = #{sorttype}
            </if>
            <if test="parentfieldname != null and parentfieldname != ''">
                and PARENTFIELDNAME = #{parentfieldname}
            </if>
            <if test="parentusedfield != null and parentusedfield != ''">
                and PARENTUSEDFIELD = #{parentusedfield}
            </if>
            <if test="parentvalue != null and parentvalue != ''">
                and PARENTVALUE = #{parentvalue}
            </if>
            <if test="loadtype != null and loadtype != ''">
                and LOADTYPE = #{loadtype}
            </if>
            <if test="onlyleaf != null and onlyleaf != ''">
                and ONLYLEAF = #{onlyleaf}
            </if>
        </where>
        limit #{pageable.offset}, #{pageable.pageSize}
    </select>
    <!--统计总行数-->
    <select id="count" resultType="java.lang.Long">
        select count(1)
        from PL_CODE_REFERCONFIG
        <where>
            <if test="oid != null and oid != ''">
                and OID = #{oid}
            </if>
            <if test="revisionoid != null and revisionoid != ''">
                and REVISIONOID = #{revisionoid}
            </if>
            <if test="nameoid != null and nameoid != ''">
                and NAMEOID = #{nameoid}
            </if>
            <if test="btmname != null and btmname != ''">
                and BTMNAME = #{btmname}
            </if>
            <if test="lastr != null and lastr != ''">
                and LASTR = #{lastr}
            </if>
            <if test="firstr != null and firstr != ''">
                and FIRSTR = #{firstr}
            </if>
            <if test="lastv != null and lastv != ''">
                and LASTV = #{lastv}
            </if>
            <if test="firstv != null and firstv != ''">
                and FIRSTV = #{firstv}
            </if>
            <if test="creator != null and creator != ''">
                and CREATOR = #{creator}
            </if>
            <if test="createtime != null and createtime != ''">
                and CREATETIME = #{createtime}
            </if>
            <if test="revisionseq != null">
                and REVISIONSEQ = #{revisionseq}
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                and REVISIONVALUE = #{revisionvalue}
            </if>
            <if test="versionseq != null">
                and VERSIONSEQ = #{versionseq}
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                and VERSIONVALUE = #{versionvalue}
            </if>
            <if test="lctid != null and lctid != ''">
                and LCTID = #{lctid}
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                and LCSTATUS = #{lcstatus}
            </if>
            <if test="ts != null and ts != ''">
                and TS = #{ts}
            </if>
            <if test="name != null and name != ''">
                and NAME = #{name}
            </if>
            <if test="description != null and description != ''">
                and DESCRIPTION = #{description}
            </if>
            <if test="owner != null and owner != ''">
                and OWNER = #{owner}
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                and COPYFROMVERSION = #{copyfromversion}
            </if>
            <if test="ordernum != null">
                and ORDERNUM = #{ordernum}
            </if>
            <if test="refertype != null and refertype != ''">
                and REFERTYPE = #{refertype}
            </if>
            <if test="textfield != null and textfield != ''">
                and TEXTFIELD = #{textfield}
            </if>
            <if test="valuefield != null and valuefield != ''">
                and VALUEFIELD = #{valuefield}
            </if>
            <if test="type != null and type != ''">
                and TYPE = #{type}
            </if>
            <if test="url != null and url != ''">
                and URL = #{url}
            </if>
            <if test="backpath != null and backpath != ''">
                and BACKPATH = #{backpath}
            </if>
            <if test="method != null and method != ''">
                and METHOD = #{method}
            </if>
            <if test="height != null">
                and HEIGHT = #{height}
            </if>
            <if test="paramforformkey != null and paramforformkey != ''">
                and PARAMFORFORMKEY = #{paramforformkey}
            </if>
            <if test="ismuti != null and ismuti != ''">
                and ISMUTI = #{ismuti}
            </if>
            <if test="mapfields != null and mapfields != ''">
                and MAPFIELDS = #{mapfields}
            </if>
            <if test="refercontent != null and refercontent != ''">
                and REFERCONTENT = #{refercontent}
            </if>
            <if test="displaytable != null and displaytable != ''">
                and DISPLAYTABLE = #{displaytable}
            </if>
            <if test="limit != null and limit != ''">
                and LIMIT = #{limit}
            </if>
            <if test="sortfield != null and sortfield != ''">
                and SORTFIELD = #{sortfield}
            </if>
            <if test="sorttype != null and sorttype != ''">
                and SORTTYPE = #{sorttype}
            </if>
            <if test="parentfieldname != null and parentfieldname != ''">
                and PARENTFIELDNAME = #{parentfieldname}
            </if>
            <if test="parentusedfield != null and parentusedfield != ''">
                and PARENTUSEDFIELD = #{parentusedfield}
            </if>
            <if test="parentvalue != null and parentvalue != ''">
                and PARENTVALUE = #{parentvalue}
            </if>
            <if test="loadtype != null and loadtype != ''">
                and LOADTYPE = #{loadtype}
            </if>
            <if test="onlyleaf != null and onlyleaf != ''">
                and ONLYLEAF = #{onlyleaf}
            </if>
        </where>
    </select>
    <!--新增所有列-->
    <insert id="insert" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_REFERCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, REFERTYPE, TEXTFIELD, VALUEFIELD, TYPE, URL, BACKPATH, METHOD, HEIGHT, PARAMFORFORMKEY, ISMUTI, MAPFIELDS, REFERCONTENT, DISPLAYTABLE, LIMIT, SORTFIELD, SORTTYPE, PARENTFIELDNAME, PARENTUSEDFIELD, PARENTVALUE, LOADTYPE, ONLYLEAF)
        values (#{revisionoid}, #{nameoid}, #{btmname}, #{lastr}, #{firstr}, #{lastv}, #{firstv}, #{creator}, #{createtime}, #{revisionseq}, #{revisionvalue}, #{versionseq}, #{versionvalue}, #{lctid}, #{lcstatus}, #{ts}, #{name}, #{description}, #{owner}, #{copyfromversion}, #{ordernum}, #{refertype}, #{textfield}, #{valuefield}, #{type}, #{url}, #{backpath}, #{method}, #{height}, #{paramforformkey}, #{ismuti}, #{mapfields}, #{refercontent}, #{displaytable}, #{limit}, #{sortfield}, #{sorttype}, #{parentfieldname}, #{parentusedfield}, #{parentvalue}, #{loadtype}, #{onlyleaf})
    </insert>
    <insert id="insertBatch" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_REFERCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, REFERTYPE, TEXTFIELD, VALUEFIELD, TYPE, URL, BACKPATH, METHOD, HEIGHT, PARAMFORFORMKEY, ISMUTI, MAPFIELDS, REFERCONTENT, DISPLAYTABLE, LIMIT, SORTFIELD, SORTTYPE, PARENTFIELDNAME, PARENTUSEDFIELD, PARENTVALUE, LOADTYPE, ONLYLEAF)
        values
        <foreach collection="entities" item="entity" separator=",">
        (#{entity.revisionoid}, #{entity.nameoid}, #{entity.btmname}, #{entity.lastr}, #{entity.firstr}, #{entity.lastv}, #{entity.firstv}, #{entity.creator}, #{entity.createtime}, #{entity.revisionseq}, #{entity.revisionvalue}, #{entity.versionseq}, #{entity.versionvalue}, #{entity.lctid}, #{entity.lcstatus}, #{entity.ts}, #{entity.name}, #{entity.description}, #{entity.owner}, #{entity.copyfromversion}, #{entity.ordernum}, #{entity.refertype}, #{entity.textfield}, #{entity.valuefield}, #{entity.type}, #{entity.url}, #{entity.backpath}, #{entity.method}, #{entity.height}, #{entity.paramforformkey}, #{entity.ismuti}, #{entity.mapfields}, #{entity.refercontent}, #{entity.displaytable}, #{entity.limit}, #{entity.sortfield}, #{entity.sorttype}, #{entity.parentfieldname}, #{entity.parentusedfield}, #{entity.parentvalue}, #{entity.loadtype}, #{entity.onlyleaf})
        </foreach>
    </insert>
    <insert id="insertOrUpdateBatch" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_REFERCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, REFERTYPE, TEXTFIELD, VALUEFIELD, TYPE, URL, BACKPATH, METHOD, HEIGHT, PARAMFORFORMKEY, ISMUTI, MAPFIELDS, REFERCONTENT, DISPLAYTABLE, LIMIT, SORTFIELD, SORTTYPE, PARENTFIELDNAME, PARENTUSEDFIELD, PARENTVALUE, LOADTYPE, ONLYLEAF)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.revisionoid}, #{entity.nameoid}, #{entity.btmname}, #{entity.lastr}, #{entity.firstr}, #{entity.lastv}, #{entity.firstv}, #{entity.creator}, #{entity.createtime}, #{entity.revisionseq}, #{entity.revisionvalue}, #{entity.versionseq}, #{entity.versionvalue}, #{entity.lctid}, #{entity.lcstatus}, #{entity.ts}, #{entity.name}, #{entity.description}, #{entity.owner}, #{entity.copyfromversion}, #{entity.ordernum}, #{entity.refertype}, #{entity.textfield}, #{entity.valuefield}, #{entity.type}, #{entity.url}, #{entity.backpath}, #{entity.method}, #{entity.height}, #{entity.paramforformkey}, #{entity.ismuti}, #{entity.mapfields}, #{entity.refercontent}, #{entity.displaytable}, #{entity.limit}, #{entity.sortfield}, #{entity.sorttype}, #{entity.parentfieldname}, #{entity.parentusedfield}, #{entity.parentvalue}, #{entity.loadtype}, #{entity.onlyleaf})
        </foreach>
        on duplicate key update
        REVISIONOID = values(REVISIONOID),
        NAMEOID = values(NAMEOID),
        BTMNAME = values(BTMNAME),
        LASTR = values(LASTR),
        FIRSTR = values(FIRSTR),
        LASTV = values(LASTV),
        FIRSTV = values(FIRSTV),
        CREATOR = values(CREATOR),
        CREATETIME = values(CREATETIME),
        REVISIONSEQ = values(REVISIONSEQ),
        REVISIONVALUE = values(REVISIONVALUE),
        VERSIONSEQ = values(VERSIONSEQ),
        VERSIONVALUE = values(VERSIONVALUE),
        LCTID = values(LCTID),
        LCSTATUS = values(LCSTATUS),
        TS = values(TS),
        NAME = values(NAME),
        DESCRIPTION = values(DESCRIPTION),
        OWNER = values(OWNER),
        COPYFROMVERSION = values(COPYFROMVERSION),
        ORDERNUM = values(ORDERNUM),
        REFERTYPE = values(REFERTYPE),
        TEXTFIELD = values(TEXTFIELD),
        VALUEFIELD = values(VALUEFIELD),
        TYPE = values(TYPE),
        URL = values(URL),
        BACKPATH = values(BACKPATH),
        METHOD = values(METHOD),
        HEIGHT = values(HEIGHT),
        PARAMFORFORMKEY = values(PARAMFORFORMKEY),
        ISMUTI = values(ISMUTI),
        MAPFIELDS = values(MAPFIELDS),
        REFERCONTENT = values(REFERCONTENT),
        DISPLAYTABLE = values(DISPLAYTABLE),
        LIMIT = values(LIMIT),
        SORTFIELD = values(SORTFIELD),
        SORTTYPE = values(SORTTYPE),
        PARENTFIELDNAME = values(PARENTFIELDNAME),
        PARENTUSEDFIELD = values(PARENTUSEDFIELD),
        PARENTVALUE = values(PARENTVALUE),
        LOADTYPE = values(LOADTYPE),
        ONLYLEAF = values(ONLYLEAF)
    </insert>
    <!--通过主键修改数据-->
    <update id="update">
        update PL_CODE_REFERCONFIG
        <set>
            <if test="revisionoid != null and revisionoid != ''">
                REVISIONOID = #{revisionoid},
            </if>
            <if test="nameoid != null and nameoid != ''">
                NAMEOID = #{nameoid},
            </if>
            <if test="btmname != null and btmname != ''">
                BTMNAME = #{btmname},
            </if>
            <if test="lastr != null and lastr != ''">
                LASTR = #{lastr},
            </if>
            <if test="firstr != null and firstr != ''">
                FIRSTR = #{firstr},
            </if>
            <if test="lastv != null and lastv != ''">
                LASTV = #{lastv},
            </if>
            <if test="firstv != null and firstv != ''">
                FIRSTV = #{firstv},
            </if>
            <if test="creator != null and creator != ''">
                CREATOR = #{creator},
            </if>
            <if test="createtime != null and createtime != ''">
                CREATETIME = #{createtime},
            </if>
            <if test="revisionseq != null">
                REVISIONSEQ = #{revisionseq},
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                REVISIONVALUE = #{revisionvalue},
            </if>
            <if test="versionseq != null">
                VERSIONSEQ = #{versionseq},
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                VERSIONVALUE = #{versionvalue},
            </if>
            <if test="lctid != null and lctid != ''">
                LCTID = #{lctid},
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                LCSTATUS = #{lcstatus},
            </if>
            <if test="ts != null and ts != ''">
                TS = #{ts},
            </if>
            <if test="name != null and name != ''">
                NAME = #{name},
            </if>
            <if test="description != null and description != ''">
                DESCRIPTION = #{description},
            </if>
            <if test="owner != null and owner != ''">
                OWNER = #{owner},
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                COPYFROMVERSION = #{copyfromversion},
            </if>
            <if test="ordernum != null">
                ORDERNUM = #{ordernum},
            </if>
            <if test="refertype != null and refertype != ''">
                REFERTYPE = #{refertype},
            </if>
            <if test="textfield != null and textfield != ''">
                TEXTFIELD = #{textfield},
            </if>
            <if test="valuefield != null and valuefield != ''">
                VALUEFIELD = #{valuefield},
            </if>
            <if test="type != null and type != ''">
                TYPE = #{type},
            </if>
            <if test="url != null and url != ''">
                URL = #{url},
            </if>
            <if test="backpath != null and backpath != ''">
                BACKPATH = #{backpath},
            </if>
            <if test="method != null and method != ''">
                METHOD = #{method},
            </if>
            <if test="height != null">
                HEIGHT = #{height},
            </if>
            <if test="paramforformkey != null and paramforformkey != ''">
                PARAMFORFORMKEY = #{paramforformkey},
            </if>
            <if test="ismuti != null and ismuti != ''">
                ISMUTI = #{ismuti},
            </if>
            <if test="mapfields != null and mapfields != ''">
                MAPFIELDS = #{mapfields},
            </if>
            <if test="refercontent != null and refercontent != ''">
                REFERCONTENT = #{refercontent},
            </if>
            <if test="displaytable != null and displaytable != ''">
                DISPLAYTABLE = #{displaytable},
            </if>
            <if test="limit != null and limit != ''">
                LIMIT = #{limit},
            </if>
            <if test="sortfield != null and sortfield != ''">
                SORTFIELD = #{sortfield},
            </if>
            <if test="sorttype != null and sorttype != ''">
                SORTTYPE = #{sorttype},
            </if>
            <if test="parentfieldname != null and parentfieldname != ''">
                PARENTFIELDNAME = #{parentfieldname},
            </if>
            <if test="parentusedfield != null and parentusedfield != ''">
                PARENTUSEDFIELD = #{parentusedfield},
            </if>
            <if test="parentvalue != null and parentvalue != ''">
                PARENTVALUE = #{parentvalue},
            </if>
            <if test="loadtype != null and loadtype != ''">
                LOADTYPE = #{loadtype},
            </if>
            <if test="onlyleaf != null and onlyleaf != ''">
                ONLYLEAF = #{onlyleaf},
            </if>
        </set>
        where OID = #{oid}
    </update>
    <!--通过主键删除-->
    <delete id="deleteById">
        delete from PL_CODE_REFERCONFIG where OID = #{oid}
    </delete>
</mapper>
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeShowFieldConfigMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,397 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vci.ubcs.code.mapper.CodeShowFieldConfigMapper">
    <resultMap type="com.vci.ubcs.code.entity.CodeShowFieldConfig" id="PlCodeShowfieldconfigMap">
        <result property="oid" column="OID" jdbcType="VARCHAR"/>
        <result property="revisionOid" column="REVISIONOID" jdbcType="VARCHAR"/>
        <result property="nameOid" column="NAMEOID" jdbcType="VARCHAR"/>
        <result property="btmname" column="BTMNAME" jdbcType="VARCHAR"/>
        <result property="lastR" column="LASTR" jdbcType="VARCHAR"/>
        <result property="firstR" column="FIRSTR" jdbcType="VARCHAR"/>
        <result property="lastV" column="LASTV" jdbcType="VARCHAR"/>
        <result property="firstV" column="FIRSTV" jdbcType="VARCHAR"/>
        <result property="creator" column="CREATOR" jdbcType="VARCHAR"/>
        <result property="createTime" column="CREATETIME" jdbcType="VARCHAR"/>
        <result property="revisionSeq" column="REVISIONSEQ" jdbcType="INTEGER"/>
        <result property="revisionValue" column="REVISIONVALUE" jdbcType="VARCHAR"/>
        <result property="versionSeq" column="VERSIONSEQ" jdbcType="INTEGER"/>
        <result property="versionValue" column="VERSIONVALUE" jdbcType="VARCHAR"/>
        <result property="lctid" column="LCTID" jdbcType="VARCHAR"/>
        <result property="lcStatus" column="LCSTATUS" jdbcType="VARCHAR"/>
        <result property="ts" column="TS" jdbcType="VARCHAR"/>
        <result property="name" column="NAME" jdbcType="VARCHAR"/>
        <result property="description" column="DESCRIPTION" jdbcType="VARCHAR"/>
        <result property="owner" column="OWNER" jdbcType="VARCHAR"/>
        <result property="copyFromVersion" column="COPYFROMVERSION" jdbcType="VARCHAR"/>
        <result property="orderNum" column="ORDERNUM" jdbcType="INTEGER"/>
        <result property="field" column="FIELD" jdbcType="VARCHAR"/>
        <result property="title" column="TITLE" jdbcType="VARCHAR"/>
        <result property="fieldType" column="FIELDTYPE" jdbcType="VARCHAR"/>
        <result property="sort" column="SORT" jdbcType="VARCHAR"/>
        <result property="sortField" column="SORTFIELD" jdbcType="VARCHAR"/>
        <result property="width" column="WIDTH" jdbcType="INTEGER"/>
        <result property="fixedText" column="FIXEDTEXT" jdbcType="VARCHAR"/>
        <result property="templet" column="TEMPLET" jdbcType="VARCHAR"/>
    </resultMap>
    <!--查询单个-->
    <select id="queryById" resultMap="PlCodeShowfieldconfigMap">
        select
          OID, REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, FIELD, TITLE, FIELDTYPE, SORT, SORTFIELD, WIDTH, FIXEDTEXT, TEMPLET
        from PL_CODE_SHOWFIELDCONFIG
        where OID = #{oid}
    </select>
    <!--查询指定行数据-->
    <select id="queryAllByLimit" resultMap="PlCodeShowfieldconfigMap">
        select
          OID, REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, FIELD, TITLE, FIELDTYPE, SORT, SORTFIELD, WIDTH, FIXEDTEXT, TEMPLET
        from PL_CODE_SHOWFIELDCONFIG
        <where>
            <if test="oid != null and oid != ''">
                and OID = #{oid}
            </if>
            <if test="revisionoid != null and revisionoid != ''">
                and REVISIONOID = #{revisionoid}
            </if>
            <if test="nameoid != null and nameoid != ''">
                and NAMEOID = #{nameoid}
            </if>
            <if test="btmname != null and btmname != ''">
                and BTMNAME = #{btmname}
            </if>
            <if test="lastr != null and lastr != ''">
                and LASTR = #{lastr}
            </if>
            <if test="firstr != null and firstr != ''">
                and FIRSTR = #{firstr}
            </if>
            <if test="lastv != null and lastv != ''">
                and LASTV = #{lastv}
            </if>
            <if test="firstv != null and firstv != ''">
                and FIRSTV = #{firstv}
            </if>
            <if test="creator != null and creator != ''">
                and CREATOR = #{creator}
            </if>
            <if test="createtime != null and createtime != ''">
                and CREATETIME = #{createtime}
            </if>
            <if test="revisionseq != null">
                and REVISIONSEQ = #{revisionseq}
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                and REVISIONVALUE = #{revisionvalue}
            </if>
            <if test="versionseq != null">
                and VERSIONSEQ = #{versionseq}
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                and VERSIONVALUE = #{versionvalue}
            </if>
            <if test="lctid != null and lctid != ''">
                and LCTID = #{lctid}
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                and LCSTATUS = #{lcstatus}
            </if>
            <if test="ts != null and ts != ''">
                and TS = #{ts}
            </if>
            <if test="name != null and name != ''">
                and NAME = #{name}
            </if>
            <if test="description != null and description != ''">
                and DESCRIPTION = #{description}
            </if>
            <if test="owner != null and owner != ''">
                and OWNER = #{owner}
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                and COPYFROMVERSION = #{copyfromversion}
            </if>
            <if test="ordernum != null">
                and ORDERNUM = #{ordernum}
            </if>
            <if test="field != null and field != ''">
                and FIELD = #{field}
            </if>
            <if test="title != null and title != ''">
                and TITLE = #{title}
            </if>
            <if test="fieldtype != null and fieldtype != ''">
                and FIELDTYPE = #{fieldtype}
            </if>
            <if test="sort != null and sort != ''">
                and SORT = #{sort}
            </if>
            <if test="sortfield != null and sortfield != ''">
                and SORTFIELD = #{sortfield}
            </if>
            <if test="width != null">
                and WIDTH = #{width}
            </if>
            <if test="fixedtext != null and fixedtext != ''">
                and FIXEDTEXT = #{fixedtext}
            </if>
            <if test="templet != null and templet != ''">
                and TEMPLET = #{templet}
            </if>
        </where>
        limit #{pageable.offset}, #{pageable.pageSize}
    </select>
    <!--统计总行数-->
    <select id="count" resultType="java.lang.Long">
        select count(1)
        from PL_CODE_SHOWFIELDCONFIG
        <where>
            <if test="oid != null and oid != ''">
                and OID = #{oid}
            </if>
            <if test="revisionoid != null and revisionoid != ''">
                and REVISIONOID = #{revisionoid}
            </if>
            <if test="nameoid != null and nameoid != ''">
                and NAMEOID = #{nameoid}
            </if>
            <if test="btmname != null and btmname != ''">
                and BTMNAME = #{btmname}
            </if>
            <if test="lastr != null and lastr != ''">
                and LASTR = #{lastr}
            </if>
            <if test="firstr != null and firstr != ''">
                and FIRSTR = #{firstr}
            </if>
            <if test="lastv != null and lastv != ''">
                and LASTV = #{lastv}
            </if>
            <if test="firstv != null and firstv != ''">
                and FIRSTV = #{firstv}
            </if>
            <if test="creator != null and creator != ''">
                and CREATOR = #{creator}
            </if>
            <if test="createtime != null and createtime != ''">
                and CREATETIME = #{createtime}
            </if>
            <if test="revisionseq != null">
                and REVISIONSEQ = #{revisionseq}
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                and REVISIONVALUE = #{revisionvalue}
            </if>
            <if test="versionseq != null">
                and VERSIONSEQ = #{versionseq}
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                and VERSIONVALUE = #{versionvalue}
            </if>
            <if test="lctid != null and lctid != ''">
                and LCTID = #{lctid}
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                and LCSTATUS = #{lcstatus}
            </if>
            <if test="ts != null and ts != ''">
                and TS = #{ts}
            </if>
            <if test="name != null and name != ''">
                and NAME = #{name}
            </if>
            <if test="description != null and description != ''">
                and DESCRIPTION = #{description}
            </if>
            <if test="owner != null and owner != ''">
                and OWNER = #{owner}
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                and COPYFROMVERSION = #{copyfromversion}
            </if>
            <if test="ordernum != null">
                and ORDERNUM = #{ordernum}
            </if>
            <if test="field != null and field != ''">
                and FIELD = #{field}
            </if>
            <if test="title != null and title != ''">
                and TITLE = #{title}
            </if>
            <if test="fieldtype != null and fieldtype != ''">
                and FIELDTYPE = #{fieldtype}
            </if>
            <if test="sort != null and sort != ''">
                and SORT = #{sort}
            </if>
            <if test="sortfield != null and sortfield != ''">
                and SORTFIELD = #{sortfield}
            </if>
            <if test="width != null">
                and WIDTH = #{width}
            </if>
            <if test="fixedtext != null and fixedtext != ''">
                and FIXEDTEXT = #{fixedtext}
            </if>
            <if test="templet != null and templet != ''">
                and TEMPLET = #{templet}
            </if>
        </where>
    </select>
    <!--新增所有列-->
    <insert id="insert" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_SHOWFIELDCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, FIELD, TITLE, FIELDTYPE, SORT, SORTFIELD, WIDTH, FIXEDTEXT, TEMPLET)
        values (#{revisionoid}, #{nameoid}, #{btmname}, #{lastr}, #{firstr}, #{lastv}, #{firstv}, #{creator}, #{createtime}, #{revisionseq}, #{revisionvalue}, #{versionseq}, #{versionvalue}, #{lctid}, #{lcstatus}, #{ts}, #{name}, #{description}, #{owner}, #{copyfromversion}, #{ordernum}, #{field}, #{title}, #{fieldtype}, #{sort}, #{sortfield}, #{width}, #{fixedtext}, #{templet})
    </insert>
    <insert id="insertBatch" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_SHOWFIELDCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, FIELD, TITLE, FIELDTYPE, SORT, SORTFIELD, WIDTH, FIXEDTEXT, TEMPLET)
        values
        <foreach collection="entities" item="entity" separator=",">
        (#{entity.revisionoid}, #{entity.nameoid}, #{entity.btmname}, #{entity.lastr}, #{entity.firstr}, #{entity.lastv}, #{entity.firstv}, #{entity.creator}, #{entity.createtime}, #{entity.revisionseq}, #{entity.revisionvalue}, #{entity.versionseq}, #{entity.versionvalue}, #{entity.lctid}, #{entity.lcstatus}, #{entity.ts}, #{entity.name}, #{entity.description}, #{entity.owner}, #{entity.copyfromversion}, #{entity.ordernum}, #{entity.field}, #{entity.title}, #{entity.fieldtype}, #{entity.sort}, #{entity.sortfield}, #{entity.width}, #{entity.fixedtext}, #{entity.templet})
        </foreach>
    </insert>
    <insert id="insertOrUpdateBatch" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_SHOWFIELDCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, FIELD, TITLE, FIELDTYPE, SORT, SORTFIELD, WIDTH, FIXEDTEXT, TEMPLET)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.revisionoid}, #{entity.nameoid}, #{entity.btmname}, #{entity.lastr}, #{entity.firstr}, #{entity.lastv}, #{entity.firstv}, #{entity.creator}, #{entity.createtime}, #{entity.revisionseq}, #{entity.revisionvalue}, #{entity.versionseq}, #{entity.versionvalue}, #{entity.lctid}, #{entity.lcstatus}, #{entity.ts}, #{entity.name}, #{entity.description}, #{entity.owner}, #{entity.copyfromversion}, #{entity.ordernum}, #{entity.field}, #{entity.title}, #{entity.fieldtype}, #{entity.sort}, #{entity.sortfield}, #{entity.width}, #{entity.fixedtext}, #{entity.templet})
        </foreach>
        on duplicate key update
        REVISIONOID = values(REVISIONOID),
        NAMEOID = values(NAMEOID),
        BTMNAME = values(BTMNAME),
        LASTR = values(LASTR),
        FIRSTR = values(FIRSTR),
        LASTV = values(LASTV),
        FIRSTV = values(FIRSTV),
        CREATOR = values(CREATOR),
        CREATETIME = values(CREATETIME),
        REVISIONSEQ = values(REVISIONSEQ),
        REVISIONVALUE = values(REVISIONVALUE),
        VERSIONSEQ = values(VERSIONSEQ),
        VERSIONVALUE = values(VERSIONVALUE),
        LCTID = values(LCTID),
        LCSTATUS = values(LCSTATUS),
        TS = values(TS),
        NAME = values(NAME),
        DESCRIPTION = values(DESCRIPTION),
        OWNER = values(OWNER),
        COPYFROMVERSION = values(COPYFROMVERSION),
        ORDERNUM = values(ORDERNUM),
        FIELD = values(FIELD),
        TITLE = values(TITLE),
        FIELDTYPE = values(FIELDTYPE),
        SORT = values(SORT),
        SORTFIELD = values(SORTFIELD),
        WIDTH = values(WIDTH),
        FIXEDTEXT = values(FIXEDTEXT),
        TEMPLET = values(TEMPLET)
    </insert>
    <!--通过主键修改数据-->
    <update id="update">
        update PL_CODE_SHOWFIELDCONFIG
        <set>
            <if test="revisionoid != null and revisionoid != ''">
                REVISIONOID = #{revisionoid},
            </if>
            <if test="nameoid != null and nameoid != ''">
                NAMEOID = #{nameoid},
            </if>
            <if test="btmname != null and btmname != ''">
                BTMNAME = #{btmname},
            </if>
            <if test="lastr != null and lastr != ''">
                LASTR = #{lastr},
            </if>
            <if test="firstr != null and firstr != ''">
                FIRSTR = #{firstr},
            </if>
            <if test="lastv != null and lastv != ''">
                LASTV = #{lastv},
            </if>
            <if test="firstv != null and firstv != ''">
                FIRSTV = #{firstv},
            </if>
            <if test="creator != null and creator != ''">
                CREATOR = #{creator},
            </if>
            <if test="createtime != null and createtime != ''">
                CREATETIME = #{createtime},
            </if>
            <if test="revisionseq != null">
                REVISIONSEQ = #{revisionseq},
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                REVISIONVALUE = #{revisionvalue},
            </if>
            <if test="versionseq != null">
                VERSIONSEQ = #{versionseq},
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                VERSIONVALUE = #{versionvalue},
            </if>
            <if test="lctid != null and lctid != ''">
                LCTID = #{lctid},
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                LCSTATUS = #{lcstatus},
            </if>
            <if test="ts != null and ts != ''">
                TS = #{ts},
            </if>
            <if test="name != null and name != ''">
                NAME = #{name},
            </if>
            <if test="description != null and description != ''">
                DESCRIPTION = #{description},
            </if>
            <if test="owner != null and owner != ''">
                OWNER = #{owner},
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                COPYFROMVERSION = #{copyfromversion},
            </if>
            <if test="ordernum != null">
                ORDERNUM = #{ordernum},
            </if>
            <if test="field != null and field != ''">
                FIELD = #{field},
            </if>
            <if test="title != null and title != ''">
                TITLE = #{title},
            </if>
            <if test="fieldtype != null and fieldtype != ''">
                FIELDTYPE = #{fieldtype},
            </if>
            <if test="sort != null and sort != ''">
                SORT = #{sort},
            </if>
            <if test="sortfield != null and sortfield != ''">
                SORTFIELD = #{sortfield},
            </if>
            <if test="width != null">
                WIDTH = #{width},
            </if>
            <if test="fixedtext != null and fixedtext != ''">
                FIXEDTEXT = #{fixedtext},
            </if>
            <if test="templet != null and templet != ''">
                TEMPLET = #{templet},
            </if>
        </set>
        where OID = #{oid}
    </update>
    <!--通过主键删除-->
    <delete id="deleteById">
        delete from PL_CODE_SHOWFIELDCONFIG where OID = #{oid}
    </delete>
</mapper>
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeSrchCondConfigMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,342 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vci.ubcs.code.mapper.CodeSrchCondConfigMapper">
    <resultMap type="com.vci.ubcs.code.entity.CodeSrchCondConfig" id="PlCodeSrchcondconfigMap">
        <result property="oid" column="OID" jdbcType="VARCHAR"/>
        <result property="revisionOid" column="REVISIONOID" jdbcType="VARCHAR"/>
        <result property="nameOid" column="NAMEOID" jdbcType="VARCHAR"/>
        <result property="btmname" column="BTMNAME" jdbcType="VARCHAR"/>
        <result property="lastR" column="LASTR" jdbcType="VARCHAR"/>
        <result property="firstR" column="FIRSTR" jdbcType="VARCHAR"/>
        <result property="lastV" column="LASTV" jdbcType="VARCHAR"/>
        <result property="firstV" column="FIRSTV" jdbcType="VARCHAR"/>
        <result property="creator" column="CREATOR" jdbcType="VARCHAR"/>
        <result property="createTime" column="CREATETIME" jdbcType="VARCHAR"/>
        <result property="revisionSeq" column="REVISIONSEQ" jdbcType="INTEGER"/>
        <result property="revisionValue" column="REVISIONVALUE" jdbcType="VARCHAR"/>
        <result property="versionSeq" column="VERSIONSEQ" jdbcType="INTEGER"/>
        <result property="versionValue" column="VERSIONVALUE" jdbcType="VARCHAR"/>
        <result property="lctid" column="LCTID" jdbcType="VARCHAR"/>
        <result property="lcStatus" column="LCSTATUS" jdbcType="VARCHAR"/>
        <result property="ts" column="TS" jdbcType="VARCHAR"/>
        <result property="name" column="NAME" jdbcType="VARCHAR"/>
        <result property="description" column="DESCRIPTION" jdbcType="VARCHAR"/>
        <result property="owner" column="OWNER" jdbcType="VARCHAR"/>
        <result property="copyFromVersion" column="COPYFROMVERSION" jdbcType="VARCHAR"/>
        <result property="orderNum" column="ORDERNUM" jdbcType="INTEGER"/>
        <result property="filterField" column="FILTERFIELD" jdbcType="VARCHAR"/>
        <result property="filterType" column="FILTERTYPE" jdbcType="VARCHAR"/>
        <result property="filterValue" column="FILTERVALUE" jdbcType="VARCHAR"/>
    </resultMap>
    <!--查询单个-->
    <select id="queryById" resultMap="PlCodeSrchcondconfigMap">
        select
          OID, REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, FILTERFIELD, FILTERTYPE, FILTERVALUE
        from PL_CODE_SRCHCONDCONFIG
        where OID = #{oid}
    </select>
    <!--查询指定行数据-->
    <select id="queryAllByLimit" resultMap="PlCodeSrchcondconfigMap">
        select
          OID, REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, FILTERFIELD, FILTERTYPE, FILTERVALUE
        from PL_CODE_SRCHCONDCONFIG
        <where>
            <if test="oid != null and oid != ''">
                and OID = #{oid}
            </if>
            <if test="revisionoid != null and revisionoid != ''">
                and REVISIONOID = #{revisionoid}
            </if>
            <if test="nameoid != null and nameoid != ''">
                and NAMEOID = #{nameoid}
            </if>
            <if test="btmname != null and btmname != ''">
                and BTMNAME = #{btmname}
            </if>
            <if test="lastr != null and lastr != ''">
                and LASTR = #{lastr}
            </if>
            <if test="firstr != null and firstr != ''">
                and FIRSTR = #{firstr}
            </if>
            <if test="lastv != null and lastv != ''">
                and LASTV = #{lastv}
            </if>
            <if test="firstv != null and firstv != ''">
                and FIRSTV = #{firstv}
            </if>
            <if test="creator != null and creator != ''">
                and CREATOR = #{creator}
            </if>
            <if test="createtime != null and createtime != ''">
                and CREATETIME = #{createtime}
            </if>
            <if test="revisionseq != null">
                and REVISIONSEQ = #{revisionseq}
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                and REVISIONVALUE = #{revisionvalue}
            </if>
            <if test="versionseq != null">
                and VERSIONSEQ = #{versionseq}
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                and VERSIONVALUE = #{versionvalue}
            </if>
            <if test="lctid != null and lctid != ''">
                and LCTID = #{lctid}
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                and LCSTATUS = #{lcstatus}
            </if>
            <if test="ts != null and ts != ''">
                and TS = #{ts}
            </if>
            <if test="name != null and name != ''">
                and NAME = #{name}
            </if>
            <if test="description != null and description != ''">
                and DESCRIPTION = #{description}
            </if>
            <if test="owner != null and owner != ''">
                and OWNER = #{owner}
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                and COPYFROMVERSION = #{copyfromversion}
            </if>
            <if test="ordernum != null">
                and ORDERNUM = #{ordernum}
            </if>
            <if test="filterfield != null and filterfield != ''">
                and FILTERFIELD = #{filterfield}
            </if>
            <if test="filtertype != null and filtertype != ''">
                and FILTERTYPE = #{filtertype}
            </if>
            <if test="filtervalue != null and filtervalue != ''">
                and FILTERVALUE = #{filtervalue}
            </if>
        </where>
        limit #{pageable.offset}, #{pageable.pageSize}
    </select>
    <!--统计总行数-->
    <select id="count" resultType="java.lang.Long">
        select count(1)
        from PL_CODE_SRCHCONDCONFIG
        <where>
            <if test="oid != null and oid != ''">
                and OID = #{oid}
            </if>
            <if test="revisionoid != null and revisionoid != ''">
                and REVISIONOID = #{revisionoid}
            </if>
            <if test="nameoid != null and nameoid != ''">
                and NAMEOID = #{nameoid}
            </if>
            <if test="btmname != null and btmname != ''">
                and BTMNAME = #{btmname}
            </if>
            <if test="lastr != null and lastr != ''">
                and LASTR = #{lastr}
            </if>
            <if test="firstr != null and firstr != ''">
                and FIRSTR = #{firstr}
            </if>
            <if test="lastv != null and lastv != ''">
                and LASTV = #{lastv}
            </if>
            <if test="firstv != null and firstv != ''">
                and FIRSTV = #{firstv}
            </if>
            <if test="creator != null and creator != ''">
                and CREATOR = #{creator}
            </if>
            <if test="createtime != null and createtime != ''">
                and CREATETIME = #{createtime}
            </if>
            <if test="revisionseq != null">
                and REVISIONSEQ = #{revisionseq}
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                and REVISIONVALUE = #{revisionvalue}
            </if>
            <if test="versionseq != null">
                and VERSIONSEQ = #{versionseq}
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                and VERSIONVALUE = #{versionvalue}
            </if>
            <if test="lctid != null and lctid != ''">
                and LCTID = #{lctid}
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                and LCSTATUS = #{lcstatus}
            </if>
            <if test="ts != null and ts != ''">
                and TS = #{ts}
            </if>
            <if test="name != null and name != ''">
                and NAME = #{name}
            </if>
            <if test="description != null and description != ''">
                and DESCRIPTION = #{description}
            </if>
            <if test="owner != null and owner != ''">
                and OWNER = #{owner}
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                and COPYFROMVERSION = #{copyfromversion}
            </if>
            <if test="ordernum != null">
                and ORDERNUM = #{ordernum}
            </if>
            <if test="filterfield != null and filterfield != ''">
                and FILTERFIELD = #{filterfield}
            </if>
            <if test="filtertype != null and filtertype != ''">
                and FILTERTYPE = #{filtertype}
            </if>
            <if test="filtervalue != null and filtervalue != ''">
                and FILTERVALUE = #{filtervalue}
            </if>
        </where>
    </select>
    <!--新增所有列-->
    <insert id="insert" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_SRCHCONDCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, FILTERFIELD, FILTERTYPE, FILTERVALUE)
        values (#{revisionoid}, #{nameoid}, #{btmname}, #{lastr}, #{firstr}, #{lastv}, #{firstv}, #{creator}, #{createtime}, #{revisionseq}, #{revisionvalue}, #{versionseq}, #{versionvalue}, #{lctid}, #{lcstatus}, #{ts}, #{name}, #{description}, #{owner}, #{copyfromversion}, #{ordernum}, #{filterfield}, #{filtertype}, #{filtervalue})
    </insert>
    <insert id="insertBatch" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_SRCHCONDCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, FILTERFIELD, FILTERTYPE, FILTERVALUE)
        values
        <foreach collection="entities" item="entity" separator=",">
        (#{entity.revisionoid}, #{entity.nameoid}, #{entity.btmname}, #{entity.lastr}, #{entity.firstr}, #{entity.lastv}, #{entity.firstv}, #{entity.creator}, #{entity.createtime}, #{entity.revisionseq}, #{entity.revisionvalue}, #{entity.versionseq}, #{entity.versionvalue}, #{entity.lctid}, #{entity.lcstatus}, #{entity.ts}, #{entity.name}, #{entity.description}, #{entity.owner}, #{entity.copyfromversion}, #{entity.ordernum}, #{entity.filterfield}, #{entity.filtertype}, #{entity.filtervalue})
        </foreach>
    </insert>
    <insert id="insertOrUpdateBatch" keyProperty="oid" useGeneratedKeys="true">
        insert into PL_CODE_SRCHCONDCONFIG(REVISIONOID, NAMEOID, BTMNAME, LASTR, FIRSTR, LASTV, FIRSTV, CREATOR, CREATETIME, REVISIONSEQ, REVISIONVALUE, VERSIONSEQ, VERSIONVALUE, LCTID, LCSTATUS, TS, NAME, DESCRIPTION, OWNER, COPYFROMVERSION, ORDERNUM, FILTERFIELD, FILTERTYPE, FILTERVALUE)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.revisionoid}, #{entity.nameoid}, #{entity.btmname}, #{entity.lastr}, #{entity.firstr}, #{entity.lastv}, #{entity.firstv}, #{entity.creator}, #{entity.createtime}, #{entity.revisionseq}, #{entity.revisionvalue}, #{entity.versionseq}, #{entity.versionvalue}, #{entity.lctid}, #{entity.lcstatus}, #{entity.ts}, #{entity.name}, #{entity.description}, #{entity.owner}, #{entity.copyfromversion}, #{entity.ordernum}, #{entity.filterfield}, #{entity.filtertype}, #{entity.filtervalue})
        </foreach>
        on duplicate key update
        REVISIONOID = values(REVISIONOID),
        NAMEOID = values(NAMEOID),
        BTMNAME = values(BTMNAME),
        LASTR = values(LASTR),
        FIRSTR = values(FIRSTR),
        LASTV = values(LASTV),
        FIRSTV = values(FIRSTV),
        CREATOR = values(CREATOR),
        CREATETIME = values(CREATETIME),
        REVISIONSEQ = values(REVISIONSEQ),
        REVISIONVALUE = values(REVISIONVALUE),
        VERSIONSEQ = values(VERSIONSEQ),
        VERSIONVALUE = values(VERSIONVALUE),
        LCTID = values(LCTID),
        LCSTATUS = values(LCSTATUS),
        TS = values(TS),
        NAME = values(NAME),
        DESCRIPTION = values(DESCRIPTION),
        OWNER = values(OWNER),
        COPYFROMVERSION = values(COPYFROMVERSION),
        ORDERNUM = values(ORDERNUM),
        FILTERFIELD = values(FILTERFIELD),
        FILTERTYPE = values(FILTERTYPE),
        FILTERVALUE = values(FILTERVALUE)
    </insert>
    <!--通过主键修改数据-->
    <update id="update">
        update PL_CODE_SRCHCONDCONFIG
        <set>
            <if test="revisionoid != null and revisionoid != ''">
                REVISIONOID = #{revisionoid},
            </if>
            <if test="nameoid != null and nameoid != ''">
                NAMEOID = #{nameoid},
            </if>
            <if test="btmname != null and btmname != ''">
                BTMNAME = #{btmname},
            </if>
            <if test="lastr != null and lastr != ''">
                LASTR = #{lastr},
            </if>
            <if test="firstr != null and firstr != ''">
                FIRSTR = #{firstr},
            </if>
            <if test="lastv != null and lastv != ''">
                LASTV = #{lastv},
            </if>
            <if test="firstv != null and firstv != ''">
                FIRSTV = #{firstv},
            </if>
            <if test="creator != null and creator != ''">
                CREATOR = #{creator},
            </if>
            <if test="createtime != null and createtime != ''">
                CREATETIME = #{createtime},
            </if>
            <if test="revisionseq != null">
                REVISIONSEQ = #{revisionseq},
            </if>
            <if test="revisionvalue != null and revisionvalue != ''">
                REVISIONVALUE = #{revisionvalue},
            </if>
            <if test="versionseq != null">
                VERSIONSEQ = #{versionseq},
            </if>
            <if test="versionvalue != null and versionvalue != ''">
                VERSIONVALUE = #{versionvalue},
            </if>
            <if test="lctid != null and lctid != ''">
                LCTID = #{lctid},
            </if>
            <if test="lcstatus != null and lcstatus != ''">
                LCSTATUS = #{lcstatus},
            </if>
            <if test="ts != null and ts != ''">
                TS = #{ts},
            </if>
            <if test="name != null and name != ''">
                NAME = #{name},
            </if>
            <if test="description != null and description != ''">
                DESCRIPTION = #{description},
            </if>
            <if test="owner != null and owner != ''">
                OWNER = #{owner},
            </if>
            <if test="copyfromversion != null and copyfromversion != ''">
                COPYFROMVERSION = #{copyfromversion},
            </if>
            <if test="ordernum != null">
                ORDERNUM = #{ordernum},
            </if>
            <if test="filterfield != null and filterfield != ''">
                FILTERFIELD = #{filterfield},
            </if>
            <if test="filtertype != null and filtertype != ''">
                FILTERTYPE = #{filtertype},
            </if>
            <if test="filtervalue != null and filtervalue != ''">
                FILTERVALUE = #{filtervalue},
            </if>
        </set>
        where OID = #{oid}
    </update>
    <!--通过主键删除-->
    <delete id="deleteById">
        delete from PL_CODE_SRCHCONDCONFIG where OID = #{oid}
    </delete>
</mapper>
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/ValueRangeController.java
@@ -9,9 +9,11 @@
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.annotation.PreAuth;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import com.vci.ubcs.system.entity.ValueRange;
import org.springblade.core.tool.constant.RoleConstant;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
Source/UBCS/ubcs-service/ubcs-webservice/pom.xml
@@ -30,6 +30,10 @@
                <exclusion>
                    <groupId>javax.validation</groupId>
                    <artifactId>validation-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-web</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
Source/data/applogs/xxl-job/xxl-job-admin.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
Source/data/applogs/xxl-job/xxl-job-admin.log.2023-05-19.zip
Binary files differ
Source/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,822 @@
2023-05-20 00:08:12,304 INFO [nacos-grpc-client-executor-localhost-1081] c.alibaba.nacos.common.remote.client [LoggerUtils.java : 60] [3e635850-c2bd-4d08-b6fd-e5343c60783f] Receive server push request, request = ClientDetectionRequest, requestId = 140
2023-05-20 00:08:12,403 INFO [nacos-grpc-client-executor-localhost-1081] c.alibaba.nacos.common.remote.client [LoggerUtils.java : 60] [3e635850-c2bd-4d08-b6fd-e5343c60783f] Ack server push request, request = ClientDetectionRequest, requestId = 140
2023-05-20 00:48:54,086 WARN [XNIO-1 task-2] o.s.b.a.health.HealthEndpointSupport [HealthEndpointSupport.java : 181] Health contributor org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration$AdaptedReactiveHealthContributors$1 (redis) took 336256ms to respond
2023-05-20 00:48:54,145 INFO [lettuce-eventExecutorLoop-1-15] i.l.core.protocol.ConnectionWatchdog [AbstractInternalLogger.java : 171] Reconnecting, last destination was /1.12.225.193:6379
2023-05-20 00:48:54,382 INFO [lettuce-nioEventLoop-6-3] i.l.c.protocol.ReconnectionHandler [ReconnectionHandler.java : 174] Reconnected to 1.12.225.193:6379
2023-05-20 00:48:56,127 INFO [nacos-grpc-client-executor-localhost-1093] c.alibaba.nacos.common.remote.client [LoggerUtils.java : 60] [c279855f-5634-4159-84ec-09347150fd37_config-0] Receive server push request, request = ClientDetectionRequest, requestId = 172
2023-05-20 00:48:56,130 INFO [nacos-grpc-client-executor-localhost-1084] c.alibaba.nacos.common.remote.client [LoggerUtils.java : 60] [3e635850-c2bd-4d08-b6fd-e5343c60783f] Receive server push request, request = ClientDetectionRequest, requestId = 176
2023-05-20 00:48:56,130 INFO [nacos-grpc-client-executor-localhost-1084] c.alibaba.nacos.common.remote.client [LoggerUtils.java : 60] [3e635850-c2bd-4d08-b6fd-e5343c60783f] Ack server push request, request = ClientDetectionRequest, requestId = 176
2023-05-20 00:48:56,131 INFO [nacos-grpc-client-executor-localhost-1093] c.alibaba.nacos.common.remote.client [LoggerUtils.java : 60] [c279855f-5634-4159-84ec-09347150fd37_config-0] Ack server push request, request = ClientDetectionRequest, requestId = 172
2023-05-20 00:49:14,980 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:49:14,981 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:49:47,005 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:49:47,006 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:50:19,032 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:50:19,032 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:50:51,094 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:50:51,095 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:51:23,130 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:51:23,133 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:51:55,163 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:51:55,165 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:52:27,195 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:52:27,196 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:52:59,238 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:52:59,242 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:53:31,298 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:53:31,299 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:54:03,322 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:54:03,323 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:54:35,368 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:54:35,369 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:55:07,411 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:55:07,412 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:55:39,458 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:55:39,462 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:56:11,496 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:56:11,502 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:56:43,536 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:56:43,537 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:57:15,582 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:57:15,582 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:57:47,623 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:57:47,625 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:58:19,669 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:58:19,670 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:58:51,705 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:58:51,707 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:59:23,734 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:59:23,739 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 00:59:55,791 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 00:59:55,792 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 01:00:27,825 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 01:00:27,826 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 01:00:59,876 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 01:00:59,881 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 01:01:31,905 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 01:01:31,906 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 01:02:03,944 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 01:02:03,946 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 01:02:35,966 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 01:02:35,967 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 01:03:08,011 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 01:03:08,012 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 01:03:40,042 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 01:03:40,043 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 01:04:12,084 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registry(AdminBizClient.java:41)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:48)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 01:04:12,085 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 54] >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registry, content=null]
2023-05-20 01:04:26,066 WARN [Thread-11] c.a.nacos.common.notify.NotifyCenter [NotifyCenter.java : 136] [NotifyCenter] Start destroying Publisher
2023-05-20 01:04:26,066 WARN [Thread-3] c.a.n.c.http.HttpClientBeanHolder [HttpClientBeanHolder.java : 108] [HttpClientBeanHolder] Start destroying common HttpClient
2023-05-20 01:04:26,068 WARN [Thread-11] c.a.nacos.common.notify.NotifyCenter [NotifyCenter.java : 153] [NotifyCenter] Destruction of the end
2023-05-20 01:04:26,074 WARN [Thread-3] c.a.n.c.http.HttpClientBeanHolder [HttpClientBeanHolder.java : 114] [HttpClientBeanHolder] Destruction of the end
2023-05-20 01:04:26,353 INFO [SpringApplicationShutdownHook] io.undertow [Undertow.java : 259] stopping server: Undertow - 2.2.18.Final
2023-05-20 01:04:26,453 INFO [SpringApplicationShutdownHook] io.undertow.servlet [ServletContextImpl.java : 382] Destroying Spring FrameworkServlet 'dispatcherServlet'
2023-05-20 01:04:26,471 ERROR [SpringApplicationShutdownHook] c.a.cloud.nacos.discovery.NacosWatch [NacosWatch.java : 180] namingService unsubscribe failed, properties:NacosDiscoveryProperties{serverAddr='localhost:8848', username='', password='', endpoint='', namespace='', watchDelay=30000, logName='', service='ubcs-xxljob', weight=1.0, clusterName='DEFAULT', group='DEFAULT_GROUP', namingLoadCacheAtStart='false', metadata={preserved.register.source=SPRING_CLOUD}, registerEnabled=true, ip='192.168.237.1', networkInterface='', port=36009, secure=false, accessKey='', secretKey='', heartBeatInterval=null, heartBeatTimeout=null, ipDeleteTimeout=null, instanceEnabled=true, ephemeral=true, failureToleranceEnabled=false}, ipDeleteTimeout=null, failFast=true}
java.lang.IllegalStateException: UT015023: This Context has been already destroyed
    at io.undertow.servlet.spec.ServletContextImpl.getDeploymentInfo(ServletContextImpl.java:211)
    at io.undertow.servlet.spec.ServletContextImpl.getInitParameterNames(ServletContextImpl.java:449)
    at org.springframework.web.context.support.ServletContextPropertySource.getPropertyNames(ServletContextPropertySource.java:41)
    at com.alibaba.spring.util.PropertySourcesUtils.getPropertyNames(PropertySourcesUtils.java:130)
    at com.alibaba.spring.util.PropertySourcesUtils.getSubProperties(PropertySourcesUtils.java:103)
    at com.alibaba.spring.util.PropertySourcesUtils.getSubProperties(PropertySourcesUtils.java:57)
    at com.alibaba.cloud.nacos.NacosDiscoveryProperties.enrichNacosDiscoveryProperties(NacosDiscoveryProperties.java:657)
    at com.alibaba.cloud.nacos.NacosDiscoveryProperties.getNacosProperties(NacosDiscoveryProperties.java:651)
    at com.alibaba.cloud.nacos.discovery.NacosWatch.stop(NacosWatch.java:175)
    at com.alibaba.cloud.nacos.discovery.NacosWatch.stop(NacosWatch.java:107)
    at org.springframework.context.support.DefaultLifecycleProcessor.doStop(DefaultLifecycleProcessor.java:234)
    at org.springframework.context.support.DefaultLifecycleProcessor.access$300(DefaultLifecycleProcessor.java:54)
    at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.stop(DefaultLifecycleProcessor.java:373)
    at org.springframework.context.support.DefaultLifecycleProcessor.stopBeans(DefaultLifecycleProcessor.java:206)
    at org.springframework.context.support.DefaultLifecycleProcessor.onClose(DefaultLifecycleProcessor.java:129)
    at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1067)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174)
    at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1021)
    at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145)
    at java.lang.Iterable.forEach(Iterable.java:75)
    at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 01:04:26,486 INFO [Thread-52] com.xxl.rpc.remoting.net.Server [NettyHttpServer.java : 74] >>>>>>>>>>> xxl-rpc remoting server stop.
2023-05-20 01:04:28,532 ERROR [xxl-job, executor ExecutorRegistryThread] c.x.job.core.util.XxlJobRemotingUtil [XxlJobRemotingUtil.java : 146] Connection refused: connect
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
    at java.net.Socket.connect(Socket.java:606)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
    at sun.net.www.http.HttpClient.New(HttpClient.java:339)
    at sun.net.www.http.HttpClient.New(HttpClient.java:357)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990)
    at com.xxl.job.core.util.XxlJobRemotingUtil.postBody(XxlJobRemotingUtil.java:94)
    at com.xxl.job.core.biz.client.AdminBizClient.registryRemove(AdminBizClient.java:46)
    at com.xxl.job.core.thread.ExecutorRegistryThread$1.run(ExecutorRegistryThread.java:84)
    at java.lang.Thread.run(Thread.java:748)
2023-05-20 01:04:28,533 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 90] >>>>>>>>>>> xxl-job registry-remove fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='blade-xxljob', registryValue='127.0.0.1:7018'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting error(Connection refused: connect), for url : http://127.0.0.1:37012/xxl-job-admin/api/registryRemove, content=null]
2023-05-20 01:04:28,533 INFO [xxl-job, executor ExecutorRegistryThread] c.x.j.c.t.ExecutorRegistryThread [ExecutorRegistryThread.java : 105] >>>>>>>>>>> xxl-job, executor registry thread destory.
2023-05-20 01:04:28,534 INFO [SpringApplicationShutdownHook] com.xxl.rpc.remoting.net.Server [NettyHttpServer.java : 110] >>>>>>>>>>> xxl-rpc remoting server destroy success.
2023-05-20 01:04:28,539 INFO [xxl-job, executor TriggerCallbackThread] c.x.j.c.thread.TriggerCallbackThread [TriggerCallbackThread.java : 96] >>>>>>>>>>> xxl-job, executor callback thread destory.
2023-05-20 01:04:28,539 INFO [Thread-51] c.x.j.c.thread.TriggerCallbackThread [TriggerCallbackThread.java : 126] >>>>>>>>>>> xxl-job, executor retry callback thread destory.
2023-05-20 01:04:28,567 INFO [SpringApplicationShutdownHook] c.a.c.n.r.NacosServiceRegistry [NacosServiceRegistry.java : 94] De-registering from Nacos Server now...
2023-05-20 01:04:28,572 WARN [SpringApplicationShutdownHook] o.s.c.a.CommonAnnotationBeanPostProcessor [InitDestroyAnnotationBeanPostProcessor.java : 185] Destroy method on bean with name 'nacosAutoServiceRegistration' threw an exception: java.lang.IllegalStateException: UT015023: This Context has been already destroyed
2023-05-20 01:04:28,575 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [ServiceInfoHolder.java : 255] com.alibaba.nacos.client.naming.cache.ServiceInfoHolder do shutdown begin
2023-05-20 01:04:28,576 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [FailoverReactor.java : 140] com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin
2023-05-20 01:04:28,577 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [FailoverReactor.java : 142] com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop
2023-05-20 01:04:28,577 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [ServiceInfoHolder.java : 257] com.alibaba.nacos.client.naming.cache.ServiceInfoHolder do shutdown stop
2023-05-20 01:04:28,577 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [NamingClientProxyDelegate.java : 182] com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate do shutdown begin
2023-05-20 01:04:28,578 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [ServiceInfoUpdateService.java : 130] com.alibaba.nacos.client.naming.core.ServiceInfoUpdateService do shutdown begin
2023-05-20 01:04:28,911 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [ServiceInfoUpdateService.java : 132] com.alibaba.nacos.client.naming.core.ServiceInfoUpdateService do shutdown stop
2023-05-20 01:04:28,912 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [ServerListManager.java : 192] com.alibaba.nacos.client.naming.core.ServerListManager do shutdown begin
2023-05-20 01:04:28,913 WARN [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [NamingHttpClientManager.java : 74] [NamingHttpClientManager] Start destroying NacosRestTemplate
2023-05-20 01:04:28,913 WARN [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [NamingHttpClientManager.java : 81] [NamingHttpClientManager] Destruction of the end
2023-05-20 01:04:28,913 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [ServerListManager.java : 197] com.alibaba.nacos.client.naming.core.ServerListManager do shutdown stop
2023-05-20 01:04:28,914 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [NamingHttpClientProxy.java : 527] com.alibaba.nacos.client.naming.remote.http.NamingHttpClientProxy do shutdown begin
2023-05-20 01:04:28,914 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [BeatReactor.java : 162] com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin
2023-05-20 01:04:28,914 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [BeatReactor.java : 164] com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop
2023-05-20 01:04:28,914 WARN [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [NamingHttpClientManager.java : 74] [NamingHttpClientManager] Start destroying NacosRestTemplate
2023-05-20 01:04:28,914 WARN [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [NamingHttpClientManager.java : 81] [NamingHttpClientManager] Destruction of the end
2023-05-20 01:04:28,914 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [NamingHttpClientProxy.java : 530] com.alibaba.nacos.client.naming.remote.http.NamingHttpClientProxy do shutdown stop
2023-05-20 01:04:28,915 INFO [SpringApplicationShutdownHook] c.alibaba.nacos.common.remote.client [RpcClient.java : 453] Shutdown rpc client, set status to shutdown
2023-05-20 01:04:28,915 INFO [SpringApplicationShutdownHook] c.alibaba.nacos.common.remote.client [RpcClient.java : 455] Shutdown client event executor java.util.concurrent.ScheduledThreadPoolExecutor@20397823[Running, pool size = 2, active threads = 2, queued tasks = 0, completed tasks = 0]
2023-05-20 01:04:28,916 INFO [SpringApplicationShutdownHook] c.alibaba.nacos.common.remote.client [RpcClient.java : 592] Close current connection 1684500039323_127.0.0.1_55961
2023-05-20 01:04:28,920 INFO [nacos-grpc-client-executor-localhost-1279] c.a.n.c.r.client.grpc.GrpcClient [LoggerUtils.java : 60] [1684500039323_127.0.0.1_55961]Ignore complete event,isRunning:false,isAbandon=false
2023-05-20 01:04:28,934 INFO [SpringApplicationShutdownHook] c.a.n.c.r.client.grpc.GrpcClient [GrpcClient.java : 129] Shutdown grpc executor java.util.concurrent.ThreadPoolExecutor@389f1783[Running, pool size = 4, active threads = 0, queued tasks = 0, completed tasks = 1280]
2023-05-20 01:04:28,935 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [NamingGrpcRedoService.java : 267] Shutdown grpc redo service executor java.util.concurrent.ScheduledThreadPoolExecutor@510facf0[Running, pool size = 1, active threads = 0, queued tasks = 1, completed tasks = 2052]
2023-05-20 01:04:28,935 INFO [SpringApplicationShutdownHook] c.a.n.c.a.r.i.CredentialWatcher [CredentialWatcher.java : 105] [null] CredentialWatcher is stopped
2023-05-20 01:04:28,936 INFO [SpringApplicationShutdownHook] c.a.n.c.a.r.i.CredentialService [CredentialService.java : 99] [null] CredentialService is freed
2023-05-20 01:04:28,936 INFO [SpringApplicationShutdownHook] com.alibaba.nacos.client.naming [NamingClientProxyDelegate.java : 189] com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate do shutdown stop
Source/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log.2023-05-19.zip
Binary files differ