Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java
@@ -55,6 +55,7 @@ import java.util.*; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; //import static com.vci.client.omd.attribpool.ui.VTDataTypePanel.*; import static com.vci.omd.constants.AttributeConstants.*; @@ -167,7 +168,7 @@ } /** * 够着属性树节点 * 构造属性树节点 * @param parentTreeList * @param refTypeName * @param refFlag @@ -342,7 +343,10 @@ attributeVO.setLastModifyTime(new Date(attribItem.modifyTime)); attributeVO.setTs(VciDateUtil.str2Date(attribItem.ts,VciDateUtil.DateTimeMillFormat)); }catch (Throwable e){ e.printStackTrace(); String errorLog = "属性DO转VO时出错,原因:"+VciBaseUtil.getExceptionMessage(e); logger.error(errorLog); throw new VciBaseException(errorLog); } attributeVO.setLastModifier(attribItem.modifier); attributeVO.setName(attribItem.label); @@ -639,9 +643,10 @@ //检查默认值与属性类型是否匹配 checkDefValue(osAttributeDTO); boolean compatible = isCompatible(osAttributeVO,osAttributeDTO); boolean hasInstance = hasInstance(osAttributeDTO.getName()); //产生数据, 并且不兼容 if(hasInstance && !compatible){ //boolean hasInstance = hasInstance(osAttributeDTO.getId()); //不判断是否产生数据只要被引用就需要进一步判断类型是否兼容 boolean checkAttrIsUse = this.checkAttrIsUse(osAttributeDTO.getId()); //TODO:按照以前操作配置文档中的逻辑应该是:不论是否产生数据只要被引用就需要要判断类型是否兼容(如VTString不能转为VTIntger或VTLong) if(checkAttrIsUse/*hasInstance*/ && !compatible){ throw new PLException("500",new String[]{"无效变更, 不兼容已产生的数据!"}); } String userId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); @@ -791,6 +796,26 @@ */ private boolean hasInstance(String abName) throws PLException { return osBtmService.hasInstance(abName) && osLinkTypeServiceI.hasInstance(abName); } /** * 查看属性是否被引用 * @param abName * @return false未被引用 true被引用 */ private boolean checkAttrIsUse(String abName) throws PLException { if(Func.isBlank(abName)){ return false; } String[] btNames = platformClientUtil.getBtmService().getBTNamesByAPName(abName); if(Func.isNotEmpty(btNames)){ return true; } String[] ltNames = platformClientUtil.getLinkTypeService().getLTNamesByAPName(abName); if(Func.isNotEmpty(ltNames)){ return true; } return false; } /** @@ -974,11 +999,14 @@ throw new PLException("500",new String[]{"请选择要查询应用范围的属性!"}); } String[] btNames = platformClientUtil.getBtmService().getBTNamesByAPName(attributeName); if(Func.isEmpty(btNames)){ String[] ltNames = platformClientUtil.getLinkTypeService().getLTNamesByAPName(attributeName); String[] mergedArray = Stream.concat(Stream.of(btNames), Stream.of(ltNames)).toArray(String[]::new); if(Func.isEmpty(mergedArray)){ return new ArrayList<>(); } List<Map<String,String>> btmNameMapList = new ArrayList<>(); Arrays.stream(btNames).forEach(btName->{ Arrays.stream(mergedArray).forEach(btName->{ Map<String, String> itemMap = new HashMap<>(); itemMap.put("attributeName",attributeName); itemMap.put("source",btName); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
@@ -495,7 +495,6 @@ /** * 判断该属性是否已经在业务类型中产生了数据 * * @param abName * @return * @throws PLException Source/plt-web/plt-web-ui/src/page/login/userlogin.vue
@@ -256,7 +256,8 @@ }); return false; } }; } ; this.$router.push({path: this.tagWel.value}); loading.close(); }).catch((err) => { Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/attributePool/index.vue
@@ -229,7 +229,8 @@ width="65%" @close="addEscHandler" > <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <div style="height: 650px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px" size="small"> <el-row> <div class="addDialog"> <div> @@ -353,7 +354,8 @@ </span> </div> <!-- VTInteger VTLong --> <div v-if="form.attributeDataType === 'VTInteger' || form.attributeDataType === 'VTLong' " class="right"> <div v-if="form.attributeDataType === 'VTInteger' || form.attributeDataType === 'VTLong' " class="right"> <h3>值域</h3> <el-form-item label="使用枚举:" prop="enumSwitch"> @@ -467,6 +469,7 @@ <el-button type="primary" @click="linkSaveHandler">确 定</el-button> </span> </el-dialog> </div> <span slot="footer" class="dialog-footer"> <el-button @click="addEscHandler">取 消</el-button> <el-button type="primary" @click="addSaveHandler">确 定</el-button> @@ -718,6 +721,7 @@ }); } }, watch: {}, methods: { //表格查询请求 getTableList() { @@ -907,8 +911,13 @@ this.form.attributeSelectType = 'link' this.form.referValue = row.linkTypeName; } if (!row.btmTypeId && !row.linkTypeName) { this.form.attributeSelectType = 'business' this.form.referValue = row.btmTypeId; } // console.log(row); this.getEnumMapByTypeHandler(this.form.attributeDataType) this.getEnumMapByTypeHandler(this.form.attributeDataType); this.addVisible = true; }, @@ -1072,9 +1081,6 @@ // 选择参照 referFormFocusHandler() { this.form.enumSwitch = false; this.form.rangeValue = ""; this.form.enumId = ""; const handlers = { business: () => { this.businessVisible = true; @@ -1169,6 +1175,7 @@ this.form.referValue = this.businessRow.name; this.businessVisible = false; }, // 业务类型清空 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/versioning/index.vue
@@ -35,7 +35,7 @@ width="40%" @close="visibleCloseHandler" > <el-form ref="form" :model="form" :rules="rules" label-width="95px"> <el-form ref="form" size="small" :model="form" :rules="rules" label-width="95px"> <el-row> <el-col :span="12"> <el-form-item label="名称:" prop="id"> Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue
@@ -9,30 +9,30 @@ width="60%" @close="closeDialog" > <el-form ref="form" v-loading="formLoading" :model="form" :rules="rules" label-position="right" label-width="100px"> <el-form ref="form" size="small" v-loading="formLoading" :model="form" :rules="rules" label-position="right" label-width="100px"> <el-row> <el-col :span="12"> <el-form-item label="名称" prop="viName"> <el-input v-model="form.viName" placeholder="请输入名称" size="mini"></el-input> <el-input v-model="form.viName" placeholder="请输入名称" ></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="每页行数"> <el-input v-model="form.itemPageSize" placeholder="请输入每页行数" size="mini" type="number"></el-input> <el-input v-model="form.itemPageSize" placeholder="请输入每页行数" type="number"></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="附加查询条件"> <el-input v-model="form.itemAddFilter" placeholder="请输入查询条件" size="mini"></el-input> <el-input v-model="form.itemAddFilter" placeholder="请输入查询条件"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="绑定表单" prop="itemInObj"> <div style="display: flex;align-items: center;"> <el-select v-model="form.itemInObj" clearable placeholder="请选择绑定表单" size="mini" <el-select v-model="form.itemInObj" clearable placeholder="请选择绑定表单" @change="formSelectChange"> <el-option v-for="(item,index) in selectList" :key="index" :label="item.viName" :value="item.id"></el-option> @@ -45,7 +45,7 @@ <el-col :span="12"> <el-form-item label="父名称"> <div style="display: flex;align-items: center;"> <el-input v-model="form.itemParentFolderName" placeholder="请输入父名称" size="mini"></el-input> <el-input v-model="form.itemParentFolderName" placeholder="请输入父名称" ></el-input> <el-checkbox v-model="form.itemIsNavigatorExpand" style="margin-left: 5px; margin-right: 5px">显示查询区域 </el-checkbox> <el-checkbox v-model="form.itemIsShowFolder" style="margin-left: 5px;margin-right: 0px">显示文件夹 @@ -158,7 +158,7 @@ <el-col :span="24"> <el-form-item label="双击操作"> <el-select v-model="form.itemDbl" placeholder="请选择双击操作" size="mini"> <el-select v-model="form.itemDbl" placeholder="请选择双击操作" > <el-option v-for="(item,index) in itemDblList" :key="index" :label="item.value" :value="item.key"></el-option> </el-select> @@ -170,11 +170,11 @@ <div style="display: flex;align-items: center"> <div style="display: flex;align-items: center;width: 100%;"> <span>长:</span> <el-input v-model="itemImgHeight" placeholder="请输入长度" size="mini"></el-input> <el-input v-model="itemImgHeight" placeholder="请输入长度" ></el-input> </div> <div style="display: flex;align-items: center;width: 100%;margin-left: 30px"> <span>宽:</span> <el-input v-model="itemImgWidth" placeholder="请输入宽度" size="mini"></el-input> <el-input v-model="itemImgWidth" placeholder="请输入宽度"></el-input> </div> </div> </el-form-item> @@ -194,7 +194,7 @@ <el-col :span="24"> <el-form-item label="查询模板"> <el-select v-model="form.itemQtName" placeholder="请选择查询模板" size="mini"> <el-select v-model="form.itemQtName" placeholder="请选择查询模板" > <el-option v-for="(item,index) in searchQtNameList" :key="index" :label="item.qtName" :value="item.qtName"></el-option> </el-select>