ludc
2023-06-25 dbe1b807e2a0e4aaa37277b69c50dd69dc42dda2
Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
已修改20个文件
已删除5个文件
已添加18个文件
2797 ■■■■■ 文件已修改
Source/UBCS-WEB/src/api/batchImport/index.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/resource/file.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue 397 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/BatchImport/index.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/FormTemplate/index.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/file/main.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/template/SetPersonnel.vue 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/process/leave-bak/detail.vue 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/process/leave-bak/form.vue 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/work/process/leave-bak/handle.vue 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingSysIntHeaderDTO.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingSysIntParamDTO.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingSystemConfigDTO.java 383 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntHeaderDTO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntInfoBseDTO.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntParamDTO.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSysIntHeader.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSysIntParam.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingSysIntHeaderVO.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingSysIntParamVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingSystemConfigVO.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntHeaderVO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntParamVO.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingManagementController.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingSysIntHeaderMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingSysIntParamMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSysIntHeaderService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSysIntParamService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemConfigService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSysIntHeaderServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSysIntParamServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingSysIntHeaderWrapper.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingSysIntParamWrapper.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingSysIntParamMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/batchImport/index.js
@@ -15,7 +15,8 @@
  return request({
    url: '/api/ubcs-code/mdmEngineController/downloadErrorFile',
    method: 'get',
    params
    params,
    responseType: 'blob'
  })
}
// å¯¼å…¥æ•°æ®å±•示
@@ -25,4 +26,37 @@
    method: 'get',
    params: {redisOid: redisOid + "-class"}
  })
}
}
// èŽ·å–åŽ†å²æ•°æ®æ­£ç¡®æ•°æ®
export const getHistoryLeftTree = (redisOid) => {
  return request({
    url: '/api/ubcs-code/mdmEngineController/gridValidata',
    method: 'get',
    params: {redisOid: redisOid + "-ok"}
  })
}
// èŽ·å–åŽ†å²ç›¸ä¼¼é¡¹
export const getHistoryResembleTable = (params) => {
  return request({
    url: '/api/ubcs-code/mdmEngineController/gridResemble',
    method: 'get',
    params
  })
}
// èŽ·å–æ¨¡æ¿
export function getFormTemplate(params) {
  return request({
    url: 'api/ubcs-code/ubcs-code/mdmEngineController/getFormDefineByTemplateOid',
    method: 'get',
    params
  })
}
// èŽ·å–å½“å‰è¡Œç›¸ä¼¼é¡¹æ•°æ®
export function getCurretnSelectedRowResemble(params) {
  return request({
    url: 'api/ubcs-code/ubcs-code/mdmEngineController/gridRowResemble',
    method: 'get',
    params
  })
}
Source/UBCS-WEB/src/api/resource/file.js
@@ -12,11 +12,12 @@
  })
}
export const remove = (oids) => {
export const remove = (fileOids,oids) => {
  return request({
    url: '/api/ubcs-resource/fileController/deleteFile',
    method: 'delete',
    params: {
      fileOids,
      oids
    }
  })
Source/UBCS-WEB/src/components/BatchImport/ShowImportData.vue
@@ -1,9 +1,10 @@
<template>
  <el-dialog
    :title="title"
    :visible="dialogVisible"
    width="1200px"
    :visible.sync="dialogVisible"
    width="1300px"
    append-to-body
    top="5vh"
  >
    <div class="flex_box">
      <div class="left" :style="{ width: leftWidth }">
@@ -25,23 +26,90 @@
        <el-tree
          v-show="isExpand"
          class="filter_tree"
          :data="data"
          :data="leftTree"
          default-expand-all
          highlight-current
          :filter-node-method="filterNode"
          @node-click="treeNodeClick"
          ref="tree"
          :props="{
            label: 'name',
          }"
        >
        </el-tree>
      </div>
      <div class="right">
        <div class="tab_box">
          <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
            <el-tab-pane label="正确数据" name="success">
              <el-table border :data="successData"></el-table>
          <el-tabs
            v-model="activeTab"
            type="card"
            @tab-click="handleClick"
            size="small"
          >
            <el-tab-pane label="有相似项" name="resemble">
              <el-table
                border
                :data="resembleData"
                style="width: 100%"
                height="400px"
                highlight-current-row
                @current-change="resembleRowChange"
              >
                <el-table-column
                  v-for="item in cloNamesList"
                  :key="item.field"
                  :prop="item.field"
                  :label="item.title"
                  :width="item.width"
                >
                </el-table-column>
              </el-table>
            </el-tab-pane>
            <el-tab-pane label="有相似项或者错误数据" name="error">
              <el-table border :data="errorData"></el-table>
            <el-tab-pane label="正确数据" name="success">
              <el-table border :data="successData" height="400px">
                <el-table-column
                  v-for="item in cloNamesList"
                  :key="item.field"
                  :prop="item.field"
                  :label="item.title"
                  :width="item.width"
                >
                </el-table-column>
              </el-table>
            </el-tab-pane>
          </el-tabs>
        </div>
        <div>
          <el-table
            border
            :data="currentSelectedResemble"
            style="width: 100%"
            height="200px"
          >
            <el-table-column
              v-for="item in resembleColumList"
              :key="item.field"
              :prop="item.field"
              :label="item.title"
              :minWidth="item.minWidth"
            >
              <template #default="{ row }">
                <span v-if="item.field === 'id'">
                  <el-link type="primary" @click="openFormTemlpate(row)">{{
                    row[item.field]
                  }}</el-link>
                </span>
                <span v-else>
                  {{ row[item.field] }}
                </span>
              </template>
            </el-table-column>
            <el-table-column
              v-show="resembleColumList.length > 0"
              prop="rowIndex"
              label="excel行数"
            ></el-table-column>
          </el-table>
        </div>
      </div>
    </div>
@@ -51,18 +119,41 @@
        <el-button size="small">取消</el-button>
      </div>
    </template>
    <FormTemplateDialog
      ref="FormTemplateDialog"
      type="detail"
      v-bind="currentSelectedResembleRow"
      :visible.sync="currentSelectedResembleRow.visible"
      title="查看详细信息"
    ></FormTemplateDialog>
  </el-dialog>
</template>
<script>
import {
  getHistorySuccessTable,
  getHistoryResembleTable,
  getFormTemplate,
  getCurretnSelectedRowResemble,
} from "../../api/batchImport/index";
import ResembleQuery from "../FormTemplate/ResembleQuery.vue";
export default {
  name: "ShowImportData",
  components: { ResembleQuery },
  props: {
    title: {
      type: String,
      default: "历史数据导入",
    },
    visible: false,
    leftTree: {
      type: Array,
      default: () => [],
    },
    redisOid: {
      type: String,
      default: "",
    },
  },
  computed: {
    dialogVisible: {
@@ -193,15 +284,26 @@
          ],
        },
      ],
      resembleData: [],
      successData: [],
      errorData: [],
      activeTab: "resemble",
      cloNamesList: [],
      codeClassifyOid: "",
      resembleColumList: [],
      currentSelectedResemble: [],
      currentSelectedResembleRow: {
        templateOid: "",
        codeClassifyOid: "",
        rowOid: "",
        formTemplateVisible: false,
      },
    };
  },
  methods: {
    filterNode(value, data) {
      if (!value) return true;
      return data.label.indexOf(value) !== -1;
      return data.name.indexOf(value) !== -1;
    },
    hideTree() {
      if (this.isExpand) {
@@ -210,6 +312,276 @@
        this.leftWidth = "200px";
      }
      this.isExpand = !this.isExpand;
    },
    treeNodeClick(data) {
      this.codeClassifyOid = data.codeclassifyoid;
      this.cloNamesList = data.cloNamesList;
      getHistorySuccessTable(this.redisOid).then((res) => {
        this.successData = res.data
        // this.successData = [
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH007",
        //     caigouwl: "是",
        //     oid: "433DFA8E-4445-18F4-AC95-85E7EE1C92CF",
        //     kucunwl: "是",
        //     tuhao: "TH006",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺母",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试4",
        //     jiliangdw: "个",
        //     oldcode: "z0004",
        //     id: "0201020013",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH006",
        //     caigouwl: "是",
        //     oid: "E94E3320-841F-AE87-1D56-D6B3398D0FFC",
        //     kucunwl: "是",
        //     tuhao: "TH005",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺母",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试3",
        //     jiliangdw: "个",
        //     oldcode: "z0003",
        //     id: "0201020012",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH003",
        //     caigouwl: "是",
        //     oid: "D2E0A166-A774-BE6F-A9C7-3277467CE8EC",
        //     kucunwl: "是",
        //     tuhao: "TH003",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺母",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试2",
        //     jiliangdw: "个",
        //     oldcode: "z0002",
        //     id: "0201020011",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH002",
        //     caigouwl: "是",
        //     oid: "291CD01A-F18D-2D95-5291-D2C80ED57CC8",
        //     kucunwl: "是",
        //     tuhao: "TH002",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺母",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试1",
        //     jiliangdw: "个",
        //     oldcode: "z0001",
        //     id: "0201020010",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH001",
        //     caigouwl: "是",
        //     oid: "FED83315-F2B4-C603-2AC2-11B0DF3029A6",
        //     kucunwl: "是",
        //     tuhao: "TH001",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺栓",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试6",
        //     jiliangdw: "个",
        //     oldcode: "z0006",
        //     id: "0201010019",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH005",
        //     caigouwl: "是",
        //     oid: "3E120284-8EC2-9BF4-D1AB-579380DFA085",
        //     kucunwl: "是",
        //     tuhao: "TH005",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺栓",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试5",
        //     jiliangdw: "个",
        //     oldcode: "z0005",
        //     id: "0201010018",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH004",
        //     caigouwl: "是",
        //     oid: "2EB3B122-2FE4-A236-53F2-9B67E40332AC",
        //     kucunwl: "是",
        //     tuhao: "TH004",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺栓",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试4",
        //     jiliangdw: "个",
        //     oldcode: "z0004",
        //     id: "0201010017",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH009",
        //     caigouwl: "是",
        //     oid: "8940A341-8041-E031-6FE1-A18526C62DE9",
        //     kucunwl: "是",
        //     tuhao: "TH008",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺母",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试6",
        //     jiliangdw: "个",
        //     oldcode: "z0006",
        //     id: "0201020015",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH008",
        //     caigouwl: "是",
        //     oid: "936CBC1E-2FD0-5CD7-C331-64B86204FD78",
        //     kucunwl: "是",
        //     tuhao: "TH007",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺母",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试5",
        //     jiliangdw: "个",
        //     oldcode: "z0005",
        //     id: "0201020014",
        //   },
        // ];
      });
      getHistoryResembleTable({
        codeClassifyOid: data.codeClassifyOid,
        redisOid: this.redisOid + "-resemble",
      }).then((res) => {
        console.log(res);
        this.resembleData = res.data
        // this.resembleData = [
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH007",
        //     caigouwl: "是",
        //     oid: "FC2F0D9F-8B2E-5A19-3BDE-22107F373EB3",
        //     kucunwl: "是",
        //     tuhao: "TH006",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺母",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试4",
        //     jiliangdw: "个",
        //     oldcode: "z0004",
        //     id: "0201020013",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH007",
        //     caigouwl: "是",
        //     oid: "B92CFF46-1D46-E680-66C4-33A3ABE77A6C",
        //     kucunwl: "是",
        //     tuhao: "TH005",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺母",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试3",
        //     jiliangdw: "个",
        //     oldcode: "z0003",
        //     id: "0201020012",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH15",
        //     caigouwl: "是",
        //     oid: "B383C30E-D201-01F2-89EE-6F751EFA0AA1",
        //     kucunwl: "是",
        //     tuhao: "TH008",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺母",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试6",
        //     jiliangdw: "个",
        //     oldcode: "z0006",
        //     id: "0201020015",
        //   },
        //   {
        //     xiaoshouwl: "是",
        //     xinghaoguige: "XH17",
        //     caigouwl: "是",
        //     oid: "1C379116-F27B-3F20-DFC3-74A39B87E505",
        //     kucunwl: "是",
        //     tuhao: "TH007",
        //     codeSecLengthField: "6#4",
        //     codeclsfid: "紧固件#螺母",
        //     materialtype: "材料",
        //     chukufangshi: "先进先出",
        //     hesuanfenlei: "原材料",
        //     name: "测试5",
        //     jiliangdw: "个",
        //     oldcode: "z0005",
        //     id: "0201020014",
        //   },
        // ];
      });
      getFormTemplate({
        templateOid: data.oid,
        codeClassifyOid: data.codeClassifyOid,
      }).then((res) => {
        this.resembleColumList = res.data.resembleTableVO.cols[0];
      });
    },
    resembleRowChange(row) {
      getCurretnSelectedRowResemble({
        redisOid: this.redisOid + "-resemble-data",
        dataOid: row.oid,
      }).then((res) => {
        this.currentSelectedResemble = res.data
        // this.currentSelectedResemble = [
        //   {
        //     xinghaoguige: "XH007",
        //     codetemplateoid: "f441b131-5ea0-4672-ab74-735b11161928",
        //     rowIndex: "9",
        //     id: "0201020012",
        //     oid: "B92CFF46-1D46-E680-66C4-33A3ABE77A6C",
        //   },
        // ];
      });
    },
    openFormTemlpate(row) {
      this.currentSelectedResembleRow = {
        visible: true,
        templateOid: row.codetemplateoid,
        codeClassifyOid: this.codeClassifyOid,
        rowOid: row.rowOid,
      }
    },
  },
  watch: {
@@ -234,5 +606,10 @@
      overflow-y: scroll;
    }
  }
  .right {
    margin-left: 20px;
    margin-top: 30px;
    width: 1000px;
  }
}
</style>
Source/UBCS-WEB/src/components/BatchImport/index.vue
@@ -29,6 +29,7 @@
      :headers="uploadHeaders"
      :on-success="onSuccess"
      :show-file-list="false"
      :on-change="uploadChange"
      :data="{
        codeClassifyOid: this.codeClassifyOid,
        classifyAttr: this.classifyAttr,
@@ -46,9 +47,14 @@
        :loading="downloadLoading"
        >下载导入模板</el-button
      >
      <el-button size="small" @click="visible = false">关闭</el-button>
      <el-button size="small" @click="dialogVisible = false">关闭</el-button>
    </template>
    <ShowImportData :visible="showVisible" v-if="showVisible"></ShowImportData>
    <ShowImportData
      :visible.sync="showVisible"
      v-if="dialogVisible"
      :leftTree="leftTree"
      :redisOid="redisOid"
    ></ShowImportData>
  </el-dialog>
</template>
@@ -57,6 +63,7 @@
import {
  downloadHistoryImportTemplate,
  downloadErrorFile,
  getHistoryLeftTree
} from "../../api/batchImport/index";
import { getToken } from "@/util/auth";
export default {
@@ -86,6 +93,9 @@
      uploadParams: {},
      downloadLoading: false,
      showVisible: false,
      leftTree: [],
      redisOid:'',
      pageLoading: null
    };
  },
  computed: {
@@ -139,19 +149,47 @@
        codeClassifyOid: this.codeClassifyOid,
      })
        .then((res) => {
          this.downloadLoading = false;
          this.$utilFunc.downloadFileByBlob(res.data, "历史数据导入模板.xls");
          this.downloadLoading = false;
        })
        .catch(() => {
          this.downloadLoading = false;
        });
    },
    onSuccess(res) {
      if (res.code === 400) {
        this.$message.error(`${res.msg},请下载错误信息进行查看!`);
      let fileName = res.data.filePath.split('/').pop()
      if (res.data.fileOid) {
        this.$message.error("请下载错误信息文件进行查看!");
        downloadErrorFile({ uuid: res.data.fileOid }).then((res2) => {
          this.$utilFunc.downloadFileByBlob(res2.data, fileName);
        });
      }
      downloadErrorFile({ uuid: res.data.fileOid });
      if (res.data.redisUuid) {
        this.redisOid = res.data.redisUuid
        getHistoryLeftTree(res.data.redisUuid).then(res => {
          this.leftTree = res.obj.map(item => {
            return {
              ...item.codeClassifyTemplateVO,
              cloNamesList: item.cloNamesList
            }
          })
          this.showVisible = true
        })
      }
    },
    uploadChange(file) {
      if (file.status === 'ready') {
        this.pageLoading = this.$loading({
          lock: true,
          text: '文件上传中',
          spinner: 'el-icon-loading',
          background: 'rgba(0, 0, 0, 0.7)'
        });
      }
      if (file.status === 'success' || file.status === 'error') {
        this.pageLoading.close()
      }
    }
  },
  watch: {
    visible: {
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
@@ -28,7 +28,7 @@
          @submit="EditSumbit"
        ></FormTemplateDialog>
        <el-button plain size="small" type="primary">批量导入申请</el-button>
        <el-button plain size="small" type="primary">历史数据导入</el-button>
        <el-button plain size="small" type="primary" @click="historyVisible = true">历史数据导入</el-button>
        <el-button plain size="small" type="primary">批量申请编码</el-button>
        <el-button plain size="small" type="primary">批量发布</el-button>
        <el-button plain size="small" type="primary">查看流程历史</el-button>
@@ -111,6 +111,7 @@
        @current-change="handleCurrentChange">
      </el-pagination>
    </div>
    <historyImport :visible.sync="historyVisible" :codeClassifyOid="codeClassifyOid" type="historyImport"></historyImport>
  </basic-container>
</template>
<script>
@@ -119,11 +120,13 @@
import integrationTransfer from '@/views/integration/integrationTransfer'
import SetPersonnel from '@/components/template/SetPersonnel'
import ResembleQueryDialog from "@/components/FormTemplate/ResembleQueryDialog.vue";
import historyImport from '../BatchImport/index.vue'
export default {
  components: {
    integrationTransfer,
    SetPersonnel,
    ResembleQueryDialog
    ResembleQueryDialog,
    historyImport
  },
  name: "Crud.vue",
  props: {
@@ -208,7 +211,8 @@
      tableHeadData: [],
      items: {},
      seniorQueryColumns: [],
      selectRow: []
      selectRow: [],
      historyVisible: false
    }
  },
  computed: {},
Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -29,7 +29,7 @@
      "
    >
      <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
        <el-tab-pane label="码值申请" name="codeApply">
        <el-tab-pane label="码值申请" name="codeApply" v-if="showCodeApply">
          <FormTempalte
            v-bind="$attrs"
            :type="type"
@@ -57,18 +57,25 @@
        </el-tab-pane>
      </el-tabs>
    </div>
    <div class="avue-dialog__footer" v-if="type !== 'detail'">
      <el-button @click="close()">取 æ¶ˆ</el-button>
      <el-button @click="submit()" type="primary" :loading="submitBtnLoading">{{
        submitText
      }}</el-button>
      <el-button
        @click="resembleQuerySubmit"
        type="primary"
        v-if="showResembleQuery"
        >相似像查询</el-button
      >
    </div>
    <template #footer>
      <div class="" v-if="type !== 'detail'">
        <el-button @click="close()" size="small">取 æ¶ˆ</el-button>
        <el-button
          @click="submit()"
          type="primary"
          :loading="submitBtnLoading"
          size="small"
          >{{ submitText }}</el-button
        >
        <el-button
          @click="resembleQuerySubmit"
          type="primary"
          size="small"
          v-if="showResembleQuery"
          >相似像查询</el-button
        >
      </div>
    </template>
  </el-dialog>
</template>
@@ -236,6 +243,7 @@
    // èŽ·å–ç å€¼ç”³è¯·æ•°æ®
    getCodeRule() {
      getCodeRule({ codeClassifyOid: this.codeClassifyOid }).then((res) => {
        console.log(res, "resresresresres");
        if (res.data && res.data.code === 200) {
          const typeList = [
            "codefixedsec",
@@ -244,8 +252,9 @@
            "coderefersec",
          ];
          this.secVOList = (res.data.data.secVOList || []).filter((item) =>
            typeList.includes(item)
            typeList.includes(item.secType)
          );
          console.log(this.secVOList, "this.secVOListthis.secVOList");
          this.$nextTick(() => {
            if (this.secVOList.length > 0 && this.type === "add") {
              this.showCodeApply = true;
@@ -301,19 +310,21 @@
        this.form
      );
      if (resembleQueryList.length === 0) {
        let resForm = {}
        const { defaultValue, formValue } = this.getDefaultValueAndFormValues(this.form)
        resForm.data = formValue
        resForm = Object.assign({}, resForm, defaultValue)
        resForm.secDTOList = []
        let resForm = {};
        const { defaultValue, formValue } = this.getDefaultValueAndFormValues(
          this.form
        );
        resForm.data = formValue;
        resForm = Object.assign({}, resForm, defaultValue);
        resForm.secDTOList = [];
        for (const key in this.codeApplyForm) {
        if (Object.hasOwnProperty.call(this.codeApplyForm, key)) {
          const value = this.codeApplyForm[key];
          if (value) {
            resForm.secDTOList.push({[key]: value})
          if (Object.hasOwnProperty.call(this.codeApplyForm, key)) {
            const value = this.codeApplyForm[key];
            if (value) {
              resForm.secDTOList.push({ [key]: value });
            }
          }
        }
      }
        this.$emit("submit", resForm);
      } else {
        this.$confirm(
Source/UBCS-WEB/src/components/file/main.vue
@@ -353,17 +353,13 @@
      done();
    },
    uploadAfter(res, done, loading, column) {
      if(res.success){
        this.attachBox = false;
        this.$message.success('文件上传成功')
      }else{
        this.$message.error(res.msg);
      }
      this.attachBox = false;
      this.$message.success('文件上传成功')
      this.refreshChange();
      done();
    },
    uploadError(error, column) {
      this.$message.error('上传文件出现了异常')
      this.$message.error(error || '上传文件出现了异常')
    },
    handleDownload(row) {
      //window.open(`${row.link}`);
@@ -384,7 +380,7 @@
        type: "warning"
      })
        .then(() => {
          return remove(row.oid);
          return remove(row.oid,row.oid);
        })
        .then(() => {
          this.onLoad(this.page);
@@ -405,7 +401,7 @@
        type: "warning"
      })
        .then(() => {
          return remove(this.oids);
          return remove(this.oids,this.oids);
        })
        .then(() => {
          this.onLoad(this.page);
@@ -461,7 +457,7 @@
      getList(page.currentPage, page.pageSize, Object.assign(params,this.params, query,this.query)).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        if(data && data.records.length>0 && this.options.fileDocClassifyCombox){
        if(this.options.fileDocClassifyCombox){
          this.data = data.records.map(item => {
            if(validatenull(item.fileDocClassifyName)&& !validatenull(item.fileDocClassify)){
              item.fileDocClassifyName = this.options.fileDocClassifyCombox[item.fileDocClassify] || '';
@@ -470,8 +466,10 @@
              ...item
            }
          })
        }else{
          this.data = data.records;
        }
        //this.data = data.records;
        this.loading = false;
        this.selectionClear();
      }).catch(error=>{
Source/UBCS-WEB/src/components/template/SetPersonnel.vue
@@ -73,14 +73,22 @@
    watch: {
        visible(n) {
            this.dialogVisible = n;
            if(n){
              this.apiInit()
              this.apiDict()
            if (n) {
                this.apiInit()
                this.apiDict()
            }
        },
        dialogVisible(n) {
            this.$emit('update:visible', n)
        },
        users:{
            handler(val){
                console.log('监听users',val)
                this.collectParam.flowTaskUsers = val
            },
            deep:true,
            immediate:true
        }
    },
    data() {
        return {
@@ -125,9 +133,10 @@
                const { modelKey, templateId, modelName } = response.data.data.flow
                let flowTaskUsers = response.data.data.user
                this.collectParam = { modelKey, templateId, flowTaskUsers: flowTaskUsers }
                this.users = response.data.data.user
                console.log(this.collectParam)
                this.saveParam = { ...this.saveParam, modelKey, templateId, modelName }
                this.handleClickTag(this.tags[0])
                if (this.tags.length !== 0) this.handleClickTag(this.tags[0])
            }
        },
        async apiDict() {
@@ -154,12 +163,11 @@
                this.collectParam = { ...this.collectParam, name: value }
                console.log(this.collectParam)
                const response = await personnelCollect(this.collectParam)
                Console.log(response)
                console.log(response)
                if (response.status === 200) {
                    this.$nextTick(() => {
                        this.apiInit()
                    })
                    console.log(response)
                }
            }).catch(() => {
@@ -179,35 +187,60 @@
        },
        async apiSave() {
            try {
                const response = await personnelSave(this.saveParam)
                if (response.status === 200) {
                    console.log(response)
                const len = this.collectParam.flowTaskUsers.length
                console.log(this.collectParam.flowTaskUsers)
                console.log(len == 0)
                console.log(len != this.initFrom.length)
                if (len == 0 && len != this.initFrom.length) {
                    this.$message({
                        type: 'success',
                        message: response.data.msg
                        type: "error",
                        message: "请选择节点!"
                    });
                    this.done()
                } else {
                    console.log('baoc')
                    const response = await personnelSave({ ...this.saveParam, flowTaskUsers: this.collectParam.flowTaskUsers })
                    if (response.status === 200) {
                        console.log(response)
                        this.$message({
                            type: 'success',
                            message: response.data.msg
                        });
                        this.done()
                    }
                }
            } catch {
                console.error('接口调用失败')
            }
        },
        handleClickTag(event) {
            console.log(event)
            const flowTaskUsers = event.flowTaskUsers//collet.flowTaskUsers
            let tasks =  this.collectParam.flowTaskUsers;//user
            for(let i=0;i<tasks.length;i++){
                let thisFlowTaskUsers = tasks[i];
                console.log('thisFlowTaskUsers',thisFlowTaskUsers)
                for(let j=0;j<flowTaskUsers.length;j++){
                    let thisFflowTaskUsers = flowTaskUsers[j];
                    if(thisFlowTaskUsers.taskId==thisFflowTaskUsers.taskId){
                        thisFlowTaskUsers['userName']=thisFflowTaskUsers.userName;
                        thisFlowTaskUsers['userId']=thisFflowTaskUsers.userId;
            console.log(event.flowTaskUsers)
            console.log(this.collectParam.flowTaskUsers)
            let flowTaskUsers = this.collectParam.flowTaskUsers
            this.collectParam.flowTaskUsers = flowTaskUsers.map((item, index) => {
                for (let i = 0; i < event.flowTaskUsers.length; i++) {
                    if (item.taskId == event.flowTaskUsers[i].taskId) {
                        item['userName'] = event.flowTaskUsers[i]['userName']
                        item['userId'] = event.flowTaskUsers[i]['userId']
                    }
                }
            }
            console.log(this.collectParam)
                return item
            })
            this.users =  this.collectParam.flowTaskUsers
            // const flowTaskUsers = event.flowTaskUsers//collet.flowTaskUsers
            // let tasks = this.collectParam.flowTaskUsers;//user
            // for (let i = 0; i < tasks.length; i++) {
            //     let thisFlowTaskUsers = tasks[i];
            //     for (let j = 0; j < flowTaskUsers.length; j++) {
            //         let thisFflowTaskUsers = flowTaskUsers[j];
            //         if (thisFlowTaskUsers.taskId == thisFflowTaskUsers.taskId) {
            //             thisFlowTaskUsers['userName'] = thisFflowTaskUsers.userName;
            //             thisFlowTaskUsers['userId'] = thisFflowTaskUsers.userId;
            //         }
            //     }
            // }
            // this.collectParam.flowTaskUsers = {...this.collectParam.flowTaskUsers,userId,userName}
        },
        handleCloseTag(event) {
            console.log(event)
@@ -216,9 +249,10 @@
        handleSelect(event, index) {
            const res = this.typeName.find(item => item.userId === event)
            const { userName } = res
            let users = { ... this.collectParam.flowTaskUsers[index], userName }
            console.log(users)
            this.users[index] = users
            console.log(this.users)
            this.$set(this.users, index, { ... this.collectParam.flowTaskUsers[index], userName })
            // this.users[index] = { ... this.collectParam.flowTaskUsers[index], userName }
            console.log(this.users)
        },
        done() {
            this.dialogVisible = false
Source/UBCS-WEB/src/views/work/process/leave-bak/detail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,107 @@
<template>
  <basic-container>
    <el-form ref="form" :model="form" label-width="80px">
      <el-row type="flex" class="row-bg" justify="end">
        <el-form-item>
          <el-button @click="handleCancel">关闭</el-button>
        </el-form-item>
      </el-row>
      <el-card shadow="hover">
        <div slot="header">
          <span>审批信息</span>
        </div>
        <el-form-item label="申请人">
          <el-input :disabled="true" v-model="form.flow.assigneeName" />
        </el-form-item>
        <el-row>
          <el-col :span="12">
            <el-form-item label="开始时间">
              <el-input :disabled="true" v-model="form.startTime" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="结束时间">
              <el-input :disabled="true" v-model="form.endTime" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-form-item label="请假理由">
          <el-input :disabled="true" type="textarea" v-model="form.reason" />
        </el-form-item>
      </el-card>
      <el-card shadow="hover">
        <div slot="header">
          <span>流程信息</span>
        </div>
        <el-row type="flex" class="row-bg">
          <el-timeline>
            <el-timeline-item :key="flow.id" :timestamp="flow.createTime" v-for="flow in flowList" placement="top">
              <el-card shadow="hover">
                <p>{{flow.assigneeName}} åœ¨ [{{flow.createTime}}] å¼€å§‹å¤„理 [{{flow.historyActivityName}}] çŽ¯èŠ‚</p>
                <p v-if="flow.historyActivityDurationTime!==''">任务历时 [{{flow.historyActivityDurationTime}}]</p>
                <p v-if="flow.comment!==''">批复意见: [{{flow.comment}}]</p>
                <p v-if="flow.endTime!==''">结束时间: [{{flow.endTime}}]</p>
              </el-card>
            </el-timeline-item>
          </el-timeline>
        </el-row>
      </el-card>
      <el-card shadow="hover">
        <div slot="header">
          <span>流程跟踪</span>
        </div>
        <el-row class="row-bg">
          <flow-design :is-display="true" :process-instance-id="processInstanceId"></flow-design>
        </el-row>
      </el-card>
    </el-form>
  </basic-container>
</template>
<script>
  import {historyFlowList, leaveDetail} from "@/api/work/process";
  export default {
    data() {
      return {
        businessId: '',
        processInstanceId: '',
        src: '',
        flowList: [],
        form: {
          flow:{
            assigneeName:'',
          },
          startTime: '',
          endTime: '',
          reason: '',
        }
      }
    },
    created() {
      this.init();
    },
    methods: {
      init() {
        this.processInstanceId = this.$route.params.processInstanceId;
        this.businessId = this.$route.params.businessId;
        historyFlowList(this.processInstanceId).then(res => {
          const data = res.data;
          if (data.success) {
            this.flowList = data.data;
          }
        })
        leaveDetail(this.businessId).then(res => {
          const data = res.data;
          if (data.success) {
            this.form = data.data;
          }
        })
      },
      handleCancel() {
        this.$router.$avueRouter.closeTag();
        this.$router.push({path: `/work/start`});
      }
    }
  }
</script>
Source/UBCS-WEB/src/views/work/process/leave-bak/form.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,112 @@
<template>
  <div>
    <basic-container>
      <avue-form :option="option" v-model="form" @submit="handleSubmit"/>
    </basic-container>
    <basic-container>
      <flow-design :is-display="true" :process-definition-id="processDefinitionId"></flow-design>
    </basic-container>
  </div>
</template>
<script>
  import {leaveProcess} from "@/api/work/process";
  export default {
    data() {
      return {
        processDefinitionId: '',
        form: {},
        option: {
          group: [
            {
              icon: 'el-icon-info',
              label: '请假基础信息',
              prop: 'group1',
              column: [
                {
                  label: '审批人员',
                  prop: 'taskUser',
                  type: 'select',
                  dicUrl: `/api/ubcs-user/user-list`,
                  props: {
                    label: "account",
                    value: "id"
                  },
                  span: 24,
                  rules: [
                    {
                      required: true,
                      message: '请选择审批人员',
                      trigger: 'blur'
                    }
                  ]
                },
                {
                  label: '开始时间',
                  prop: 'startTime',
                  type: 'datetime',
                  valueFormat: 'yyyy-MM-dd HH:mm:ss',
                  rules: [
                    {
                      required: true,
                      message: '请选择开始时间',
                      trigger: 'blur'
                    }
                  ]
                },
                {
                  label: '结束时间',
                  prop: 'endTime',
                  type: 'datetime',
                  valueFormat: 'yyyy-MM-dd HH:mm:ss',
                  rules: [
                    {
                      required: true,
                      message: '请选择结束时间',
                      trigger: 'blur'
                    }
                  ]
                },
                {
                  label: '请假理由',
                  prop: 'reason',
                  type: 'textarea',
                  span: 24,
                  rules: [
                    {
                      required: true,
                      message: '请输入请假理由',
                      trigger: 'blur'
                    }
                  ]
                },
              ]
            },
          ],
        }
      }
    },
    created() {
      this.processDefinitionId = this.$route.params.processDefinitionId;
    },
    methods: {
      handleSubmit() {
        const params = {
          processDefinitionId: this.$route.params.processDefinitionId,
          ...this.form,
        };
        leaveProcess(params).then(resp => {
          const data = resp.data;
          if (data.success) {
            this.$message.success(data.msg);
            this.$router.$avueRouter.closeTag();
            this.$router.push({path: `/work/start`});
          } else {
            this.$message.error(data.msg || '提交失败');
          }
        });
      }
    }
  }
</script>
Source/UBCS-WEB/src/views/work/process/leave-bak/handle.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,169 @@
<template>
  <basic-container>
    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
      <el-row type="flex" class="row-bg" justify="end">
        <el-form-item>
          <el-button type="primary" @click="handleAgree">同意</el-button>
          <el-button type="danger" @click="handleDisagree">驳回</el-button>
          <el-button @click="handleCancel">关闭</el-button>
        </el-form-item>
      </el-row>
      <el-card shadow="hover">
        <div slot="header">
          <span>审批信息</span>
        </div>
        <el-form-item label="申请人">
          <el-input :disabled="true" v-model="form.flow.assigneeName"/>
        </el-form-item>
        <el-row>
          <el-col :span="12">
            <el-form-item label="开始时间">
              <el-input :disabled="true" v-model="form.startTime"/>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="结束时间">
              <el-input :disabled="true" v-model="form.endTime"/>
            </el-form-item>
          </el-col>
        </el-row>
        <el-form-item label="请假理由">
          <el-input :disabled="true" type="textarea" v-model="form.reason"/>
        </el-form-item>
        <el-form-item label="批复意见">
          <el-input type="textarea" v-model="form.comment"/>
        </el-form-item>
      </el-card>
      <el-card shadow="hover">
        <div slot="header">
          <span>流程信息</span>
        </div>
        <el-row type="flex" class="row-bg">
          <el-timeline>
            <el-timeline-item :key="flow.id" :timestamp="flow.createTime" v-for="flow in flowList" placement="top">
              <el-card shadow="hover">
                <p>{{flow.assigneeName}} åœ¨ [{{flow.createTime}}] å¼€å§‹å¤„理 [{{flow.historyActivityName}}] çŽ¯èŠ‚</p>
                <p v-if="flow.historyActivityDurationTime!==''">任务历时 [{{flow.historyActivityDurationTime}}]</p>
                <p v-if="flow.comment!==''">批复意见: [{{flow.comment}}]</p>
                <p v-if="flow.endTime!==''">结束时间: [{{flow.endTime}}]</p>
              </el-card>
            </el-timeline-item>
          </el-timeline>
        </el-row>
      </el-card>
      <el-card shadow="hover">
        <div slot="header">
          <span>流程跟踪</span>
        </div>
        <el-row class="row-bg">
          <flow-design :is-display="true" :process-instance-id="processInstanceId"></flow-design>
        </el-row>
      </el-card>
    </el-form>
  </basic-container>
</template>
<script>
  import {historyFlowList, leaveDetail} from "@/api/work/process";
  import {completeTask} from "@/api/work/work";
  export default {
    data() {
      return {
        taskId: '',
        businessId: '',
        processInstanceId: '',
        src: '',
        flowList: [],
        form: {
          flow: {
            assigneeName: '',
          },
          startTime: '',
          endTime: '',
          reason: '',
          comment: '',
        },
      }
    },
    created() {
      this.init();
    },
    beforeRouteUpdate(to, from, next) {
      // åœ¨å½“前路由改变,但是该组件被复用时调用
      // ä¸¾ä¾‹æ¥è¯´ï¼Œå¯¹äºŽä¸€ä¸ªå¸¦æœ‰åŠ¨æ€å‚æ•°çš„è·¯å¾„ /foo/:id,在 /foo/1 å’Œ /foo/2 ä¹‹é—´è·³è½¬çš„æ—¶å€™
      // ç”±äºŽä¼šæ¸²æŸ“同样的 Foo ç»„件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用
      // å¯ä»¥è®¿é—®ç»„件实例 `this`
      if (to.fullPath !== from.fullPath) {
        next();
        this.init();
      }
    },
    methods: {
      init() {
        this.taskId = this.$route.params.taskId;
        this.processInstanceId = this.$route.params.processInstanceId;
        this.businessId = this.$route.params.businessId;
        historyFlowList(this.processInstanceId).then(res => {
          const data = res.data;
          if (data.success) {
            this.flowList = data.data;
          }
        })
        leaveDetail(this.businessId).then(res => {
          const data = res.data;
          if (data.success) {
            this.form = data.data;
          }
        })
      },
      handleAgree() {
        if (!this.form.comment) {
          this.$message.warning('请先填写批复意见');
          return;
        }
        const params = {
          taskId: this.taskId,
          processInstanceId: this.processInstanceId,
          flag: 'ok',
          comment: this.form.comment,
        };
        completeTask(params).then(res => {
          const data = res.data;
          if (data.success) {
            this.$message.success(data.msg);
            this.$router.$avueRouter.closeTag();
            this.$router.push({path: `/work/start`});
          } else {
            this.$message.error(data.msg || '提交失败');
          }
        })
      },
      handleDisagree() {
        if (!this.form.comment) {
          this.$message.warning('请先填写批复意见');
          return;
        }
        const params = {
          taskId: this.taskId,
          processInstanceId: this.processInstanceId,
          comment: this.form.comment,
        };
        completeTask(params).then(res => {
          const data = res.data;
          if (data.success) {
            this.$message.success(data.msg);
            this.$router.$avueRouter.closeTag();
            this.$router.push({path: `/work/start`});
          } else {
            this.$message.error(data.msg || '提交失败');
          }
        })
      },
      handleCancel() {
        this.$router.$avueRouter.closeTag();
        this.$router.push({path: `/work/start`});
      }
    }
  }
</script>
Source/UBCS-WEB/vue.config.js
@@ -30,7 +30,6 @@
        // target: 'http://192.168.1.51:37000',
        //target: 'http://192.168.1.46:37000',
        // target: 'http://dev.vci-tech.com:37000',
        // target: 'http://192.168.1.51:37000/',
        // target: 'http://192.168.1.104:37000',
        // target: 'http://192.168.1.63:37000',
        //target: 'http://192.168.3.7:37000',
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingSysIntHeaderDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
package com.vci.ubcs.code.dto;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象
 *
 * @author xiejun
 * @date 2023-06-21
 */
@Data
public class DockingSysIntHeaderDTO extends BaseModel {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707117695864945L;
    /**
     * SysIntInfoDO çš„oid
     */
    private String infoOid;
    /**
     * å‚æ•°key
     */
    private String headerKey;
    /**
     * å‚æ•°value
     */
    private String headerValue;
    /**
     * æ˜¯å¦ä½¿ç”¨
     */
    private String usedFlag;
    /***
     * æ˜¯å¦ä½¿ç”¨æ˜¾ç¤ºæ–‡æœ¬
     */
    private String usedFlagText;
    @Override
    public String toString() {
        return "DockingSysIntHeaderDTO{" +
            "infoOid='" + infoOid + '\'' +
            ", headerKey='" + headerKey + '\'' +
            ", headerValue='" + headerValue + '\'' +
            ", usedFlag='" + usedFlag + '\'' +
            ", usedFlagText='" + usedFlagText + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingSysIntParamDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
package com.vci.ubcs.code.dto;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证数据传输对象
 *
 * @author weidy
 * @date 2022-04-11
 */
@Data
public class DockingSysIntParamDTO extends BaseModel {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707120661255093L;
    /**
     * SysIntInfoDO çš„oid
     */
    private String infoOid;
    /**
     * å‚æ•°key
     */
    private String paramkey;
    /**
     * å‚æ•°value
     */
    private String paramvalue;
    /**
     * æ˜¯å¦ä½¿ç”¨
     */
    private String usedflag;
    /***
     * æ˜¯å¦ä½¿ç”¨æ˜¾ç¤ºæ–‡æœ¬
     */
    private String usedFlagText;
    @Override
    public String toString() {
        return "DockingSysIntParamDTO{" +
            "infoOid='" + infoOid + '\'' +
            ", paramkey='" + paramkey + '\'' +
            ", paramvalue='" + paramvalue + '\'' +
            ", usedflag='" + usedflag + '\'' +
            ", usedFlagText='" + usedFlagText + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/DockingSystemConfigDTO.java
@@ -1,9 +1,10 @@
package com.vci.ubcs.code.dto;
import com.vci.ubcs.code.vo.pagemodel.SysIntHeaderVO;
import com.vci.ubcs.code.vo.pagemodel.SysIntParamVO;
import com.vci.ubcs.code.vo.pagemodel.DockingSysIntHeaderVO;
import com.vci.ubcs.code.vo.pagemodel.DockingSysIntParamVO;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
import java.util.List;
@@ -13,6 +14,7 @@
 * @author lihang
 * @date 2022-03-07
 */
@Data
public class DockingSystemConfigDTO extends BaseModel {
    /**
@@ -245,381 +247,12 @@
    /***
     * å‚数信息对象
     */
    private List<SysIntParamVO> sysIntParamVOs;
    private List<DockingSysIntParamDTO> sysIntParamDTOS;
    /***
     * header信息对象
     */
    private List<SysIntHeaderVO> sysIntHeaderVOs;
    public String getAuthorityOid() {
        return authorityOid;
    }
    public void setAuthorityOid(String authorityOid) {
        this.authorityOid = authorityOid;
    }
    public String getAuthorityOidName() {
        return authorityOidName;
    }
    public void setAuthorityOidName(String authorityOidName) {
        this.authorityOidName = authorityOidName;
    }
    public String getAuthorityType() {
        return authorityType;
    }
    public void setAuthorityType(String authorityType) {
        this.authorityType = authorityType;
    }
    public String getAuthorityTypeText() {
        return authorityTypeText;
    }
    public void setAuthorityTypeText(String authorityTypeText) {
        this.authorityTypeText = authorityTypeText;
    }
    public String getUserAccount() {
        return userAccount;
    }
    public void setUserAccount(String userAccount) {
        this.userAccount = userAccount;
    }
    public String getUserCode() {
        return userCode;
    }
    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }
    public String getToken() {
        return token;
    }
    public void setToken(String token) {
        this.token = token;
    }
    public String getInterfaceFunction() {
        return interfaceFunction;
    }
    public void setInterfaceFunction(String interfaceFunction) {
        this.interfaceFunction = interfaceFunction;
    }
    @Override
    public String getDescription() {
        return description;
    }
    @Override
    public void setDescription(String description) {
        this.description = description;
    }
    public String getInterfaceType() {
        return interfaceType;
    }
    public void setInterfaceType(String interfaceType) {
        this.interfaceType = interfaceType;
    }
    public String getInterfaceTypeText() {
        return interfaceTypeText;
    }
    public void setInterfaceTypeText(String interfaceTypeText) {
        this.interfaceTypeText = interfaceTypeText;
    }
    public String getParamType() {
        return paramType;
    }
    public void setParamType(String paramType) {
        this.paramType = paramType;
    }
    public String getParamTypeText() {
        return paramTypeText;
    }
    public void setParamTypeText(String paramTypeText) {
        this.paramTypeText = paramTypeText;
    }
    public String getRequestMethod() {
        return requestMethod;
    }
    public void setRequestMethod(String requestMethod) {
        this.requestMethod = requestMethod;
    }
    public String getRequestMethodText() {
        return requestMethodText;
    }
    public void setRequestMethodText(String requestMethodText) {
        this.requestMethodText = requestMethodText;
    }
    public String getClassifyOid() {
        return classifyOid;
    }
    public void setClassifyOid(String classifyOid) {
        this.classifyOid = classifyOid;
    }
    public String getUsedFlag() {
        return usedFlag;
    }
    public void setUsedFlag(String usedFlag) {
        this.usedFlag = usedFlag;
    }
    public String getSysBaseOid() {
        return sysBaseOid;
    }
    public void setSysBaseOid(String sysBaseOid) {
        this.sysBaseOid = sysBaseOid;
    }
    public String getSysBaseId() {
        return sysBaseId;
    }
    public void setSysBaseId(String sysBaseId) {
        this.sysBaseId = sysBaseId;
    }
    public String getSysBaseName() {
        return sysBaseName;
    }
    public void setSysBaseName(String sysBaseName) {
        this.sysBaseName = sysBaseName;
    }
    public String getRequestUrl() {
        return requestUrl;
    }
    public void setRequestUrl(String requestUrl) {
        this.requestUrl = requestUrl;
    }
    public String getReturnType() {
        return returnType;
    }
    public void setReturnType(String returnType) {
        this.returnType = returnType;
    }
    public String getReturnTypeText() {
        return returnTypeText;
    }
    public void setReturnTypeText(String returnTypeText) {
        this.returnTypeText = returnTypeText;
    }
    public String getSourceSystemOid() {
        return sourceSystemOid;
    }
    public void setSourceSystemOid(String sourceSystemOid) {
        this.sourceSystemOid = sourceSystemOid;
    }
    public String getSourceSysName() {
        return sourceSysName;
    }
    public void setSourceSysName(String sourceSysName) {
        this.sourceSysName = sourceSysName;
    }
    public String getSourceSysId() {
        return sourceSysId;
    }
    public void setSourceSysId(String sourceSysId) {
        this.sourceSysId = sourceSysId;
    }
    public String getSourceSystemOidName() {
        return sourceSystemOidName;
    }
    public void setSourceSystemOidName(String sourceSystemOidName) {
        this.sourceSystemOidName = sourceSystemOidName;
    }
    public String getTargetSystemOid() {
        return targetSystemOid;
    }
    public void setTargetSystemOid(String targetSystemOid) {
        this.targetSystemOid = targetSystemOid;
    }
    public String getTargetSysName() {
        return targetSysName;
    }
    public void setTargetSysName(String targetSysName) {
        this.targetSysName = targetSysName;
    }
    public String getTargetSysId() {
        return targetSysId;
    }
    public void setTargetSysId(String targetSysId) {
        this.targetSysId = targetSysId;
    }
    public String getTargetSystemOidName() {
        return targetSystemOidName;
    }
    public void setTargetSystemOidName(String targetSystemOidName) {
        this.targetSystemOidName = targetSystemOidName;
    }
    public String getClassPath() {
        return classPath;
    }
    public void setClassPath(String classPath) {
        this.classPath = classPath;
    }
    public String getDataFlowType() {
        return dataFlowType;
    }
    public void setDataFlowType(String dataFlowType) {
        this.dataFlowType = dataFlowType;
    }
    public String getDataFlowTypeText() {
        return dataFlowTypeText;
    }
    public void setDataFlowTypeText(String dataFlowTypeText) {
        this.dataFlowTypeText = dataFlowTypeText;
    }
    public String getBtmTypeId() {
        return btmTypeId;
    }
    public void setBtmTypeId(String btmTypeId) {
        this.btmTypeId = btmTypeId;
    }
    public String getBtmTypeName() {
        return btmTypeName;
    }
    public void setBtmTypeName(String btmTypeName) {
        this.btmTypeName = btmTypeName;
    }
    public String getNamespace() {
        return namespace;
    }
    public void setNamespace(String namespace) {
        this.namespace = namespace;
    }
    public String getSoapAction() {
        return soapAction;
    }
    public void setSoapAction(String soapAction) {
        this.soapAction = soapAction;
    }
    public String getCxfAxis() {
        return cxfAxis;
    }
    public void setCxfAxis(String cxfAxis) {
        this.cxfAxis = cxfAxis;
    }
    public String getTargetName() {
        return targetName;
    }
    public void setTargetName(String targetName) {
        this.targetName = targetName;
    }
    public String getPushType() {
        return pushType;
    }
    public void setPushType(String pushType) {
        this.pushType = pushType;
    }
    public String getPushTypeText() {
        return pushTypeText;
    }
    public void setPushTypeText(String pushTypeText) {
        this.pushTypeText = pushTypeText;
    }
    public String getClassifyId() {
        return classifyId;
    }
    public void setClassifyId(String classifyId) {
        this.classifyId = classifyId;
    }
    public String getClassifyName() {
        return classifyName;
    }
    public void setClassifyName(String classifyName) {
        this.classifyName = classifyName;
    }
    public List<SysIntParamVO> getSysIntParamVOs() {
        return sysIntParamVOs;
    }
    public void setSysIntParamVOs(List<SysIntParamVO> sysIntParamVOs) {
        this.sysIntParamVOs = sysIntParamVOs;
    }
    public List<SysIntHeaderVO> getSysIntHeaderVOs() {
        return sysIntHeaderVOs;
    }
    private List<DockingSysIntHeaderDTO> sysIntHeaderDTOS;
    public void setSysIntHeaderVOs(List<SysIntHeaderVO> sysIntHeaderVOs) {
        this.sysIntHeaderVOs = sysIntHeaderVOs;
    }
    @Override
    public String toString() {
@@ -668,8 +301,8 @@
            ", pushTypeText='" + pushTypeText + '\'' +
            ", classifyId='" + classifyId + '\'' +
            ", classifyName='" + classifyName + '\'' +
            ", sysIntParamVOs=" + sysIntParamVOs +
            ", sysIntHeaderVOs=" + sysIntHeaderVOs +
            ", sysIntParamDTOS=" + sysIntParamDTOS +
            ", sysIntHeaderDTOS=" + sysIntHeaderDTOS +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntHeaderDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntInfoBseDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/SysIntParamDTO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSysIntHeader.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.constant.CodeTableNameConstant;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/****
 * æŽ¥å£å¤´åè®®
 */
@Data
@TableName(CodeTableNameConstant.PL_CODE_SYSINTPAREMTER)
@ApiModel(value = "DockingSysIntHeader", description = "集成接口-接口头协议对象")
@EqualsAndHashCode(callSuper = true)
public class DockingSysIntHeader extends BaseModel {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707117938037102L;
    /**
     * SysIntInfoDO çš„oid
     */
    @ApiModelProperty(value = "配置主键")
    private String infoOid;
    /**
     * å‚æ•°key
     */
    @ApiModelProperty(value = "配置主键")
    private String headerKey;
    /**
     * å‚æ•°value
     */
    @ApiModelProperty(value = "配置主键")
    @TableField(value = "headeralue")
    private String headerValue;
    /**
     * æ˜¯å¦ä½¿ç”¨
     */
    @ApiModelProperty(value = "配置主键")
    private String usedFlag;
    /**
     * æ˜¯å¦ä½¿ç”¨
     */
    @ApiModelProperty(value = "配置主键")
    @TableField(exist = true)
    private String usedFlagText;
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSysIntParam.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.vci.ubcs.code.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.starter.constant.CodeTableNameConstant;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„参数对象
 *
 * @author weidy
 * @date 2022-04-11
 */
@Data
@TableName(CodeTableNameConstant.PL_CODE_SYSINTPAREMTER)
@ApiModel(value = "DockingSysIntParam", description = "集成接口-接口的参数对象")
@EqualsAndHashCode(callSuper = true)
public class DockingSysIntParam  extends BaseModel {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707118871819648L;
    /**
     * SysIntInfoDO çš„oid
     */
    @ApiModelProperty(value = "接口配置主键")
    private String infoOid;
    /**
     * å‚æ•°key
     */
    @ApiModelProperty(value = "参数key")
    private String paramKey;
    /**
     * å‚æ•°value
     */
    @ApiModelProperty(value = "参数value")
    private String paramValue;
    /**
     * æ˜¯å¦ä½¿ç”¨
     */
    @ApiModelProperty(value = "是否使用")
    private String usedFlag;
    /**
     * æ˜¯å¦ä½¿ç”¨æ˜¾ç¤ºå€¼
     */
    @ApiModelProperty(value = "是否使用显示值")
    @TableField(exist = true)
    private String usedFlagText;
    @Override
    public String toString() {
        return "DockingSysIntParamVO{" +
            "infoOid='" + infoOid + '\'' +
            ", paramKey='" + paramKey + '\'' +
            ", paramValue='" + paramValue + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/DockingSystemConfig.java
@@ -2,16 +2,12 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vci.ubcs.code.vo.pagemodel.SysIntHeaderVO;
import com.vci.ubcs.code.vo.pagemodel.SysIntParamVO;
import com.vci.ubcs.starter.constant.CodeTableNameConstant;
import com.vci.ubcs.starter.revision.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/***
 * é›†æˆæŽ¥å£-集成接口管理对象
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingSysIntHeaderVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
 *
 * @author weidy
 * @date 2022-04-11
 */
@Data
public class DockingSysIntHeaderVO extends BaseModel {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707117938037102L;
    /**
     * SysIntInfoDO çš„oid
     */
    private String infoOid;
    /**
     * å‚æ•°key
     */
    private String headerKey;
    /**
     * å‚æ•°value
     */
    private String headerValue;
    /**
     * æ˜¯å¦ä½¿ç”¨
     */
    private String usedFlag;
    /***
     * æ˜¯å¦ä½¿ç”¨æ˜¾ç¤ºæ–‡æœ¬
     */
    private String usedFlagText;
    @Override
    public String toString() {
        return "DockingSysIntHeaderVO{" +
            "infoOid='" + infoOid + '\'' +
            ", headerKey='" + headerKey + '\'' +
            ", headerValue='" + headerValue + '\'' +
            ", usedFlag='" + usedFlag + '\'' +
            ", usedFlagText='" + usedFlagText + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingSysIntParamVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package com.vci.ubcs.code.vo.pagemodel;
import com.vci.ubcs.starter.revision.model.BaseModel;
import lombok.Data;
/**
 * ç³»ç»Ÿé›†æˆæŽ¥å£çš„认证显示对象
 *
 * @author xiejun
 * @date 2023-06-21
 */
@Data
public class DockingSysIntParamVO extends BaseModel {
    /**
     * ç¦æ­¢ä¿®æ”¹è¿™ä¸ªå€¼
     */
    private static final long serialVersionUID = 4615707118871819648L;
    /**
     * SysIntInfoDO çš„oid
     */
    private String infoOid;
    /**
     * å‚æ•°key
     */
    private String paramKey;
    /**
     * å‚æ•°value
     */
    private String paramValue;
    /***
     * æ˜¯å¦ä½¿ç”¨
     */
    private String usedFlag;
    /***
     * æ˜¯å¦ä½¿ç”¨æ˜¾ç¤ºæ–‡æœ¬
     */
    private String usedFlagText;
    @Override
    public String toString() {
        return "DockingSysIntParamVO{" +
            "infoOid='" + infoOid + '\'' +
            ", paramKey='" + paramKey + '\'' +
            ", paramValue='" + paramValue + '\'' +
            ", usedFlag='" + usedFlag + '\'' +
            ", usedFlagText='" + usedFlagText + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/DockingSystemConfigVO.java
@@ -241,11 +241,11 @@
    /***
     * å‚数信息对象
     */
    private List<SysIntParamVO> sysIntParamVOs;
    private List<DockingSysIntParamVO> sysIntParamVOs;
    /***
     * header信息对象
     */
    private List<SysIntHeaderVO> sysIntHeaderVOs;
    private List<DockingSysIntHeaderVO> sysIntHeaderVOs;
    public String getAuthorityOid() {
@@ -602,19 +602,19 @@
        this.classifyName = classifyName;
    }
    public List<SysIntParamVO> getSysIntParamVOs() {
    public List<DockingSysIntParamVO> getSysIntParamVOs() {
        return sysIntParamVOs;
    }
    public void setSysIntParamVOs(List<SysIntParamVO> sysIntParamVOs) {
    public void setSysIntParamVOs(List<DockingSysIntParamVO> sysIntParamVOs) {
        this.sysIntParamVOs = sysIntParamVOs;
    }
    public List<SysIntHeaderVO> getSysIntHeaderVOs() {
    public List<DockingSysIntHeaderVO> getSysIntHeaderVOs() {
        return sysIntHeaderVOs;
    }
    public void setSysIntHeaderVOs(List<SysIntHeaderVO> sysIntHeaderVOs) {
    public void setSysIntHeaderVOs(List<DockingSysIntHeaderVO> sysIntHeaderVOs) {
        this.sysIntHeaderVOs = sysIntHeaderVOs;
    }
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntHeaderVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/pagemodel/SysIntParamVO.java
ÎļþÒÑɾ³ý
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/constant/CodeTableNameConstant.java
@@ -122,4 +122,10 @@
     */
    public static final String PL_CODE_SYSINTINFO = "PL_CODE_SYSINTINFO";
    /**
     * é›†æˆæŽ¥å£-集成接口管理对象
     * platformbtm_sysintparemter
     */
    public static final String PL_CODE_SYSINTPAREMTER = "PL_CODE_SYSINTPAREMTER";
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/DockingManagementController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.vci.ubcs.code.dto.DockingSystemConfigDTO;
import com.vci.ubcs.code.dto.DockingSystemDTO;
import com.vci.ubcs.code.entity.CodeRule;
import com.vci.ubcs.code.entity.DockingSystem;
@@ -51,7 +52,7 @@
     * @param dockingSystem åŸºç¡€æŸ¥è¯¢å¯¹è±¡ï¼ŒåŒ…含查询条件,分页,排序等
     *@return ç³»ç»Ÿé›†æˆçš„系统信息显示对象列表
     */
    @GetMapping("/gridSysIntBase")
    @GetMapping("/gridDockingSystem")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "dockingSystem")
    public R<IPage<DockingSystemVO>> page(DockingSystem dockingSystem, Query query) {
@@ -64,8 +65,8 @@
     * @param dockingSystemDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    @PostMapping( "/addSave")
    public  R<DockingSystemVO> addSave(@RequestBody DockingSystemDTO dockingSystemDTO){
    @PostMapping( "/addSaveDockingSystem")
    public  R<DockingSystemVO> addSaveDockingSystem(@RequestBody DockingSystemDTO dockingSystemDTO){
        boolean res= dockingSystemService.addSave(dockingSystemDTO);
        return  R.status(res);
    }
@@ -76,8 +77,8 @@
     * @param dockingSystemDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    @PutMapping("/editSave")
    public R<DockingSystemVO> editSave(@RequestBody DockingSystemDTO dockingSystemDTO){
    @PutMapping("/editSaveDockingSystem")
    public R<DockingSystemVO> editSaveDockingSystem(@RequestBody DockingSystemDTO dockingSystemDTO){
        DockingSystemVO dockingSystemVO = dockingSystemService.editSave(dockingSystemDTO);
        return R.data(dockingSystemVO);
    }
@@ -102,12 +103,26 @@
     * @param DockingSystemConfig åŸºç¡€æŸ¥è¯¢å¯¹è±¡ï¼ŒåŒ…含查询条件,分页,排序等
     * @return ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ˜¾ç¤ºå¯¹è±¡åˆ—表
     */
    @GetMapping("/gridSysIntInfo")
    @GetMapping("/gridSystemConfig")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "DockingSystemConfig")
    public R<IPage<DockingSystemConfigVO>> gridSysIntInfo(DockingSystemConfig DockingSystemConfig, Query query){
    public R<IPage<DockingSystemConfigVO>> gridSystemConfig(DockingSystemConfig DockingSystemConfig, Query query){
        IPage<DockingSystemConfig> pages = dockingSystemConfigService.page(Condition.getPage(query), Condition.getQueryWrapper(DockingSystemConfig));
        return R.data(DockingSystemConfigWrapper.build().pageVO(pages));
    }
    /**
     * å¢žåŠ  ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯
     * @param systemConfigDTO ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    @PostMapping( "/addSaveSystemConfig")
    public R addSaveSystemConfig(@RequestBody DockingSystemConfigDTO systemConfigDTO){
        try {
            boolean res =  dockingSystemConfigService.addSave(systemConfigDTO);
            return R.success("保存成功!");
        }catch (Throwable e){
            return R.fail("保存失败!");
        }
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingSysIntHeaderMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.vci.ubcs.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.entity.DockingSysIntHeader;
public interface DockingSysIntHeaderMapper extends BaseMapper<DockingSysIntHeader> {
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/DockingSysIntParamMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.vci.ubcs.code.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.vci.ubcs.code.entity.DockingSysIntParam;
public interface DockingSysIntParamMapper extends BaseMapper<DockingSysIntParam> {
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSysIntHeaderService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.DockingSysIntHeader;
public interface IDockingSysIntHeaderService extends IService<DockingSysIntHeader> {
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSysIntParamService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.DockingSysIntParam;
public interface IDockingSysIntParamService extends IService<DockingSysIntParam> {
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/IDockingSystemConfigService.java
@@ -1,8 +1,9 @@
package com.vci.ubcs.code.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vci.ubcs.code.entity.DockingSystem;
import com.vci.ubcs.code.dto.DockingSystemConfigDTO;
import com.vci.ubcs.code.entity.DockingSystemConfig;
import com.vci.ubcs.code.vo.pagemodel.DockingSystemVO;
/***
 * ç³»ç»ŸæŽ¥å£ç®¡ç†-接口配置服务
@@ -10,4 +11,20 @@
 * @date 2023-06-01
 */
public interface IDockingSystemConfigService extends IService<DockingSystemConfig> {
    /**
     * å¢žåŠ  ç³»ç»Ÿé›†æˆçš„æŽ¥å£ç®¡ç†ä¿¡æ¯
     * @param dockingSystemConfigDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    public boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO);
    /**
     * ä¿®æ”¹ ç³»ç»Ÿé›†æˆçš„æŽ¥å£ç®¡ç†ä¿¡æ¯
     * @param dockingSystemConfigDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    DockingSystemVO editSave(DockingSystemConfigDTO dockingSystemConfigDTO);
    boolean deleteDataById(String oids);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java
@@ -1,10 +1,18 @@
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.vci.ubcs.code.entity.DockingSystem;
import com.vci.ubcs.code.service.ICodeDuckingSyncService;
import com.vci.ubcs.code.service.IDockingSystemService;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/*
@@ -17,9 +25,16 @@
@Slf4j
public class CodeDuckingSyncServiceImpl implements ICodeDuckingSyncService {
    @Resource
    private  IDockingSystemService dockingSystemService;
    @Override
    public void DockingDataSyncScheduing() {
// insertCache2();
        initPushDataTaks(1);
        //sendpushDataForService();
    }
@@ -32,5 +47,122 @@
    public R sendData(String oids) {
        return null;
    }
    /***
     * æŸ¥è¯¢redis中数据,对比后插入dockingtask
     * @param type
     */
    private void initPushDataTaks(int type){
//        //initSysadmin();
//        //sysintinfo查询要推送的主题库和相关系统信息
//        Map<String, String> conditionMap = new HashMap<>();
//        conditionMap.put("usedflag","true");
//        conditionMap.put("pushType",type==2?"2":"1") ;//2是代表分类推送,1是代表数据推送
//
//        Wrappers wrappers=new Wrappers();
//
//        List<DockingSystem> sysIntInfoVOList = dockingSystemService.list(Wrappers.query().lambda().eq());
//        if(CollectionUtils.isEmpty(sysIntInfoVOList)){
//            String title=type==2?"分类推送":"数据推送";
//            log.info("info->所有集成系统,未查询到相关的【"+title+"】的接口配置信息,配置");
//            return;
//        }
//        Map<String ,List<DockingSystem>> sysIntInfoDOMap = new HashMap<String ,List<DockingSystem>>();//key=classifyoid,value=list<map>
//        for (SysIntInfoDO sysIntInfoVOi:sysIntInfoVOList){
//            List<SysIntInfoDO> SysIntInfoVOListi = sysIntInfoDOMap.get(sysIntInfoVOi.getClassifyoid());
//            if(SysIntInfoVOListi==null){
//                SysIntInfoVOListi = new ArrayList<SysIntInfoDO>();
//            }
//            SysIntInfoVOListi.add(sysIntInfoVOi);
//            sysIntInfoDOMap.put(sysIntInfoVOi.getClassifyoid(),SysIntInfoVOListi);
//        }
//        //根据类型去查询需要集成的分类或者数据
//        VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(DockingDataDO.class);
//        queryWrapperForDO.addQueryMap("sendflag","false");
//        if(type==2){
//            queryWrapperForDO.addQueryMap("btmTypeId",DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT));
//        }else {
//            queryWrapperForDO.addQueryMap("btmTypeId", QueryOptionConstant.NOTIN + "(" + VciBaseUtil.toInSql(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)) + ")");
//        }
//        List<DockingDataDO> dataList = dockingDataDaoI.selectByWrapper(queryWrapperForDO);
//
//        for (DockingDataDO mapi:dataList){
//            WebUtil.setPersistence(false);
//            BatchCBO batchCBO = new BatchCBO();
//            String dataoid = mapi.getOid();//data对象的oid
//            String classifyoid = mapi.getClassifyoid();
//            String id = mapi.getId();
//            String uniquecode = mapi.getUniquecode();
//            String btmid = mapi.getBtmid();
//            String btmoid = mapi.getBtmoid();
//            String sendtype = mapi.getSendtype();
//            String classifyid = mapi.getClassifyid();
//            String classifyname = mapi.getClassifyname();
//            String curentClassOid=null;
//            if(type==2){
//                curentClassOid=btmoid;
//            }else{
//                curentClassOid=classifyoid;
//            }
//            List<SysIntInfoDO> effectiveSysIntInfoVOs=new ArrayList<>();
//            //根据当前数据的id,查询获取哪些系统需要做集成
//            List<CodeClassifyDO> parentLeveDO= codeClassifyDaoI.selectAllLevelParentByOid(curentClassOid);
//            if(CollectionUtils.isEmpty(parentLeveDO)){
//                continue;//说明这个分类被删掉了,不做处理
//            }
//            Map<String, CodeClassifyDO> oidCodeclassifyDOMap = parentLeveDO.stream().filter(codeClassifyDO -> codeClassifyDO != null && StringUtils.isNotBlank(codeClassifyDO.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
//
//            oidCodeclassifyDOMap.keySet().forEach(oid->{
//                if(sysIntInfoDOMap.containsKey(oid)){
//                    List<SysIntInfoDO> sysIntInfoDOS= sysIntInfoDOMap.get(oid);
//                    effectiveSysIntInfoVOs.addAll(sysIntInfoDOS);
//                }
//            });
//            //如果校验的系统接口信息不存在,则数据不不往信息里推送
//            if(CollectionUtils.isEmpty(effectiveSysIntInfoVOs)){
//                continue;
//            }
//            List<DockingTaskDO> dockingTaskDO_insert = new ArrayList<DockingTaskDO>();
//            for (SysIntInfoDO sysIntInfoVOi:effectiveSysIntInfoVOs){
//                DockingTaskDO dockingTaskDO = new DockingTaskDO();
//                dockingTaskDO.setOid(redisService.getUUIDEveryDay());
//                dockingTaskDO.setSendflag(SEND_FLAG_FALSE);
//                dockingTaskDO.setId(id);//编码
//                dockingTaskDO.setUniquecode(uniquecode);
//                dockingTaskDO.setBtmoid(btmoid);//数据oid
//                dockingTaskDO.setBtmid(btmid);//数据业务类型id
//                dockingTaskDO.setClassifyid(classifyid);//数据在分类id
//                dockingTaskDO.setClassifyoid(classifyoid);//数据所在分类oid
//                dockingTaskDO.setClassifyname(classifyname);//数据所在分类名称
//                dockingTaskDO.setSendtype(sendtype);//数据推送类型
//                dockingTaskDO.setDataoid(dataoid);
//
//                //intinfo
//                dockingTaskDO.setSysinfooid(sysIntInfoVOi.getOid());//intinfo的oid
//                dockingTaskDO.setSystemoid(sysIntInfoVOi.getSysbaseoid());//系统oid
//                dockingTaskDO.setSystemcode(sysIntInfoVOi.getSysbaseid());//系统编码
//                dockingTaskDO.setSystemname(sysIntInfoVOi.getSysbasename());//系统name
//                dockingTaskDO_insert.add(dockingTaskDO);
//            }
//
//            BatchCBO bi = null;
//            if(dockingTaskDO_insert.size()!=0) {
//                bi = dockingTaskDaoI.batchInsert(dockingTaskDO_insert);
//                batchCBO.copyFromOther(bi);
//            }
//            WebUtil.setPersistence(true);
//            boService.persistenceBatch(batchCBO);
//            //dockingTaskDaoI.updateByPrimaryKey方法报错了,所以手写了这个
//            boolean u = updateDockingDatasSendFlag(dataoid,SEND_FLAG_TRUE);
//            if(!u){
//                log.error("集成data分解任务失败!dataoid:"+dataoid);
//                continue;
//            }
//
//        }
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSysIntHeaderServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.entity.DockingSysIntHeader;
import com.vci.ubcs.code.mapper.DockingSysIntHeaderMapper;
import com.vci.ubcs.code.service.IDockingSysIntHeaderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class DockingSysIntHeaderServiceImpl  extends ServiceImpl<DockingSysIntHeaderMapper, DockingSysIntHeader> implements IDockingSysIntHeaderService {
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSysIntParamServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.entity.DockingSysIntParam;
import com.vci.ubcs.code.mapper.DockingSysIntParamMapper;
import com.vci.ubcs.code.service.IDockingSysIntParamService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class DockingSysIntParamServiceImpl extends ServiceImpl<DockingSysIntParamMapper, DockingSysIntParam> implements IDockingSysIntParamService {
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
@@ -1,23 +1,156 @@
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
import com.vci.ubcs.code.dto.DockingSysIntHeaderDTO;
import com.vci.ubcs.code.dto.DockingSystemConfigDTO;
import com.vci.ubcs.code.dto.DockingSysIntParamDTO;
import com.vci.ubcs.code.entity.DockingSysIntHeader;
import com.vci.ubcs.code.entity.DockingSysIntParam;
import com.vci.ubcs.code.entity.DockingSystem;
import com.vci.ubcs.code.entity.DockingSystemConfig;
import com.vci.ubcs.code.enumpack.SysIntegrationRequestTypeEnum;
import com.vci.ubcs.code.mapper.DockingSysIntHeaderMapper;
import com.vci.ubcs.code.mapper.DockingSysIntParamMapper;
import com.vci.ubcs.code.mapper.DockingSystemConfigMapper;
import com.vci.ubcs.code.mapper.DockingSystemMapper;
import com.vci.ubcs.code.service.IDockingSysIntHeaderService;
import com.vci.ubcs.code.service.IDockingSysIntParamService;
import com.vci.ubcs.code.service.IDockingSystemConfigService;
import com.vci.ubcs.code.vo.pagemodel.DockingSysIntHeaderVO;
import com.vci.ubcs.code.vo.pagemodel.DockingSystemVO;
import com.vci.ubcs.starter.exception.VciBaseException;
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Collection;
import java.util.Map;
import java.util.function.Function;
import java.util.*;
/***
 * ç³»ç»ŸæŽ¥å£ç®¡ç†-接口配置服务
 * @author xiejun
 * @date 2023-06-01
 */
@Slf4j
@Service
public class DockingSystemConfigServiceImpl extends ServiceImpl<DockingSystemConfigMapper, DockingSystemConfig> implements IDockingSystemConfigService{
    /***
     * é›†æˆç³»ç»Ÿç®¡ç†æœåŠ¡
     */
    @Autowired(required = false)
    private DockingSystemConfigMapper dockingSystemConfigMapper;
    /***
     * é›†æˆæŽ¥å£-集成接口管理参数服务
     */
    @Autowired(required = false)
    private IDockingSysIntParamService dockingSysIntParamService;
    /***
     * é›†æˆæŽ¥å£-集成接口管理参数服务
     */
    @Autowired(required = false)
    private IDockingSysIntHeaderService dockingSysIntHeaderService;
    /***
     * é›†æˆæŽ¥å£-集成系统服务
     */
    @Autowired(required = false)
    private DockingSystemMapper dockingSystemMapper;
    /**
     * å¯¹è±¡çš„æ“ä½œ
     */
    @Autowired
    private RevisionModelUtil revisionModelUtil;
    /**
     * å¢žåŠ ç³»ç»Ÿé›†æˆçš„æŽ¥å£ç®¡ç†ä¿¡æ¯
     * @param dockingSystemConfigDTO ç³»ç»Ÿé›†æˆçš„系统信息数据传输对象
     * @return æ‰§è¡Œç»“果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO) {
        log.info(" å¢žåŠ ç³»ç»Ÿé›†æˆçš„æŽ¥å£ç®¡ç†ä¿¡æ¯:"+dockingSystemConfigDTO.toString());
        VciBaseUtil.alertNotNull(dockingSystemConfigDTO, "需要添加的数据对象");
        checkColumnNotNull(dockingSystemConfigDTO);
        String sourcesystemoid = dockingSystemConfigDTO.getSourceSystemOid();
        DockingSystem dockingSystem = dockingSystemMapper.selectById(sourcesystemoid);
        dockingSystemConfigDTO.setSysBaseOid(sourcesystemoid);
        dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
        dockingSystemConfigDTO.setSysBaseName(dockingSystem.getName());
        dockingSystemConfigDTO.setUsedFlag("true");//设置默认启用状态
        //将DTO转换为DO
        DockingSystemConfig dockingSystemConfig = new DockingSystemConfig();
        revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO,dockingSystemConfig);
        List<DockingSysIntParamDTO> sysIntParamDTOList=  dockingSystemConfigDTO.getSysIntParamDTOS();
        List<DockingSysIntParam> sysIntParamList=new ArrayList<>();
        if(!CollectionUtils.isEmpty(sysIntParamDTOList)) {
            sysIntParamDTOList.stream().forEach(sysIntParamDTO -> {
                DockingSysIntParam sysIntParamDO = new DockingSysIntParam();
                sysIntParamDTO.setInfoOid(dockingSystemConfigDTO.getOid());
                BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDTO, sysIntParamDO);
                DefaultAttrAssimtUtil.addDefaultAttrAssimt(sysIntParamDO,MdmBtmTypeConstant.SYS_INT_PARAMTERY);
                sysIntParamList.add(sysIntParamDO);
            });
        }
        List<DockingSysIntHeaderDTO> sysIntHeaderDTOs= dockingSystemConfigDTO.getSysIntHeaderDTOS();
        List<DockingSysIntHeader> sysIntHeaderList = new ArrayList<>();
        if(!CollectionUtils.isEmpty(sysIntHeaderDTOs)) {
            sysIntHeaderDTOs.stream().forEach(sysIntHeaderDTO -> {
                DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
                sysIntHeaderDTO.setInfoOid(dockingSystemConfigDTO.getOid());
                BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDTO, dockingSysIntHeader);
                DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSysIntHeader,MdmBtmTypeConstant.SYS_INT_HEADER);
                sysIntHeaderList.add(dockingSysIntHeader);
            });
        }
        dockingSysIntParamService.saveBatch(sysIntParamList);
        dockingSysIntHeaderService.saveBatch(sysIntHeaderList);
        DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystemConfig,MdmBtmTypeConstant.SYS_INT_INFO);
        dockingSystemConfigMapper.insert(dockingSystemConfig);
        return true;
    }
    @Override
    public DockingSystemVO editSave(DockingSystemConfigDTO dockingSystemDTO) {
        return null;
    }
    @Override
    public boolean deleteDataById(String oids) {
        return false;
    }
    /**
     * ç³»ç»Ÿé›†æˆæŽ¥å£åŸºç¡€ä¿¡æ¯Null字段检验
     * @param dockingSystemConfigDTO ç³»ç»Ÿé›†æˆåŸºç¡€ä¿¡æ¯æ•°æ®ä¼ è¾“对象
     * @throws VciBaseException å‚数为空,唯一项,必输项不通过时会抛出异常
     */
    private void checkColumnNotNull(DockingSystemConfigDTO  dockingSystemConfigDTO) throws VciBaseException {
        if (SysIntegrationRequestTypeEnum.HTTP.getValue().equals(dockingSystemConfigDTO.getInterfaceType())){
            VciBaseUtil.alertNotNull(dockingSystemConfigDTO.getRequestUrl(),"HTTP接口的请求地址",dockingSystemConfigDTO.getRequestMethod(),"HTTP接口的请求方式");
        }
        if (SysIntegrationRequestTypeEnum.WEB_SERVICE.getValue().equals(dockingSystemConfigDTO.getInterfaceType())){
            VciBaseUtil.alertNotNull(dockingSystemConfigDTO.getInterfaceFunction(),"WebService的接口函数");
        }
        if (SysIntegrationRequestTypeEnum.CLASSPATH.getValue().equals(dockingSystemConfigDTO.getInterfaceType())){
            VciBaseUtil.alertNotNull(dockingSystemConfigDTO.getClassPath(),"类路径");
        }
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingTaskServiceImpl.java
@@ -1,9 +1,7 @@
package com.vci.ubcs.code.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vci.ubcs.code.entity.CodeClassifyValue;
import com.vci.ubcs.code.entity.DockingTask;
import com.vci.ubcs.code.mapper.CodeClassifyValueMapper;
import com.vci.ubcs.code.mapper.DockingTaskMapper;
import com.vci.ubcs.code.service.IDockingTaskService;
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -2182,31 +2182,32 @@
            deleteBatchDTO.getCodeClassifyOid(), "主题库分类的主键");
        CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(deleteBatchDTO.getCodeClassifyOid());
        //找业务类型,然后使用主键去获取数据库里的数据
        Collection<String> oidCollection = null;
        Collection<String> oidCollection = new ArrayList<>();
        for (Collection<String> strings : VciBaseUtil.switchCollectionForOracleIn(deleteBatchDTO.getOidList())) {
            oidCollection.addAll(strings);
        }
        List<CodeWupin> cboList = codeWupinMapper.selectBatchIds(oidCollection);
        //        List<ClientBusinessObject> cboList = new ArrayList<>();
//        oidCollection.stream().forEach(oids -> {
//            Map<String, String> conditionMap = new HashMap<>();
//        List<CodeWupin> cboList = codeWupinMapper.selectBatchIds(oidCollection);
        List<BaseModel> cboList = new ArrayList<>();
        oidCollection.stream().forEach(oids -> {
            Map<String, String> conditionMap = new HashMap<>();
//            conditionMap.put("oid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
//            List<ClientBusinessObject> cbos = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), conditionMap);
//            cboList.addAll(cbos);
//        });
            List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmtypeid(),oids);
//                boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), conditionMap);
            cboList.addAll(cbos);
        });
        if (CollectionUtils.isEmpty(cboList)) {
            throw new VciBaseException("数据全部在系统中不存在");
        }
        List<CodeWupin> editCBOs = cboList.stream().filter(s -> !CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList());
        List<BaseModel> editCBOs = cboList.stream().filter(s -> !CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(editCBOs)) {
            CodeWupin cbo = editCBOs.get(0);
            BaseModel cbo = editCBOs.get(0);
            throw new VciBaseException("编码为{0}等共{1}条数据的状态不是[{2}],不允许删除", new String[]{cbo.getId(), String.valueOf(editCBOs.size()), CodeDefaultLC.EDITING.getText()});
        }
        //只能删除自己创建的数据
        String userId = AuthUtil.getUser().getUserName();
        for (CodeWupin clientBusinessObject : cboList) {
        String userId = String.valueOf(AuthUtil.getUser().getUserId());
        for (BaseModel clientBusinessObject : cboList) {
            String creator = clientBusinessObject.getCreator();
            if (!userId.equalsIgnoreCase(creator)) {
                throw new VciBaseException("编码为" + clientBusinessObject.getId() + "的数据不是当前用户创建,不能删除!");
@@ -2218,7 +2219,14 @@
//        WebUtil.setPersistence(false);
//        batchCBO.copyFromOther(
        productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid(), deleteBatchDTO.getOidList());
        baseMapper.deleteBatchIds(cboList);
//        baseMapper.deleteBatchIds(cboList);
        //使用传入的业务类型查询表
        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid()));
        if (listR.getData().size() == 0) {
            throw new VciBaseException("传入业务类型未查询到相应表单,请检查!");
        }
        commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(),
            "'"+(StringUtils.join(cboList.stream().map(BaseModel::getOid).collect(Collectors.toSet()),"','"))+"'");
        //        );
//        WebUtil.setPersistence(true);
//        boService.persistenceBatch(batchCBO);
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -1895,9 +1895,30 @@
        getFieldIndexMap(titleRowData, attrNameIdMap, fieldIndexMap);
        Map<String, String> cboOidMap = new HashMap<>();
        cboOidMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])) + ")");
        R<BtmTypeVO>  r= btmTypeClient.getDetail(templateVO.getBtmTypeId());
        BtmTypeVO btmTypeVO =r.getData();
        String tableName=btmTypeVO.getTableName();
        String tableName ="";
        try {
            R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
            if(r.getCode()!=200) {
                throw new Throwable(r.getMsg());
            }
            BtmTypeVO btmTypeVO = r.getData();
            if (btmTypeVO == null) {
                throw new Throwable("根据业务类型未查询到业务类型对象!");
            }
            tableName = btmTypeVO.getTableName();
            if (StringUtils.isBlank(tableName)) {
                throw new Throwable("根据业务类型未查询到业务类型相关联的表");
            }
        }catch (Throwable e){
            log.error("查询业务对象表"+e);
            XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
            xmlResultDataObjectDetailDO.setErrorid("103");
            xmlResultDataObjectDetailDO.setMsg("查询业务对象表"+e);
            xmlResultDataObjectDetailDO.setId("");
            xmlResultDataObjectDetailDO.setCode("");
            resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
            return;
        }
        StringBuffer sb=new StringBuffer();
        sb.append(" select * from ");
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingSysIntHeaderWrapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package com.vci.ubcs.code.wrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.vci.ubcs.code.entity.DockingSysIntHeader;
import com.vci.ubcs.code.vo.pagemodel.DockingSysIntHeaderVO;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
public class DockingSysIntHeaderWrapper extends BaseEntityWrapper<DockingSysIntHeader, DockingSysIntHeaderVO> {
    public static DockingSysIntHeaderWrapper build() {
        return new DockingSysIntHeaderWrapper();
    }
    @Override
    public DockingSysIntHeaderVO entityVO(DockingSysIntHeader entity) {
        DockingSysIntHeaderVO vo = Objects.requireNonNull(BeanUtil.copy(entity, DockingSysIntHeaderVO.class));
        return vo;
    }
    /***
     * æ•°ç»„对象转换
     * @param entitys
     * @return
     */
    public List<DockingSysIntHeaderVO> entityVOs(Collection<DockingSysIntHeader> entitys) {
        if(CollectionUtils.isEmpty(entitys)) {
            return new ArrayList<>();
        }
        List<DockingSysIntHeaderVO> vos=new ArrayList<>();
        if(!CollectionUtils.isEmpty(entitys)) {
            entitys.stream().forEach(DockingSystem -> {
                vos.add(entityVO(DockingSystem));
            });
        }
        return vos;
    }
    /***
     * æ•°ç»„对象转换
     * @param vos
     * @return
     */
    public List<DockingSysIntHeader> voentitys(Collection<DockingSysIntHeaderVO> vos) {
        if(CollectionUtils.isEmpty(vos)) {return new ArrayList<>();}
        List<DockingSysIntHeader>entitys =new ArrayList<>();
        if(!CollectionUtils.isEmpty(vos)) {
            vos.stream().forEach(entity -> {
                entitys.add(voentity(entity));
            });
        }
        return entitys;
    }
    /***
     * æ•°ç»„对象转换
     * @param vo
     * @return
     */
    public DockingSysIntHeader voentity(DockingSysIntHeaderVO vo) {
        DockingSysIntHeader entity = Objects.requireNonNull(BeanUtil.copy(vo, DockingSysIntHeader.class));
        return entity;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/DockingSysIntParamWrapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.vci.ubcs.code.wrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.vci.ubcs.code.entity.DockingSysIntParam;
import com.vci.ubcs.code.vo.pagemodel.DockingSysIntParamVO;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
public class DockingSysIntParamWrapper extends BaseEntityWrapper<DockingSysIntParam, DockingSysIntParamVO> {
    public static DockingSysIntParamWrapper build() {
        return new DockingSysIntParamWrapper();
    }
    @Override
    public DockingSysIntParamVO entityVO(DockingSysIntParam entity) {
        DockingSysIntParamVO vo = Objects.requireNonNull(BeanUtil.copy(entity, DockingSysIntParamVO.class));
        return vo;
    }
    /***
     * æ•°ç»„对象转换
     * @param entitys
     * @return
     */
    public List<DockingSysIntParamVO> entityVOs(Collection<DockingSysIntParam> entitys) {
        if(CollectionUtils.isEmpty(entitys)) {
            return new ArrayList<>();
        }
        List<DockingSysIntParamVO> vos=new ArrayList<>();
        if(!CollectionUtils.isEmpty(entitys)) {
            entitys.stream().forEach(DockingSystem -> {
                vos.add(entityVO(DockingSystem));
            });
        }
        return vos;
    }
    /***
     * æ•°ç»„对象转换
     * @param vos
     * @return
     */
    public List<DockingSysIntParam> voentitys(Collection<DockingSysIntParamVO> vos) {
        if(CollectionUtils.isEmpty(vos)) {return new ArrayList<>();}
        List<DockingSysIntParam>entitys =new ArrayList<>();
        if(!CollectionUtils.isEmpty(vos)) {
            vos.stream().forEach(entity -> {
                entitys.add(voentity(entity));
            });
        }
        return entitys;
    }
    /***
     * æ•°ç»„对象转换
     * @param vo
     * @return
     */
    public DockingSysIntParam voentity(DockingSysIntParamVO vo) {
        DockingSysIntParam entity = Objects.requireNonNull(BeanUtil.copy(vo, DockingSysIntParam.class));
        return entity;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/DockingSysIntParamMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
<?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.DockingSysIntParamMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="plDockingSysIntParamResultMap" type="com.vci.ubcs.code.entity.DockingSysIntParam">
        <result column="OID" property="oid"/>
        <result column="REVISIONOID" property="revisionOid"/>
        <result column="NAMEOID" property="nameOid"/>
        <result column="BTMNAME" property="btmname"/>
        <result column="LASTR" property="lastR"/>
        <result column="FIRSTR" property="firstR"/>
        <result column="LASTV" property="lastV"/>
        <result column="FIRSTV" property="firstV"/>
        <result column="CREATOR" property="creator"/>
        <result column="CREATETIME" property="createTime"/>
        <result column="LASTMODIFIER" property="lastModifier"/>
        <result column="LASTMODIFYTIME" property="lastModifyTime"/>
        <result column="REVISIONRULE" property="revisionRule"/>
        <result column="VERSIONRULE" property="versionRule"/>
        <result column="REVISIONSEQ" property="revisionSeq"/>
        <result column="REVISIONVALUE" property="revisionValue"/>
        <result column="VERSIONSEQ" property="versionSeq"/>
        <result column="VERSIONVALUE" property="versionValue"/>
        <result column="LCTID" property="lctid"/>
        <result column="LCSTATUS" property="lcStatus"/>
        <result column="TS" property="ts"/>
        <result column="ID" property="id"/>
        <result column="NAME" property="name"/>
        <result column="DESCRIPTION" property="description"/>
        <result column="OWNER" property="owner"/>
        <result column="COPYFROMVERSION" property="copyFromVersion"/>
        <result column="INFOOID" property="infoOid"/>
        <result column="PARAMKEY" property="paramKey"/>
        <result column="PARAMVALUE" property="paramValue"/>
        <result column="USEDFLAG" property="usedFlag"/>
        <result column="tenant_id" property="tenantId"/>
        <result column="tenant_id" property="tenantId"/>
    </resultMap>
</mapper>