ludc
2023-07-27 a598f579e21d4dcc30b5d8fa1737f24f4dd90012
Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
已修改10个文件
245 ■■■■■ 文件已修改
Source/UBCS-WEB/src/components/Master/MasterTree.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/attrCrud.vue 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/wel/Statistic.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleClient.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/RevisionRuleClient.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -84,7 +84,8 @@
      console.log(this.idData)
      getTreeList({'conditionMap[id]':this.idData }).then(res=>{
        console.log(res)
        this.Treedata=res.data
        this.Treedata=res.data;
        console.log('Treedata',this.Treedata)
        const [firstProperty] = res.data;
        this.ModifyProperties(this.Treedata, 'text', 'label');
        this.codeClassifyOid=firstProperty.oid;
@@ -162,6 +163,7 @@
    },
    //树点击事件
    async nodeClick(data) {
      console.log('CloneTreeAvueform',this.CloneTreeAvueform)
      try {
        this.nodeClickList = data;
        this.tableHeadDataFateher=[]
Source/UBCS-WEB/src/components/Tree/attrCrud.vue
@@ -1,7 +1,7 @@
<template>
  <div>
    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag"class="app">
    <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag" class="app">
      <el-button-group>
      <!--新增-->
      <el-button v-if="attrEditVisible == false && attrFlagChiledren==false && (!checkStatus || crudLCStatus=='Editing')" size="small" type="primary" icon="el-icon-plus" @click="busineHandle">添加 {{ msg }}</el-button>
      <!--        全屏编辑-->
@@ -10,31 +10,38 @@
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-info" size="small" @click="ruleAddHandler">验证规则</el-button>
      <!--        属性分组-->
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-menu" size="small" @click="attrVisibleHandle">属性分组</el-button>
      </el-button-group>
      <el-button-group>
        <!--新增-->
      <!--        分类注入-->
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-magic-stick" size="small" @click="injectBtn">分类注入</el-button>
        <!--    组合规则-->
        <el-button v-if="!checkStatus || crudLCStatus=='Editing'" size="small" @click="isShowHandler">组合规则</el-button>
        <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-film" size="small" @click="isShowHandler">组合规则</el-button>
      <!--        枚举注入-->
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" size="small" @click="enmuVisHandle">枚举注入</el-button>
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" icon="el-icon-c-scale-to-original" size="small" @click="enmuVisHandle">枚举注入</el-button>
      <!--    级联属性-->
      <el-button v-if="!checkStatus|| crudLCStatus=='Editing'" size="small" @click="CascadeHandle">级联属性</el-button>
      <el-button v-if="!checkStatus|| crudLCStatus=='Editing'" icon="el-icon-coin" size="small" @click="CascadeHandle">级联属性</el-button>
      </el-button-group>
      <el-button-group>
      <!--    预览排序-->
        <el-button size="small" @click="orderHandle" icon="el-icon-arrow-down">预览排序</el-button>
        <!--新增-->
      <!--    保存-->
      <el-button v-if="!checkStatus|| crudLCStatus=='Editing'" size="small" @click="addsHandler" icon="el-icon-check">保存</el-button>
      <!--    删除-->
      <el-button v-if="!checkStatus || crudLCStatus=='Editing'" size="small" @click="CrudRemove" icon="el-icon-delete">删除</el-button>
      <!--    重置-->
      <el-button size="small" @click="reset" icon="el-icon-refresh-right">重置</el-button>
      </el-button-group>
      <el-button-group>
      <!--    同步到其他模板-->
      <el-button size="small"@click="syncHandle" icon="el-icon-share">同步到其他模板</el-button>
      </el-button-group>
      <el-button-group>
      <!--    编码申请预览-->
      <el-button size="small" @click="applicationHandle" style="">编码申请预览</el-button>
      <el-button size="small" icon="el-icon-view" @click="applicationHandle" style="">编码申请预览</el-button>
      </el-button-group>
      <!--        验证规则-->
    </div>
<!--    弹窗-->
@@ -115,23 +122,23 @@
          <div style="padding-top: 15px;padding-left: 35px">
            <el-form ref="injectForm" label-width="80px">
              <el-form-item label="注入类型">
                <el-radio-group v-model="injectOption.type">
                  <el-radio label="分类名称"></el-radio>
                  <el-radio label="分类代号"></el-radio>
                <el-radio-group v-model="injectOption.classifyInvokeAttr">
                  <el-radio label="name">分类名称</el-radio>
                  <el-radio label="id">分类代号</el-radio>
                </el-radio-group>
              </el-form-item>
              <el-form-item label="层级设置">
                <el-radio-group v-model="injectOption.set">
                  <el-radio label="最小层"></el-radio>
                  <el-radio label="指定层"></el-radio>
                  <el-input-number v-if="this.injectOption.set == '指定层'" v-model="injectOption.injectNum" :max="10" :min="0"
                <el-radio-group v-model="injectOption.classifyInvokeLevel">
                  <el-radio label="min">最小层</el-radio>
                  <el-radio label="max">指定层</el-radio>
                  <el-input-number v-if="this.injectOption.classifyInvokeLevel == 'max'" v-model="injectOption.classifyNumber" :max="10" :min="0"
                                   controls-position="right"></el-input-number>
                </el-radio-group>
              </el-form-item>
              <el-form-item label="可修改">
                <el-radio-group v-model="injectOption.change">
                  <el-radio label="是"></el-radio>
                  <el-radio label="否"></el-radio>
                <el-radio-group v-model="injectOption.classifyInvokeEditFlag">
                  <el-radio label="true">是</el-radio>
                  <el-radio label="false">否</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-form>
@@ -246,6 +253,7 @@
              @selection-change="selectionChange"
              v-if="this.crudArrayFlag"
              ref="referAttrCrud"
              v-loading="loading"
    >
      <el-table-column
        type="selection"
@@ -354,10 +362,48 @@
      },
      deep:true,
      immediate:true
    }
    },
    'injectOption.classifyInvokeAttr': function(newVal) {
      console.log('newVal',newVal)
      if (newVal === "name") {
        this.injectOption.classifyInvokeAttrName='分类名称'
      } else if (newVal === "id") {
        this.injectOption.classifyInvokeAttrName='分类代号'
      }
      return '';
    },
    // ProData: {
    //       handler(newVal, oldVal) {
    //         if(this.initializing){
    //           this.ProData = newVal.map((item) => {
    //             if (item.classifyInvokeAttr !=='') { // 检查classifyInvokeText属性是否存在
    //               item = {
    //                 ...item,
    //                 classifyInvokeText: {
    //                 classifyInvokeText: {
    //                   "注入类型": item.classifyInvokeAttr,
    //                   "注入类型名称": item.classifyInvokeAttrName,
    //                   "层级设置": item.classifyInvokeLevel,
    //                   "是否可修改": item.classifyInvokeEditFlag
    //                 }
    //               }
    //             }
    //             }
    //             return item;
    //           });
    //         }
    //         this.initializing = false;
    //         console.log('ProData',this.ProData)
    //         console.log('newVal',newVal)
    //       },
    //       deep: true,
    //       immediate:true
    //   },
  },
  data() {
    return {
      initializing:false,
      loading:false,
      referConfigText:"",
      referConfigVisble:false,
      referConfigOption:{
@@ -787,11 +833,12 @@
      addvisible: false,
      //分类注入option
      injectOption: {
        type: "分类名称",
        set: "最小层",
        change: "是",
        classifyInvokeAttrName:'分类名称',
        classifyInvokeAttr: "name",
        classifyInvokeEditFlag: "true",
        classifyInvokeLevel:'min',
        //分类注入计数器
        injectNum: 0,
        classifyNumber:0,
      },
      // 属性验证输入框
      RulesForm: {
@@ -1220,15 +1267,9 @@
          },
          {
            label: "分类注入",
            prop: "classifyInvokeLevelName",
            prop: "classifyInvokeText",
            cell: false,
            edit: 'refer'
          },
          {
            label: "分类注入",
            prop: "classifyInvokeLevel",
            cell: false,
            edit: 'referName',
          },
          {
            label: "枚举注入",
@@ -1357,7 +1398,7 @@
        oids.push(ele.oid);
      });
      return oids.join(",");
    }
    },
  },
  mounted() {
  },
@@ -1435,7 +1476,12 @@
    CrudRend() {
      if (this.crudOid != '') {
        gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': this.crudOid}).then(res => {
          this.ProData = res.data.data;
          this.loading=true
          setTimeout(() => {
            this.ProData = res.data.data;
            this.loading=false
          }, 1000);
        }).catch(res => {
          this.$message.error(res)
        })
@@ -1579,7 +1625,7 @@
        }
        console.log('--',this.referConfigOption)
        // this.$refs.referConfigFormDialog.onloadAttrData();
      }else if(column.property == 'classifyInvokeLevelName'){
      }else if(column.property == 'classifyInvokeText'){
        this.injectVisible=true;
      }else if(column.property == 'componentRule'){
        if(this.CurrentCell){
@@ -1730,35 +1776,58 @@
      } else if (this.attrSelectList.length < 1) {
        this.$message.warning('请选择一条模板数据')
      } else if (this.attrSelectList.length === 1) {
        console.log(this.injectOption)
        this.injectVisible = true;
      }
    },
    //分类注入保存
    injectAddHandle() {
      // 定义展示类型
      let data = {
        "注入类型": this.injectOption.type,
        "注入类型名称": this.injectOption.set,
        "层级设置": this.injectOption.injectNum,
        "是否可修改": this.injectOption.change
        "注入类型": this.injectOption.classifyInvokeAttr,
        "注入类型名称": this.injectOption.classifyInvokeAttrName,
        "层级设置": this.injectOption.classifyInvokeLevel=='max'?this.injectOption.classifyNumber :'min',
        "是否可修改": this.injectOption.classifyInvokeEditFlag
      }
      //单元格编辑赋值一遍
      if(this.CurrentCell){
        this.$set(this.CurrentCell, "classifyInvokeLevelName", data);
        this.$set(this.CurrentCell, "classifyInvokeLevel", JSON.stringify(this.injectOption));
        //如果是指定层赋值为数字
        if(this.CurrentCell.classifyInvokeLevel!== 'min'){
          this.CurrentCell.classifyInvokeLevel=this.injectOption.classifyNumber
        }
        //其余正常赋值
        this.CurrentCell.classifyInvokeAttr=this.injectOption.classifyInvokeAttr,
        this.CurrentCell.classifyInvokeAttrName=this.injectOption.classifyInvokeAttrName,
        this.CurrentCell.classifyInvokeEditFlag=this.injectOption.classifyInvokeEditFlag,
        this.$set(this.CurrentCell, "classifyInvokeText", data);
        this.injectHandleReset()
      }else {
        this.$set(this.attrSelectList[0], 'classifyInvokeLevelName', data);
        this.$set(this.attrSelectList[0], 'classifyInvokeLevel', JSON.stringify(this.injectOption));
        //勾选操作
        for (const key in this.injectOption) {
          this.attrSelectList[0][key] = this.injectOption[key];
          //如果是指定层赋值为数字
          if(this.injectOption.classifyInvokeLevel !== 'min'){
            this.attrSelectList[0].classifyInvokeLevel=this.injectOption.classifyNumber
          }
          this.$set(this.attrSelectList[0],'classifyInvokeText',data)
        }
        this.injectHandleReset()
      }
      this.injectVisible = false
      if(this.injectOption.classifyInvokeLevel !== 'min'){
        this.injectOption.classifyInvokeLevel=this.injectOption.classifyNumber;
      }else  {
        this.injectOption.classifyNumber=0;
      }
      this.injectVisible = false;
    },
    //分类注入清空
    injectHandleReset() {
      this.injectOption.type = "分类名称";
      this.injectOption.set = "最小层";
      this.injectOption.change = "是";
      this.injectOption.injectNum = "0";
      this.injectOption.classifyInvokeAttrName = "分类名称";
      this.injectOption.classifyInvokeAttr = "name";
      this.injectOption.classifyInvokeLevel = "min";
      this.injectOption.classifyInvokeEditFlag = "true";
      this.injectOption.classifyNumber = "0";
    },
    // 分类注入取消
    injectRemove() {
@@ -1778,12 +1847,7 @@
    },
    //表格重置
    reset() {
      // this.CrudRend(
      this.referConfigVisble=true;
      this.referConfigOption = {
        referConfig: 'confing',
      }
      console.log(this.referConfigOption)
      this.CrudRend()
    },
    //同步到其他模板
    syncHandle() {
@@ -1865,7 +1929,11 @@
<style scoped lang="scss" >
.app {
   /deep/ .el-button {
   margin: 0 10px 10px 0;
   //margin: 0 10px 10px 0;
   }
}
.el-button-group {
  margin-right: 10px;
  margin-bottom: 10px;
}
</style>
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
@@ -931,6 +931,24 @@
      this.crudArray=selection;
      gridCodeClassifyTemplateAttr({'conditionMap[classifyTemplateOid]': row.oid}).then(res => {
        this.ProData = res.data.data;
        //分类注入数据格式
        this.ProData =  res.data.data.map((item) => {
          //如果分类注入classifyInvokeAttr为空说明是初始状态
          if(item.classifyInvokeAttr !== ''){
            if (!item.hasOwnProperty('classifyInvokeText')) { // 检查classifyInvokeText属性是否存在
              item = {
                ...item,
                classifyInvokeText: {
                  "注入类型": item.classifyInvokeAttr,
                  "注入类型名称": item.classifyInvokeAttrName,
                  "层级设置": item.classifyInvokeLevel,
                  "是否可修改": item.classifyInvokeEditFlag
                }
              };
            }
          }
          return item;
        });
      }).catch(res => {
        this.$message.error(res)
      })
Source/UBCS-WEB/src/views/wel/Statistic.vue
@@ -1,7 +1,7 @@
<template>
  <div>
    <el-row :gutter="20">
      <el-col :span="3" v-for="item in listMyTask">
      <el-col :xs="8" :sm="8" :md="8" :lg="6" :xl="4" v-for="item in listMyTask">
        <div class="box" :style="item.style">
          {{item.name}}
          <div><avue-count-up class="value" :end="item.count"></avue-count-up></div>
@@ -130,13 +130,14 @@
</script>
<style scoped>
.el-col{margin-bottom: 0}
.box{
  text-align: center;
  background: rgb(235, 238, 245);
  color: #303133;
  height: 74px;
  height: 70px;
  margin: 10px 0!important;
  padding: 15px 20px;
  padding: 15px 10px;
  position: relative;
  border-radius: 4px;
  box-sizing: border-box;
@@ -145,6 +146,8 @@
.value{
  font-size: 12px;
  opacity: .69;
  line-height: 24px;
  line-height: 20px;
  margin-top: 5px;
  display: block;
}
</style>
Source/UBCS-WEB/vue.config.js
@@ -26,9 +26,9 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        target: 'http://localhost:37000',
        // target: 'http://localhost:37000',
        // target: 'http://192.168.1.51:37000',
        // target: 'http://dev.vci-tech.com:37000',
        target: 'http://dev.vci-tech.com: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-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleClient.java
@@ -7,6 +7,8 @@
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Collection;
@@ -79,8 +81,8 @@
     * @param ids 对象英文名称 但是不能超过1000
     * @return 业务对象
     */
    @GetMapping(GET_BY_IDS)
    R<List<RevisionRuleVO>> selectByIdCollection(List<String> ids);
    @PostMapping(GET_BY_IDS)
    R<List<RevisionRuleVO>> selectByIdCollection(@RequestBody List<String> ids);
    /**
     * 批量根据主键获取版本规则
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java
@@ -1342,10 +1342,10 @@
                                }
                            }
                        }
                    }else {
                    }else if(existFild.contains((fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName).toLowerCase())){
                        returnMap.put(fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName, result);
                    }
                } else {
                } else if(existFild.contains((fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName).toLowerCase())){
                    returnMap.put(fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName, "");
                }
            }
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -740,7 +740,7 @@
                conditionMap.put(queryKey, queryValue);
            } else {
                //为空的时候不代表不校验,只是不去除相关的信息
                conditionMap.put("t." + attrId, value);
                conditionMap.put("t." + attrId, "'" +value+ "'");
            }
        }
    }
@@ -3296,7 +3296,7 @@
            throw new VciBaseException("传入业务类型未查询到相应字段信息,请检查!");
        }
        Set<String> existFild = allAttributeByBtmId.getData().getAttributes().stream().map(btmTypeAttributeVO -> {
            return btmTypeAttributeVO.getId();
            return btmTypeAttributeVO.getId().toLowerCase();
        }).collect(Collectors.toSet());
        //将bean转为map,mybatis统一处理
        List<Map<String, String>> maps = new ArrayList<>();
@@ -3401,8 +3401,10 @@
        bo.setVersionRule(String.valueOf(listR.getData().get(0).getVersionRule()));
        if (StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId())) {
            R<List<RevisionRuleVO>> revisionRuleVO = revisionRuleClient
                    .selectByIdCollection(Collections.singletonList(listR.getData().get(0).getRevisionRuleId()));
            bo.setRevisionValue(revisionRuleVO.getData().get(0).getStartCode());
                    .selectByIdCollection(Collections.singletonList(listR.getData().get(0).getRevisionRuleId().toLowerCase()));
            if(revisionRuleVO.getData().size() != 0 ){
                bo.setRevisionValue(revisionRuleVO.getData().get(0).getStartCode());
            }
        }
        bo.setRevisionSeq(1);
        bo.setVersionSeq(1);
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/RevisionRuleClient.java
@@ -16,6 +16,8 @@
import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.cglib.beans.BeanMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@@ -88,8 +90,8 @@
     * @return 业务对象
     */
    @Override
    @GetMapping(GET_BY_IDS)
    public R<List<RevisionRuleVO>> selectByIdCollection(List<String> ids) {
    @PostMapping(GET_BY_IDS)
    public R<List<RevisionRuleVO>> selectByIdCollection(@RequestBody List<String> ids) {
        return R.data(service.listRevisionRuleByIdCollection(ids));
    }
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmAttributeServiceImpl.java
@@ -194,7 +194,7 @@
            if ("oid".equals(id)){
                vo.setNullableFlag(false);
            }
            if (Arrays.asList("createtime","lastmodifytime","owner").contains(id)){
            if (Arrays.asList("createtime","lastmodifytime","ts").contains(id)){
                vo.setAttrDataType(VciFieldTypeEnum.VTDateTime.name());
                vo.setAttributeLength(6);
            }else {