ludc
2023-09-12 114c0b5aa8bffa7120d7294ba0631d2ef78711c1
Merge remote-tracking branch 'origin/master'
已修改23个文件
已添加1个文件
985 ■■■■ 文件已修改
Source/UBCS-WEB/package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/FormTemplate/index.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Master/MasterTree.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/main.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/MasterData/items.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/code/code.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/docking/data.vue 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/docking/loge.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/docking/task.vue 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/DMS.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/EnumerableData.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/OrgMasterData.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/PersonMasterData.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/org..json 152 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyOrgPersonController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 292 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/PersonAndDeptConfig.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/package.json
@@ -23,6 +23,7 @@
    "js-md5": "^0.7.3",
    "js-pinyin": "^0.2.4",
    "mockjs": "^1.0.1-beta3",
    "moment": "^2.29.4",
    "node-gyp": "^5.0.6",
    "nprogress": "^0.2.0",
    "portfinder": "^1.0.23",
Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -84,10 +84,15 @@
    trendsSpan: {
      type: Number,
      default: 8,
    }
    },
    TreeValue:{
      type: String,
      default: "",
    },
  },
  data() {
    return {
      TreeValueForm:'',
      updateIndex: 0,
      form: {},
      option: {
@@ -114,7 +119,7 @@
      slotColumnList: [],
    };
  },
  mounted() {
    mounted() {
    this.handleResize();
  },
  computed: {
@@ -126,10 +131,31 @@
        return 24 / Math.floor(windowWidth / 500);
      }
    },
  },
  watch: {
    // è¡¨å•数据修改反馈到父组件
    form: {
      deep: true,
      immediate: true,
      handler(newV) {
        this.$emit("getFormData", newV);
      },
    },
    TreeValue:{
      handler(newval,oldval){
        if(newval){
          this.TreeValueForm=newval;
          // console.log(this.TreeValueForm)
        }
      },
      deep:true,
      immediate:true
    }
  },
  methods: {
    // æ¸²æŸ“表单模板
    templateRender(formItemList) {
    templateRender(formItemList,TreeValue) {
      // æ— éœ€åˆ†ç»„数据
      let column = [];
      let group = [];
@@ -138,7 +164,6 @@
      let value=''
      formItemList.forEach((formItem) => {
        formItem = this.resetFormConfig(formItem);
        // console.log('formItem',formItem)
        // console.log('formItem.dicData.value',formItem.dicData)
        if (formItem.type === "line") {
          group.push({
@@ -196,7 +221,7 @@
          format: formItem.dateFormate,
          keyAttr: formItem.keyAttr,
          value: (formItem.dicData && formItem.dicData.length > 0 && formItem.secType == "codefixedsec" ? formItem.dicData[0].id : null) ||
            (formItem.secType == "codedatesec"?formItem.codeDateFormatStr: null),
            (formItem.secType == "codedatesec"?formItem.codeDateFormatStr: null) || ( TreeValue&& formItem.secType == "codelevelsec" ? TreeValue : null),
          placeholder: formItem.inputTip,
          comboxKey: formItem.comboxKey,
          tip: formItem.tooltips,
@@ -415,16 +440,6 @@
        this.$emit("getFormData", this.form);
        this.$emit("referConfigDataUpdate", data);
      }
    },
  },
  watch: {
    // è¡¨å•数据修改反馈到父组件
    form: {
      deep: true,
      immediate: true,
      handler(newV) {
        this.$emit("getFormData", newV);
      },
    },
  },
};
Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -13,6 +13,7 @@
    <FormTemplate
      v-bind="$attrs"
      :type="type"
      :TreeValue="TreeValue"
      :rowOid="rowOid"
      :templateOid="templateOid"
      v-if="dialogVisible"
@@ -90,6 +91,10 @@
    visible: {
      type: Boolean,
      default: false,
    },
    TreeValue:{
      type: String,
      default: "",
    },
    type: {
      type: String,
@@ -291,7 +296,7 @@
            that.showCodeApply = true;
            that.activeName = "codeApply";
            that.$nextTick(() => {
              that.$refs.CodeApply.templateRender(that.secVOList);
              that.$refs.CodeApply.templateRender(that.secVOList,this.TreeValue);
            });
          } else {
            that.showCodeApply = false;
@@ -319,7 +324,7 @@
        }
        return item;
      });
      this.$refs.CodeApply.templateRender(this.secVOList);
      this.$refs.CodeApply.templateRender(this.secVOList,this.TreeValue);
    },
    resembleQuerySubmit() {
      this.activeName = "resembleQuery";
Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -28,6 +28,7 @@
  },
  data() {
    return {
      TreeValue:'',
      idData: '',
      masterVrBtnList: [],
      tableHeadFindData: [],
@@ -165,6 +166,9 @@
    //树点击事件
    async nodeClick(data) {
      try {
        console.log(data)
        this.TreeValue=data.label.split(" ")[0].trim();
        this.$emit('TreeValue',this.TreeValue)
        this.nodeClickList = data;
        this.tableHeadDataFateher = []
        this.tableHeadFindData = []
Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -54,7 +54,7 @@
          </el-row>
          <!--          æ–°å¢ž-->
          <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
                              :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible"
                              :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible" :TreeValue="TreeValue"
                              type="add"
                              @submit="AddSumbit">
          </FormTemplateDialog>
@@ -155,6 +155,10 @@
    tableDataArray: {
      type: Array,
    },
    TreeValue:{
      type: String,
      default: "",
    },
    total: {
      type: String,
      default: "",
Source/UBCS-WEB/src/components/dockingSearch/VciDockingSearch.vue
@@ -1,26 +1,70 @@
<template>
  <div style="display: flex" >
    <el-form :inline="true" :model="formInline" class="demo-form-inline">
      <el-form-item label="类型:" size="small">
        <el-select v-model="formInline.type" placeholder="请输入类型" @change="SelectChange">
<!--      é›†æˆæ—¥å¿— ä»»åŠ¡ æ•°æ®å…¨éƒ¨å…¬ç”¨-->
      <el-form-item label="集成查询:" size="small">
        <el-select v-model="formInline.type" placeholder="请选择分类" @change="SelectChange">
          <el-option :label="item.label" :value="item.value" v-for="item in SearchObject.searchData" ></el-option>
        </el-select>
      </el-form-item>
      <el-form-item v-if="typeFlag" size="small">
        <el-select v-model="formInline.check" placeholder="请选择分类">
          <el-option label="1" value="0"></el-option>
          <el-option label="2" value="1"></el-option>
<!--      é›†æˆæ—¥å¿— æ˜¯å¦æˆåŠŸ-->
      <el-form-item v-if="(status.type == 'loge' && status.stateFlag)" size="small">
        <el-select v-model="formInline.state" placeholder="请选择状态">
          <el-option label="是" value="true"></el-option>
          <el-option label="否" value="false"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item size="small" v-if="dateFlag">
<!--      é›†æˆæ—¥å¿—类型-->
      <el-form-item v-if="(status.type == 'loge' && status.typeFlag)" size="small">
        <el-select v-model="formInline.cut" placeholder="请选择类型">
          <el-option label="数据推送" value="pushData"></el-option>
          <el-option label="分类推送" value="pushClassifyData"></el-option>
          <el-option label="编码申请" value="applyCode"></el-option>
          <el-option label="编码维护" value="syncEditData"></el-option>
          <el-option label="分类查询" value="queryClassify"></el-option>
          <el-option label="含编码规则的分类查询" value="queryClassifyRule"></el-option>
          <el-option label="数据查询" value="queryData"></el-option>
        </el-select>
      </el-form-item>
<!--      é›†æˆä»»åŠ¡ æ˜¯å¦æŽ¨é€æˆåŠŸ  é›†æˆæ•°æ®  æ˜¯å¦åˆ†è§£ä»»åŠ¡-->
      <el-form-item v-if="((status.type == 'task' || status.type == 'data')&& status.stateTaskDataFlag)" size="small">
        <el-select v-model="formInline.stateTask" placeholder="请选择状态">
          <el-option label="是" value="true"></el-option>
          <el-option label="否" value="false"></el-option>
        </el-select>
      </el-form-item>
<!--      é›†æˆä»»åŠ¡ é›†æˆæ•°æ® æŽ¨é€ç±»åž‹-->
      <el-form-item v-if="((status.type === 'task' || status.type === 'data') && status.sendTypeFlga)" size="small">
        <el-select v-model="formInline.taskCut" placeholder="请选择推送类型">
          <el-option label="发布" value="Enabled"></el-option>
          <el-option label="回收" value="TakeBack"></el-option>
          <el-option label="停用" value="Disabled"></el-option>
        </el-select>
      </el-form-item>
<!--      é›†æˆä»»åŠ¡ åˆ›å»ºæ—¥æœŸ  é›†æˆæ—¥å¿— è®°å½•æ—¶é—´-->
      <el-form-item size="small" v-if="((status.type == 'loge' ||status.type == 'task') && status.dateFlag)">
        <el-date-picker
          v-model="formInline.Date"
          type="date"
          placeholder="选择日期时间">
        </el-date-picker>
      </el-form-item>
      <el-form-item size="small" >
<!--      é›†æˆä»»åŠ¡ æœ€åŽæŽ¨é€æ—¶é—´-->
      <el-form-item size="small" v-if="status.type == 'task' && status.lastDateFlag">
        <el-date-picker
          v-model="formInline.lastDate"
          type="date"
          placeholder="选择日期时间">
        </el-date-picker>
      </el-form-item>
<!--      å…¬ç”¨æ¨¡å—-->
<!--      è¾“入内容-->
      <el-form-item size="small" v-if="shouldShowInput">
        <el-input v-model="formInline.text" placeholder="请输入内容" @keyup.enter.native="SaveHandler"></el-input>
      </el-form-item>
<!--      æŸ¥è¯¢æŒ‰é’®-->
      <el-form-item size="small" v-if="shouldShowButton">
        <el-button type="success" size="small" @click="handleSearch">查询</el-button>
      </el-form-item>
    </el-form>
  </div>
@@ -30,46 +74,60 @@
import {getList} from "@/api/docking/loge";
export default {
  name: "VciDockingSearch",
  props:['SearchObject','page'],
  props:['SearchObject','page','formInline','status'],
  data() {
    return {
      typeFlag:false,
      dateFlag:false,
      formInline:{
        type:'',
        check:'',
        text:'',
        Date:''
      },
    }
  },
  computed: {
    //输入框判断
    shouldShowInput() {
      const isLogeType = this.status.type === 'loge';
      const isTaskType = this.status.type === 'task';
      const isDataType = this.status.type === 'data';
      return (
        (isLogeType && !this.status.stateFlag && !this.status.dateFlag && !this.status.typeFlag) ||
        (isTaskType && !this.status.stateTaskDataFlag && !this.status.dateFlag && !this.status.lastDateFlag && !this.status.sendTypeFlga) ||
        (isDataType && !this.status.stateTaskDataFlag && !this.status.sendTypeFlga)
      );
    },
    //按钮判断
    shouldShowButton() {
      const isLogeType = this.status.type === 'loge';
      const isTaskType = this.status.type === 'task';
      const isDataType = this.status.type === 'data';
      return(
        (isLogeType && (this.status.dateFlag || this.status.stateFlag || this.status.typeFlag)) ||
        (isTaskType && (this.status.stateTaskDataFlag || this.status.dateFlag || this.status.lastDateFlag || this.status.sendTypeFlga)) ||
        (isDataType && (this.status.stateTaskDataFlag || this.status.sendTypeFlga))
      );
    }
  },
  methods:{
    SelectChange(val){
      this.typeFlag = (this.SearchObject.type === 'loge' && val === 5);
      this.dateFlag = (this.SearchObject.type === 'loge' && val === 6);
      // if(this.SearchObject.type === 'loge'){
      //   if(val === 5){
      //     this.typeFlag=true;
      //   }else {
      //     this.typeFlag=false;
      //   }
      //   if(val === 6){
      //     this.dateFlag=true;
      //   }else {
      //     this.dateFlag=false;
      //   }
      // }
    SelectChange(val) {
      const logeType = this.status.type === 'loge';
      const taskType = this.status.type === 'task';
      const dataType = this.status.type === 'data';
      this.status.typeFlag = logeType && val === 5;
      this.status.dateFlag = (logeType && val === 6) || (taskType && val === 6);
      this.status.stateFlag = logeType && val === 7;
      this.status.lastDateFlag = taskType && val === 7;
      this.status.stateTaskDataFlag = (taskType && val === 8) || (dataType && val === 4);
      this.status.sendTypeFlga = (taskType && val === 5) || (dataType && val === 3);
    },
    SaveHandler(){
      let name = this.SearchObject.searchData[this.formInline.type].prop;
      getList(this.page.currentPage, this.page.pageSize, {[name]: this.formInline.text}).then(res => {
      getList(this.page.currentPage, this.page.pageSize, { [`conditionMap['${name}_like']`]: this.formInline.text}).then(res => {
        console.log(res);
      });
    },
    handleSearch(){
      let formattedDate = this.$moment(this.formInline.Date).format('YYYY-M-D');
      console.log('formattedDate',formattedDate);
    }
  }
}
</script>
<style scoped>
<style lang="scss" scoped>
</style>
Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
@@ -183,6 +183,7 @@
          label: '密级',
          width: 60,
          hidden: (!this.controllerSecret),
          hide: (!this.controllerSecret),
          formatter:function (d){
            return d.secretGradeText || d.data.secretGradeText
          }
@@ -209,6 +210,8 @@
              label: item.title,
              prop: item.field,
              formatter:formatter,
              sortable:item.sort,
              hide:item.hidden,
              search:this.options.tableConfig.queryColumns.some(qItem=>{
                return qItem.field==item.field
              })
Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
@@ -202,10 +202,16 @@
                    message: "请输入" + item.field,
                    trigger: "blur"
                  }];
                  item.formatter=function(d){
                    return d.field || d.data.field
                  };
                }
                item.formatter=function(d){
                  if(d[item.field]!=undefined){
                    return d[item.field]
                  }else if(d.data[item.field] !=undefined){
                    return d.data[item.field]
                  }else {
                    return ''
                  }
                };
                return {
                  ...item,
                  label: item.title,
@@ -267,6 +273,8 @@
                label: item.title,
                prop: item.field,
                formatter:formatter,
                sortable:item.sort,
                hide:item.hidden,
                search: this.options.tableConfig.queryColumns.some(qItem=>{
                  return qItem.field==item.field
                })
@@ -281,7 +289,6 @@
      this.params=paramsData;
    },
    setValue(){
      console.log('确定')
      if(this.selectionList.length==0){
        this.$message.warning( '没有选择数据');
        return false;
Source/UBCS-WEB/src/main.js
@@ -78,6 +78,9 @@
//复制插件
import VueClipboard from 'vue-clipboard2'
Vue.use( VueClipboard )
//时间插件
import moment from 'moment';
Vue.prototype.$moment = moment;
// æ³¨å†Œå…¨å±€å®¹å™¨
Vue.component('basicContainer', basicContainer);
Vue.component('basicBlock', basicBlock);
Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -6,7 +6,7 @@
        <master-tree @codeClassifyOid="codeClassifyOidList" @coderuleoid="coderuleoidList" :pageSize="this.pageSize"
          :currentPage="this.currentPage" @tableDataArray="tableDataArrays" @tableHeadDataFateher="tableHeadDatas"
          @tableHeadBttoms="tableHeadBttoms" @total="totals" @nodeClick="nodeClick"
          @tableHeadFindData="tableHeadFindDatas" @Treedata="TreedataList"></master-tree>
          @tableHeadFindData="tableHeadFindDatas" @Treedata="TreedataList" @TreeValue="TreeValueEmit"></master-tree>
      </basic-container>
    </el-aside>
    <el-main>
@@ -14,7 +14,7 @@
      <VciMasterCrud :page="this.page" :codeClassifyOid="this.codeClassifyOid" :coderuleoid="this.coderuleoid"
        @pageSize="pageSizes" @currentPage="currentPages" :tableDataArray="tableDataArray" :total="this.total"
        :tableHeadDataFateher="this.tableHeadDataFateher" :isLoading="isLoading" :templateOid="templateOid"
        :tableHeadFindData="tableHeadFindData" :tableHeadBtnData="masterVrBtnList" :Treedata="Treedata"></VciMasterCrud>
        :tableHeadFindData="tableHeadFindData" :tableHeadBtnData="masterVrBtnList" :Treedata="Treedata" :TreeValue="TreeValue"></VciMasterCrud>
    </el-main>
  </el-container>
</template>
@@ -42,12 +42,16 @@
      tableHeadDataFateher: [],
      total: "",
      isLoading: false,
      tableHeadFindData: {}
      tableHeadFindData: {},
      TreeValue:''
    }
  },
  created() {
  },
  methods: {
    TreeValueEmit(val){
      this.TreeValue=val
    },
    codeClassifyOidList(val) {
      this.codeClassifyOid = val;
    },
Source/UBCS-WEB/src/views/code/code.vue
@@ -1876,6 +1876,8 @@
              oid: this.codefixedsecOrCodeclassifysec.oid,
            });
            this.clearFixedOrClassifyForm("codefixedsec");
            this.$refs.crudFixedValue.refreshTable();
            this.$refs.crudFixedValue.doLayout();
            this.$message({
              type: "success",
              message: "操作成功!",
Source/UBCS-WEB/src/views/docking/data.vue
@@ -8,12 +8,16 @@
               :permission="permissionList"
               ref="crud"
               @search-change="searchChange"
               @cell-dblclick="cellDbClick"
               @search-reset="searchReset"
               @selection-change="selectionChange"
               @current-change="currentChange"
               @size-change="sizeChange"
               @refresh-change="refreshChange"
               @on-load="onLoad">
      <template slot-scope="scope" slot="menuLeft">
        <vci-docking-search :SearchObject="SearchObject" :page="page" :formInline="formInline" :status="status"></vci-docking-search>
      </template>
    </avue-crud>
  </basic-container>
</template>
@@ -28,6 +32,50 @@
name: "data",
  data(){
  return {
    //各个类型状态
    status:{
      type:'data',
      sendTypeFlga:false,
      stateTaskDataFlag:false
    },
    //model绑定
    formInline:{
      type:'',
      text:'',
      stateTask:'',
      taskCut:''
    },
    //集成类型死数据
    SearchObject:{
      searchData:[
        {
          label:'数据编码',
          prop: "id",
          value:0
        },
        {
          label:'分类代号',
          prop: "classifyId",
          value:1
        },
        {
          label:'分类名称',
          prop: 'classifyName',
          value:2
        },
        {
          label:'推送类型',
          prop: 'sendType',
          value:3
        },
        {
          label:'是否分解任务',
          prop: 'sendFlag',
          value:4
        },
      ]
    },
    value:'',
    loading: false,
    query: {},
    selectionList: [],
@@ -141,6 +189,19 @@
    }
  },
  methods: {
    async cellDbClick(row, column, cell, event) {
      for (const key in row) {
        if (key === column.property) {
          this.value = row[key];
        }
      }
      try {
        await this.$copyText(this.value);
        this.$message.success('复制成功');
      } catch (error) {
        this.$message.warning('复制失败');
      }
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
Source/UBCS-WEB/src/views/docking/loge.vue
@@ -16,7 +16,7 @@
               @refresh-change="refreshChange"
               @on-load="onLoad">
      <template slot-scope="scope" slot="menuLeft">
        <vci-docking-search :SearchObject="SearchObject" :page="page"></vci-docking-search>
        <vci-docking-search :SearchObject="SearchObject" :page="page" :formInline="formInline" :status="status"></vci-docking-search>
      </template>
    </avue-crud>
  </basic-container>
@@ -32,8 +32,23 @@
  data(){
    return {
      value:'',
      SearchObject:{
      //各个类型状态
      status:{
        type:'loge',
        typeFlag:false,
        dateFlag:false,
        stateFlag:false,
      },
      //model绑定
      formInline:{
        type:'',
        cut:'',
        text:'',
        Date:'',
        state:''
      },
      //集成类型死数据
      SearchObject:{
        searchData:[
          {
            label:'数据编码',
Source/UBCS-WEB/src/views/docking/task.vue
@@ -8,6 +8,7 @@
               :permission="permissionList"
               ref="crud"
               @search-change="searchChange"
               @cell-dblclick="cellDbClick"
               @search-reset="searchReset"
               @selection-change="selectionChange"
               @current-change="currentChange"
@@ -15,12 +16,15 @@
               @refresh-change="refreshChange"
               @on-load="onLoad">
      <template slot="menuLeft">
        <el-button type="primary"
                   size="small"
                   plain
                   icon="el-icon-refresh-right"
                   @click="handleSend">手动推送
        </el-button>
          <el-button type="primary"
                     size="small"
                     plain
                     icon="el-icon-refresh-right"
                     @click="handleSend">手动推送
          </el-button>
        <div style="float: right;margin-left: 10px">
          <vci-docking-search :formInline="formInline" :SearchObject="SearchObject" :page="page" :status="status"></vci-docking-search>
        </div>
      </template>
    </avue-crud>
  </basic-container>
@@ -36,6 +40,74 @@
  name: "task",
  data(){
    return {
      //model绑定
      formInline:{
        type:'',
        stateTask:'',
        lastDate:'',
        Date:'',
        text:'',
        taskCut:''
      },
      //各个类型状态
      status:{
        type:'task',
        stateTaskDataFlag:false,
        dateFlag:false,
        lastDateFlag:false,
        sendTypeFlga:false
      },
      //集成类型死数据
      SearchObject:{
        searchData:[
          {
            label:'数据编码',
            prop: "id",
            value:0
          },
          {
            label:'分类代号',
            prop: 'classifyId',
            value:1
          },
          {
            label:'分类名称',
            prop: 'classifyName',
            value:2
          },
          {
            label:'集成系统编号',
            prop: 'systemCode',
            value:3
          },
          {
            label:'集成系统名称',
            prop: 'systemName',
            value:4
          },
          {
            label:'推送类型',
            prop: 'sendType',
            value:5
          },
          {
            label:'任务创建时间',
            prop: 'createTime',
            value:6
          },
          {
            label:'最后推送时间',
            prop: 'lastModifyTime',
            value:7
          },
          {
            label:'是否推送成功',
            prop: 'sendFlag',
            value:8
          }
        ]
      },
      value:'',
      loading: false,
      query: {},
      selectionList: [],
@@ -170,6 +242,19 @@
    }
  },
  methods: {
    async cellDbClick(row, column, cell, event) {
      for (const key in row) {
        if (key === column.property) {
          this.value = row[key];
        }
      }
      try {
        await this.$copyText(this.value);
        this.$message.success('复制成功');
      } catch (error) {
        this.$message.warning('复制失败');
      }
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/DMS.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<clsfs>
    <clsf library="renyuan">
        <prop    sourceKey="id"    sourceName="编码"    targetKey="lm_code"    targetName="编码"/>
        <prop    sourceKey="group_code"    sourceName="集团码"    targetKey="ordernum"    targetName="集团码"/>
        <prop    sourceKey="name"    sourceName="名称"    targetKey="name"    targetName="名称"/>
        <prop    sourceKey="creator"    sourceName="创建人"    targetKey="    creator    "    targetName="创建人"/>
        <prop    sourceKey="createtime"    sourceName="创建时间"    targetKey="createtime"    targetName="创建时间"/>
        <prop    sourceKey="modifier"    sourceName="最后修改人"    targetKey="modifier"    targetName="最后修改人"/>
        <prop    sourceKey="modifytime"    sourceName="最后修改时间"    targetKey="modifytime"    targetName="最后修改时间"/>
    </clsf>
</clsfs>
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/EnumerableData.java
@@ -17,4 +17,46 @@
     * æè¿°
     */
    private String descript;
    public String getMdm_code() {
        return mdm_code;
    }
    public void setMdm_code(String mdm_code) {
        this.mdm_code = mdm_code;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescript() {
        return descript;
    }
    public void setDescript(String descript) {
        this.descript = descript;
    }
    @Override
    public String toString() {
        return "EnumerableData{" +
            "mdm_code='" + mdm_code + '\'' +
            ", code='" + code + '\'' +
            ", name='" + name + '\'' +
            ", descript='" + descript + '\'' +
            '}';
    }
}
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/OrgMasterData.java
@@ -106,7 +106,7 @@
    private String  link_fieldvalue;
    private String floy_middatastatus;
    private String originalcode;
    private String pk_mdn;
    private String pk_mdm;
    private String mdm_duplicate;
    private String mdm_code;
    private String mdm_version;
@@ -366,12 +366,12 @@
        this.originalcode = originalcode;
    }
    public String getPk_mdn() {
        return pk_mdn;
    public String getPk_mdm() {
        return pk_mdm;
    }
    public void setPk_mdn(String pk_mdn) {
        this.pk_mdn = pk_mdn;
    public void setPk_mdm(String pk_mdn) {
        this.pk_mdm = pk_mdn;
    }
    public String getMdm_duplicate() {
@@ -464,7 +464,7 @@
            ", link_fieldvalue='" + link_fieldvalue + '\'' +
            ", floy_middatastatus='" + floy_middatastatus + '\'' +
            ", originalcode='" + originalcode + '\'' +
            ", pk_mdn='" + pk_mdn + '\'' +
            ", pk_mdm='" + pk_mdm + '\'' +
            ", mdm_duplicate='" + mdm_duplicate + '\'' +
            ", mdm_code='" + mdm_code + '\'' +
            ", mdm_version='" + mdm_version + '\'' +
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/PersonMasterData.java
@@ -187,7 +187,7 @@
    private String flow_middatastatus;
    private String employer;
    private int mdm_duplicate;
    private EnumerableData gerder_entity;
    private EnumerableData gender_entity;
    private EnumerableData employment_type_entity;
    private String gerder;
    private  String employment_type;
@@ -561,12 +561,12 @@
        this.mdm_duplicate = mdm_duplicate;
    }
    public EnumerableData getGerder_entity() {
        return gerder_entity;
    public EnumerableData getGender_entity() {
        return gender_entity;
    }
    public void setGerder_entity(EnumerableData gerder_entity) {
        this.gerder_entity = gerder_entity;
    public void setGender_entity(EnumerableData gender_entity) {
        this.gender_entity = gender_entity;
    }
    public EnumerableData getEmployment_type_entity() {
@@ -659,7 +659,7 @@
    @Override
    public String toString() {
        return "MasterData{" +
        return "PersonMasterData{" +
            "id='" + id + '\'' +
            ", lm_code='" + lm_code + '\'' +
            ", group_code='" + group_code + '\'' +
@@ -705,8 +705,8 @@
            ", flow_middatastatus='" + flow_middatastatus + '\'' +
            ", employer='" + employer + '\'' +
            ", mdm_duplicate=" + mdm_duplicate +
            ", gerder_entity='" + gerder_entity + '\'' +
            ", employment_type_entity='" + employment_type_entity + '\'' +
            ", gender_entity=" + gender_entity +
            ", employment_type_entity=" + employment_type_entity +
            ", gerder='" + gerder + '\'' +
            ", employment_type='" + employment_type + '\'' +
            ", employment_type_nane='" + employment_type_nane + '\'' +
Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/person/org..json
@@ -1,79 +1,77 @@
{
  msg:null,
  masterData:[
  {
    "departnent_code": "108040",
    "is_virtual": 0,
    "id_route": "2843121148743936]2843121413050624]",
    "departnent_type": "1",
    "nodifytime": "2023-06-1510:34:37",
    "mdm_workflow_status":l,
    "modifier":"王硕",
    "telephone_nunber":null,
    "mdm_datastatus":3,
    "parent_departnent_nane":“财务管理部",
    "ndn_cleanstatus": "VAITING",
  "msg": null,
  "masterData": [{
    "country": "中国大陆",
    "education": "大学本科",
    "mdm_workflow_status": 0,
    "worker_category": "在岗",
    "modifier": "主数据系统",
    "mdm_datastatus": 3,
    "link_fieldvalue": null,
    "dr:0,"
    dr_ndm_code
    ":"
    0,
    "enable_status :3,"
    ndn_parentcode
    ";null,"
    departent
    head
    ":null,"
    floy_middatastatus
    ":null,"
    originalcode
    ":null,"
    node
    type
    ":"
    éƒ¨,
    "company_code": "20220423,department_level"
    :
    "2",
    "nane_route": null,
    "sort_order": "81”,"
    pk_mdn
    ":"
    1720683591179436130
    ",display_status": "不显示,"
    parent_department
    _code
    ":"
    108000
    ",creator:"
    çŽ‹ç‘žæ³¢
    â€,
    "createtine": 2023-05-08
    10: 45
    :
    33
    ï¼Œ
    "departnent nane": é›†å›¢è´¢åС处6666
    â€
    .
    "ndm duplicate": 0,
    ndn
    code
    ?
    :
    "99",
    /dcpartment_status
    ":"
    ä½œåºŸ
    â€
    ï¼Œ
    ndm_version
    ":4,company name :中国航发黎明"
    original
    nane: null,
    "departnent head code": null,
    "ts :"
    2023-06-1510: 34
    :
    37.451
    "]], distributeToken=, code=0, systemCode=nhdept,ndType=departnent_basic, action=distribute_manual}
    "dr": 0,
    "flow_middatastatus": null,
    "employer": "领焊加工厂",
    "parent_dept_code": "403000",
    "politiccountenance": null,
    "outer_email": null,
    "id_number": "210104198806062312",
    "worker_level": "初级工《基本生产》",
    "admin_division_code": null,
    "work_title": null,
    "mdm_duplicate":0,
    "employer_code":"403000",
    "birthplace": "辽宁省沈阳市”,",
    "nationality": "汉族",
    "gender_entity":{
      "mdm_code":"1",
      "code":"5",
      "name":"男性",
      "descript":"男女,集团标准要求: ç”·æ€§ 1和5,女性2和6"
    },
    "name":"田苗",
    "position":"飞机发动机领金工",
    "employment_type_entity":{
      "mdm_code":"1",
      "code":"1,",
      "name":"部门主职",
      "descript":"1、部门王职 2、部门兼职"
    },
    "parent_dept_name":"领焊加工厂",
    "brithday": "1988-06-06",
    "employment_type": "1",
    "employment_type_nane":"部门主职",
    "group_code":"19885013",
    "gender":1,
    "admin_division":null,
    "modifytime" :"2023-08-29",
    "worker_security_level":null,
    "mdm_cleanstatus":"WAITINC",
    "dr_mdm_code": "0",
    "mdm_parentcode":null,
    "mobile_phone":"15140256567",
    "id_type":"身份证",
    "dept_type":"机匣火焰筒工段",
    "worker_email":null,
    "pk_mdm":"1723S7091785C804868",
    "employment_form":"正式在岗人员",
    "lm_code":"19885013",
    "creator":"主数据系统" ,
    "createtime":"2023-06-1201:39:40",
    "office_telephone":null,
    "citizenship":"辽广省沈阳市",
    "dept_name":"403002",
    "mdm_code":"16305",
    "gender_name":"男性”,",
    "is_keyposion":"是",
    "worker_duty":"飞机友动机钣金工",
    "marital_status":"未婚",
    "mdm_version":"75,",
    "ts":"2025-08-t9 17:52:19.026"
  }],
  "distributeToken":"",
  "code":0,
  "systemCode":"mhperson",
  "mdType": "person_basic",
  "action": "distribute_subscribe"
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeApplyOrgPersonController.java
@@ -7,10 +7,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
 * ç”³è¯·äººå‘˜éƒ¨é—¨æŽ§åˆ¶å™¨
@@ -37,7 +34,7 @@
     * @throws Throwable
     */
    @PostMapping("/syncDataForPerson")
    public ResultOrgData syncDataForPerson(@RequestParam PersonData personData)  {
    public ResultOrgData syncDataForPerson(@RequestBody PersonData personData)  {
        String result="";
        try {
            return universalInterfaceI.syncDataForPerson(personData);
@@ -55,7 +52,7 @@
     * @throws Throwable
     */
    @PostMapping("/syncDataForOrg")
    public ResultOrgData syncDataForOrg(@RequestParam OrgData orgData)  {
    public ResultOrgData syncDataForOrg(@RequestBody OrgData orgData)  {
        String result="";
        try {
            return universalInterfaceI.syncDataForOrg(orgData);
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java
@@ -111,4 +111,12 @@
     * @return æœ‰é”™è¯¯ä¿¡æ¯çš„excel
     */
    void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode);
    /***
     * ç”³è¯·é›†å›¢ç æŽ¥å£
     * @param idList æ•°æ®oid
     * @param btmName ä¸šåŠ¡ç±»åž‹
     * @param operationType
     */
    void sendApplyGroupcode(List<String> idList,String btmName,String operationType);
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -4455,7 +4455,7 @@
     * @param idList
     * @param btmName
     */
    private void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
    public void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
        String oids=VciBaseUtil.array2String(idList.toArray(new String[]{}));
        if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue())) {
            mdmInterJtClient.applyGroupCode(oids,btmName);
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -352,14 +352,23 @@
     */
    @Override
    public ResultOrgData syncDataForPerson(PersonData personData) {
        boolean isUsedFlag= personAndDeptConfig.isUsedFlag();
        ResultOrgData resultOrgData=new ResultOrgData();
        boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode();
        String systemCode=personData.getSystemCode();
        List<ResultMdMapping> resultMdMappingList=new ArrayList<>();
        boolean success=true;
        String message="";
        if(isUsedFlag){
            List<PersonMasterData> masterDataList = personData.getMasterData();
            List<PersonMasterData> masterDataList=new ArrayList<>();
            List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields());
            try {
                if(personData==null){
                    throw new Throwable("传入参数为null");
                }
                masterDataList = personData.getMasterData();
                String personLibrary = personAndDeptConfig.getPersonLibrary();
                if (StringUtils.isBlank(personLibrary)) {
                    success=false;
@@ -400,15 +409,31 @@
                    object.setEditor(personMasterData.getModifier());//修改者
                    object.setId(personMasterData.getId());//主键
                    object.setStatus(CodeDefaultLC.RELEASED.getValue());//状态则需要判断
                    Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData);
                    List<ProppertyVO> proppertyVOList=new ArrayList<>();
                    /***
                     * æ ¹æ®é…ç½®æ–‡ä»¶èŽ·å–æžšä¸¾å€¼
                     */
                    fields.stream().forEach(field->{
                        if(dataMap.containsKey(field)){
                            String enumFiled= dataMap.get(field);
                            EnumerableData enumerableData=JSONObject.toJavaObject(JSONObject.parseObject(enumFiled),EnumerableData.class);
                            String enumCode=enumerableData.getCode();
                            //String enumCodeValue=enumerableData.getName();
                            ProppertyVO proppertyVO=new ProppertyVO();
                            proppertyVO.setKey(field);
                            proppertyVO.setValue(enumCode);
                            proppertyVOList.add(proppertyVO);
                            dataMap.remove(field);
                        }
                    });
                    dataMap.forEach((key,vaule)->{
                        ProppertyVO proppertyVO=new ProppertyVO();
                        proppertyVO.setKey(key);
                        proppertyVO.setValue(vaule);
                        proppertyVOList.add(proppertyVO);
                    });
                    object.setProp(proppertyVOList);
                    if(personMasterData.getDr()==1){
                        object.setOperate("delete");//操作类型
@@ -470,7 +495,7 @@
                LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>();
                if(editDatasVO.getObject()!=null&&editDatasVO.getObject().size()>0){
                    DataObjectVO dataObjectVO = new DataObjectVO();
                    this.getConfigDatas("ERP", personLibrary, editDatasVO, attrVOS, dataObjectVO);
                    this.getConfigDatas(systemCode, personLibrary, editDatasVO, attrVOS, dataObjectVO);
                    log.info("start:修改数据执行完毕");
                    boolean  personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode();
                    mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode);
@@ -478,7 +503,7 @@
                }
                if(applyDatasVO.getObject()!=null&&applyDatasVO.getObject().size()>0) {
                    DataObjectVO dataObjectVO = new DataObjectVO();
                    this.getConfigDatas("ERP", personLibrary, editDatasVO, attrVOS, dataObjectVO);
                    this.getConfigDatas(systemCode, personLibrary, applyDatasVO, attrVOS, dataObjectVO);
                    CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
                    CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
@@ -492,6 +517,7 @@
                            CodeOrderDTO orderDTO = new CodeOrderDTO();
                            List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
                            orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                            orderDTO.setTemplateOid(templateVO.getOid());
                            if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) {
                                ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> {
                                    if (codeBasicSecVO.getSecType().equals("codevariablesec")) {//规则之定义为可变码段存储主数据传递过来的数据
@@ -503,6 +529,7 @@
                                    }
                                });
                            }
                            orderDTO.setCodeRuleOid(ruleVO.getOid());
                            orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码
                            orderDTO.setData(rowData.getFiledValue());
                            engineService.addSaveCode(orderDTO);
@@ -533,6 +560,11 @@
                        resultMdMappingList.add(resultMdMapping);
                    });
                    log.info("end:申请获取完毕");
                    //如果有申请就去调用申请集团码
                    if(isPersonApplyGroupCode){
                        List<String> oidList=new ArrayList<>();
                        mdmIOService.sendApplyGroupcode(oidList,templateVO.getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
                    }
                }
            }catch (Throwable e){
                success=false;
@@ -554,10 +586,17 @@
                resultOrgData.setSuccess(success);
                resultOrgData.setMdMappings(resultMdMappingList);
                Object object = JSONObject.toJSON(resultOrgData);
                return resultOrgData;
            }
            String resultStr = JSONObject.toJSONString(resultOrgData);
            String data = JSONObject.toJSONString(personData);
            try {
                //记录日志
                this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForPerson");
            }catch (Throwable e){
                e.printStackTrace();
            }
        }
        Object object = JSONObject.toJSON(resultOrgData);
        return resultOrgData;
    }
    /****
@@ -568,7 +607,246 @@
     */
    @Override
    public ResultOrgData syncDataForOrg(OrgData orgData) {
        return null;
        boolean isUsedFlag= personAndDeptConfig.isUsedFlag();
        ResultOrgData resultOrgData=new ResultOrgData();
        boolean isPersonApplyGroupCode= personAndDeptConfig.isPersonApplyGroupCode();
        List<ResultMdMapping> resultMdMappingList=new ArrayList<>();
        boolean success=true;
        String message="";
        String systemCode="";
        if(isUsedFlag){
            List<OrgMasterData> orgMasterDataList=new ArrayList<>();
            List<String> fields= VciBaseUtil.str2List(personAndDeptConfig.getPersonFields());
            try {
                if(orgData==null){
                    throw new Throwable("传入参数为null");
                }
                systemCode=orgData.getSystemCode();
                orgMasterDataList = orgData.getMasterData();
                String personLibrary = personAndDeptConfig.getPersonLibrary();
                if (StringUtils.isBlank(personLibrary)) {
                    success=false;
                    log.info("集成配置缺少人员库节点信息,personLibrary->" + personLibrary);
                    throw  new Throwable("集成配置缺少人员库节点信息,personLibrary->" + personLibrary);
                }
                String personClassCode = personAndDeptConfig.getPersonClassCode();
                ClassfyVO classfyVO = new ClassfyVO();
                classfyVO.setLibrary(personLibrary);
                classfyVO.setClassCode(personClassCode);
                CodeClassifyVO  codeClassifyVO=this.getClassfy(classfyVO,personLibrary);
                log.info("end:分类查询完毕");
                //获取分类模板信息
                if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
                    success=false;
                    throw  new  Throwable ("根据配置分类的分类编号,未获取到分类信息");
                }
                CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
                if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
                    success=false;
                    throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应模板");
                }
                List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
                ).collect(Collectors.toList());
                List<Map> dataList=new ArrayList<>();
                List<String> codeList=new ArrayList<>();
                List<ApplyDataVO> applyDataVOList=new ArrayList<>();
                List<ApplyDataVO> deleteDataVOList=new ArrayList<>();
                orgMasterDataList.stream().forEach(personMasterData -> {
                    ApplyDataVO object=new ApplyDataVO();
                    object.setCode(personMasterData.getMdm_code());//编码
                    object.setCreator(personMasterData.getCreator());//创建者
                    object.setEditor(personMasterData.getModifier());//修改者
                    object.setId(personMasterData.getPk_mdm());//主键
                    object.setStatus(CodeDefaultLC.RELEASED.getValue());//状态则需要判断
                    Map<String,String> dataMap= VciBaseUtil.objectToMapString(personMasterData);
                    List<ProppertyVO> proppertyVOList=new ArrayList<>();
                    /***
                     * æ ¹æ®é…ç½®æ–‡ä»¶èŽ·å–æžšä¸¾å€¼
                     */
                    fields.stream().forEach(field->{
                        if(dataMap.containsKey(field)){
                            String enumFiled= dataMap.get(field);
                            EnumerableData enumerableData=JSONObject.toJavaObject(JSONObject.parseObject(enumFiled),EnumerableData.class);
                            String enumCode=enumerableData.getCode();
                            //String enumCodeValue=enumerableData.getName();
                            ProppertyVO proppertyVO=new ProppertyVO();
                            proppertyVO.setKey(field);
                            proppertyVO.setValue(enumCode);
                            proppertyVOList.add(proppertyVO);
                            dataMap.remove(field);
                        }
                    });
                    dataMap.forEach((key,vaule)->{
                        ProppertyVO proppertyVO=new ProppertyVO();
                        proppertyVO.setKey(key);
                        proppertyVO.setValue(vaule);
                        proppertyVOList.add(proppertyVO);
                    });
                    object.setProp(proppertyVOList);
                    if(personMasterData.getDr()==1){
                        object.setOperate("delete");//操作类型
                        deleteDataVOList.add(object);
                    }else{
                        codeList.add(personMasterData.getMdm_code());
                        object.setOperate("create");
                        applyDataVOList.add(object);
                    }
                });
                R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
                if(!r.isSuccess()) {
                    throw new Throwable(r.getMsg());
                }
                BtmTypeVO btmTypeVO = r.getData();
                if (btmTypeVO == null) {
                    throw new Throwable("根据业务类型未查询到业务类型对象!");
                }
                String tableName = btmTypeVO.getTableName();
                if (com.alibaba.nacos.common.utils.StringUtils.isBlank(tableName)) {
                    throw new Throwable("根据业务类型未查询到业务类型相关联的表");
                }
                StringBuffer sb=new StringBuffer();
                sb.append(" select * from ");
                sb.append(tableName);
                sb.append(" where 1=1 ");
                sb.append(" and lastr=1 and lastv=1" );
                sb.append(" and id in (");
                sb.append(VciBaseUtil.toInSql(codeList.toArray(new String[0])));
                sb.append(")");
                List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
                List<ClientBusinessObject> cboList=    ChangeMapTOClientBusinessObjects(dataMapList);
                ApplyDatasVO applyDatasVO=new ApplyDatasVO();
                ApplyDatasVO editDatasVO=new ApplyDatasVO();
                if(!CollectionUtils.isEmpty(cboList)){
                    Map<String,ClientBusinessObject> oldpplyDataVOMap=    cboList.stream().filter(data -> data != null && StringUtils.isNotBlank(data.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
                    //数据库不存在的
                    List<ApplyDataVO> applyApplyDataVOList = applyDataVOList.stream().filter(cbo -> {
                        String code =cbo.getCode();
                        return !oldpplyDataVOMap.containsKey(code);
                    }).collect(Collectors.toList());
                    applyDatasVO.setObject(applyApplyDataVOList);
                    //数据库存在的
                    List<ApplyDataVO> editApplyDataVOList = applyDataVOList.stream().filter(cbo -> {
                        String code =cbo.getCode();
                        if(oldpplyDataVOMap.containsKey(code)){
                            cbo.setOperate("update");
                        }
                        return oldpplyDataVOMap.containsKey(code);
                    }).collect(Collectors.toList());
                    editApplyDataVOList.addAll(deleteDataVOList);
                    editDatasVO.setObject(editApplyDataVOList);
                }else{
                    applyDatasVO.setObject(applyDataVOList);
                }
                LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>();
                if(editDatasVO.getObject()!=null&&editDatasVO.getObject().size()>0){
                    DataObjectVO dataObjectVO = new DataObjectVO();
                    this.getConfigDatas(systemCode, personLibrary, editDatasVO, attrVOS, dataObjectVO);
                    log.info("start:修改数据执行完毕");
                    boolean  personApplyGroupCode =personAndDeptConfig.isPersonApplyGroupCode();
                    mdmIOService.batchSyncEditDatas(codeClassifyVO,dataObjectVO, resultDataObjectDetailDOs,personApplyGroupCode);
                    log.info("end:修改数据执行完毕");
                }
                if(applyDatasVO.getObject()!=null&&applyDatasVO.getObject().size()>0) {
                    DataObjectVO dataObjectVO = new DataObjectVO();
                    this.getConfigDatas(systemCode, personLibrary, applyDatasVO, attrVOS, dataObjectVO);
                    CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
                    CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
                    if(ruleVO==null||"".equals(ruleVO.getOid())){
                        throw  new Throwable("编码规则");
                    }
                    List<XMLResultDataObjectDetailDO> xDOs=new CopyOnWriteArrayList<>();
                    dataObjectVO.getRowData().parallelStream().forEach(rowData->{
                        String mesg="";
                        try {
                            CodeOrderDTO orderDTO = new CodeOrderDTO();
                            List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
                            orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                            orderDTO.setTemplateOid(templateVO.getOid());
                            if(!CollectionUtils.isEmpty(ruleVO.getSecVOList())) {
                                ruleVO.getSecVOList().stream().forEach(codeBasicSecVO -> {
                                    if (codeBasicSecVO.getSecType().equals("codevariablesec")) {//规则之定义为可变码段存储主数据传递过来的数据
                                        CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO();
                                        CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid());
                                        CodeOrderSecDTO.setSecValue(rowData.getCode());
                                        codeOrderSecDTOList.add(CodeOrderSecDTO);
                                    }
                                });
                            }
                            orderDTO.setCodeRuleOid(ruleVO.getOid());
                            orderDTO.setSecDTOList(codeOrderSecDTOList);//存储编码
                            orderDTO.setData(rowData.getFiledValue());
                            engineService.addSaveCode(orderDTO);
                        } catch (Exception e) {
                            mesg=e.getMessage();
                            e.getMessage();
                            e.printStackTrace();
                        }finally {
                            XMLResultDataObjectDetailDO x=new XMLResultDataObjectDetailDO();
                            x.setId(rowData.getOid());
                            x.setCode(rowData.getCode());
                            x.setMsg(mesg);
                            x.setErrorid("1");
                            xDOs.add(x);
                        }
                    });
                    resultDataObjectDetailDOs.addAll(xDOs);
                    boolean finalSuccess1 = success;
                    String finalMessage1 = message;
                    resultDataObjectDetailDOs.stream().forEach(resultDataObjectDetailDO->{
                        ResultMdMapping resultMdMapping=new ResultMdMapping();
                        resultMdMapping.setBusiDataId(resultDataObjectDetailDO.getId());
                        resultMdMapping.setSuccess(finalSuccess1);
                        resultMdMapping.setEntityCode(" ");
                        resultMdMapping.setMdmCode(resultDataObjectDetailDO.getCode());
                        resultMdMapping.setMessage(finalMessage1);
                        resultMdMapping.setSubMdMappings(null);
                        resultMdMappingList.add(resultMdMapping);
                    });
                    log.info("end:申请获取完毕");
                    //如果有申请就去调用申请集团码
                    if(isPersonApplyGroupCode){
                        List<String> oidList=new ArrayList<>();
                        mdmIOService.sendApplyGroupcode(oidList,templateVO.getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
                    }
                }
            }catch (Throwable e){
                success=false;
                message="人员数据接受失败:"+e.getMessage();
                //组织返回结果
                boolean finalSuccess = success;
                String finalMessage = message;
                orgMasterDataList.stream().forEach(masterData -> {
                    ResultMdMapping resultMdMapping=new ResultMdMapping();
                    resultMdMapping.setBusiDataId(masterData.getPk_mdm());
                    resultMdMapping.setSuccess(finalSuccess);
                    resultMdMapping.setEntityCode(" ");
                    resultMdMapping.setMdmCode(masterData.getMdm_code());
                    resultMdMapping.setMessage(finalMessage);
                    resultMdMapping.setSubMdMappings(null);
                });
            }finally {
                resultOrgData.setMessage(message);
                resultOrgData.setSuccess(success);
                resultOrgData.setMdMappings(resultMdMappingList);
                Object object = JSONObject.toJSON(resultOrgData);
            }
            String resultStr = JSONObject.toJSONString(resultOrgData);
            String data = JSONObject.toJSONString(orgData);
            try {
                //记录日志
                this.saveLogs(systemCode, systemCode, data, resultStr, success, msg, "syncDataForOrg");
            }catch (Throwable e){
                e.printStackTrace();
            }
        }
        return resultOrgData;
    }
    /***
     * ç»Ÿä¸€æ›´æ–°æŽ¥å£ï¼ˆæ›´æ”¹çŠ¶æ€ï¼Œæ›´æ”¹å±žæ€§ä¿¡æ¯ï¼‰æŽ¥å£
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/webService/config/PersonAndDeptConfig.java
@@ -3,6 +3,8 @@
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
@ConfigurationProperties(prefix="org.applypersonanddept")
@Component
public class PersonAndDeptConfig {
@@ -34,7 +36,16 @@
    /***
     * æ˜¯å¦å¼€å¯
     */
    private boolean isUsedFlag;
    private boolean usedFlag;
    /***
     * äººå‘˜æŽ¥å£æžšä¸¾å€¼å­—段
     */
    private String personFields;
    /***
     * ç»„织接口枚举值字段
     */
    private String deptFields;
    public String getPersonLibrary() {
        return personLibrary;
@@ -69,11 +80,11 @@
    }
    public boolean isUsedFlag() {
        return isUsedFlag;
        return usedFlag;
    }
    public void setUsedFlag(boolean usedFlag) {
        isUsedFlag = usedFlag;
        this.usedFlag = usedFlag;
    }
    public boolean isPersonApplyGroupCode() {
@@ -92,6 +103,22 @@
        this.deptApplyGroupCode = deptApplyGroupCode;
    }
    public String getPersonFields() {
        return personFields;
    }
    public void setPersonFields(String personFields) {
        this.personFields = personFields;
    }
    public String getDeptFields() {
        return deptFields;
    }
    public void setDeptFields(String deptFields) {
        this.deptFields = deptFields;
    }
    @Override
    public String toString() {
        return "PersonAndDeptConfig{" +
@@ -101,7 +128,9 @@
            ", deptClassCode='" + deptClassCode + '\'' +
            ", personApplyGroupCode=" + personApplyGroupCode +
            ", deptApplyGroupCode=" + deptApplyGroupCode +
            ", isUsedFlag=" + isUsedFlag +
            ", usedFlag=" + usedFlag +
            ", personFields='" + personFields + '\'' +
            ", deptFields='" + deptFields + '\'' +
            '}';
    }
}