链接类型联调接口。DDL服务修正。业务类型新增接口修正。
| | |
| | | return request({ |
| | | url: '/api/ubcs-omd/link-type/get-from-table', |
| | | method: 'get', |
| | | params: { |
| | | params: { |
| | | domain: domain |
| | | } |
| | | }) |
| | |
| | | }) |
| | | } |
| | | |
| | | export const btmPage = (current,size,params) => { |
| | | export const linkPage = (current,size,params) => { |
| | | return request ({ |
| | | url: '/api/ubcs-omd/link-type/page', |
| | | method: 'get', |
| | |
| | | import TableCrud from "@/components/Crud/Crud" |
| | | import originalAdd from "@/views/modeling/originalAdd" |
| | | import FormTemplateDialog from "@/components/FormTemplate/index" |
| | | import linkTypeAdd from "@/views/modeling/LinkTypeAdd" |
| | | |
| | | // 将工具函数添加到全局 |
| | | import utilFunc from './util/func' |
| | |
| | | Vue.component('referBtmTypeCrudDialog',referBtmTypeCrudDialog) |
| | | Vue.component('referSelectBtmAttrDialog',referSelectBtmAttrDialog) |
| | | Vue.component('FormTemplateDialog',FormTemplateDialog) |
| | | Vue.component('LinkTypeAdd',linkTypeAdd) |
| | | |
| | | // 加载相关url地址 |
| | | Object.keys(urls).forEach(key => { |
| | |
| | | <basic-container> |
| | | <p style="margin-top: 10px;font-weight: 570;font-size: 19px">基本信息</p> |
| | | <el-descriptions class="margin-top" :column="3" :size="size" border> |
| | | <el-descriptions-item> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-finished"></i> |
| | | <i :class="icons.key"></i> |
| | | 英文名称 |
| | | </template> |
| | | {{ obj.id }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-info"></i> |
| | | <i :class="icons.name"></i> |
| | | 中文名称 |
| | | </template> |
| | | {{ obj.name }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | | <i class="el-icon-date"></i> |
| | | <template slot="label" :labelStyle="descriptionOption.labelStyle" :contentStyle="descriptionOption.contentStyle"> |
| | | <i :class="icons.tableName"></i> |
| | | 数据库表名 |
| | | </template> |
| | | {{ obj.tableName }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-folder-opened"></i> |
| | | <i :class="icons.domain"></i> |
| | | 所属领域 |
| | | </template> |
| | | <el-tag size="small"> |
| | |
| | | </template> |
| | | {{ obj.sss }} |
| | | </el-descriptions-item> --> |
| | | <el-descriptions-item> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-s-check"></i> |
| | | <i :class="icons.revisionRule"></i> |
| | | 版本规则 |
| | | </template> |
| | | {{ obj.versionRule }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-refresh-right"></i> |
| | | <i :class="icons.lifeCycle"></i> |
| | | 生命周期 |
| | | </template> |
| | | {{ obj.lifeCycleId }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-view"></i> |
| | | <i :class="icons.view"></i> |
| | | 视图 |
| | | </template> |
| | | <el-tag size="small"> |
| | |
| | | </template> |
| | | {{ obj.implClass }} |
| | | </el-descriptions-item> --> |
| | | <el-descriptions-item> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-chat-line-square"></i> |
| | | <i :class="icons.desc"></i> |
| | | 描述 |
| | | </template> |
| | | {{ obj.description }} |
| | |
| | | <basic-container> |
| | | <p style="margin-top: 10px;font-weight: 570;font-size: 19px">属性列表</p> |
| | | <avue-crud class="attributeCrud" v-model="obj" :data="obj.attributes" :option="loadOption"> |
| | | <template slot="attrDataType" slot-scope="{row}" > |
| | | <el-tag>{{row.attrDataType}}</el-tag> |
| | | <template slot="attrDataTypeText" slot-scope="{row}" > |
| | | <el-tag>{{row.attrDataTypeText}}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | |
| | | addBtn: false, |
| | | props: { |
| | | labelText: '', |
| | | label: 'name', |
| | | label: 'label', |
| | | value: 'oid', |
| | | children: 'childList', |
| | | } |
| | |
| | | }, |
| | | { |
| | | label: "类型", |
| | | prop: "attrDataType", |
| | | prop: "attrDataTypeText", |
| | | align: 'center', |
| | | slot: true |
| | | }, |
| | |
| | | } |
| | | ] |
| | | }, |
| | | descriptionOption: { |
| | | labelStyle:'text-align:center;width:120px', |
| | | contentStyle: 'width:240px;text-align:center;word-break;break-all;' |
| | | }, |
| | | domain: null, |
| | | domainOptions: [], |
| | | icons:{ |
| | | key: 'el-icon-finished', |
| | | name: 'el-icon-info', |
| | | name: 'el-icon-tickets', |
| | | tableName: 'el-icon-date', |
| | | domain: 'el-icon-folder-opened', |
| | | revisionRule: 'el-icon-s-check', |
| | |
| | | width="70%" |
| | | style="height: 115vh;" |
| | | > |
| | | <el-form ref="form" :model="btmType" show-message="true" inline size="medium" label-suffix=":" class="btmTypeForm"> |
| | | |
| | | <el-form-item label="英文名称" label-width="100px" required="true"> |
| | | <el-form ref="form" :model="btmType" show-message="true" inline size="medium" label-suffix=":" class="btmTypeForm" :rules="rules" @resetFields="resetForm" status-icon="true"> |
| | | <el-form-item label="英文名称" label-width="100px" required="true" prop="id"> |
| | | <el-input v-model="btmType.id" :prefix-icon="icons.key"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="中文名称" label-width="100px"> |
| | |
| | | <el-form-item label="数据库表名" label-width="100px"> |
| | | <el-input v-model="btmType.tableName" :prefix-icon="icons.tableName"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="所属领域" label-width="100px"> |
| | | <el-form-item label="所属领域" label-width="100px" prop="domain"> |
| | | <el-select v-model="btmType.domain" :prefix-icon="icons.domain"> |
| | | <el-option v-for="item in domainOption" |
| | | :label="item.label" :value="item.value" :key="item.value"></el-option> |
| | |
| | | @on-load="attrRefOnLoad" |
| | | @search-change="attrRefSearch" |
| | | @selection-change="selectionChange"> |
| | | <template slot="name" slot-scope="scope" > |
| | | <el-tag>{{scope}}</el-tag> |
| | | <template slot="typeValue" slot-scope="scope" > |
| | | <el-tag>{{scope.row.typeValue}}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | column: [ |
| | | { |
| | | label: '英文名称', |
| | | prop: 'key', |
| | | prop: 'id', |
| | | align: 'left', |
| | | search: true, |
| | | width: 230 |
| | | }, { |
| | | label: '中文名称', |
| | | prop: 'label', |
| | | prop: 'name', |
| | | align: 'center', |
| | | }, |
| | | { |
| | | label: "类型", |
| | | prop: "typeValue", |
| | | align: 'center' |
| | | align: 'center', |
| | | slot: true, |
| | | }, |
| | | { |
| | | label: "默认值", |
| | |
| | | ] |
| | | }, |
| | | }, |
| | | rules: { |
| | | id: [ |
| | | { required: true, message: '请输入业务类型编号', trigger: 'blur' }, |
| | | { pattern: /^[A-Za-z]+$/, message: '业务类型编号只能为英文', trigger: 'blur' }, |
| | | { min: 2, max: 15, message: '长度在2到15个字符', trigger: 'blur' } |
| | | ], |
| | | domain: [ |
| | | { required: true, message: '请选择所属领域', trigger: 'blur' } |
| | | ] |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | this.btmType = {}; |
| | | this.attrRef.selectData = []; |
| | | this.attrRef.queryNotIn = null; |
| | | this.resetForm(); |
| | | }, |
| | | // 关闭属性池查询弹窗 |
| | | closeAttrDialog(){ |
| | |
| | | name: item.name, |
| | | typeValue: item.typeValue, |
| | | typeKey: item.typeValue, |
| | | attrDataType : item.typeValue, |
| | | attrDataType : item.typeKey, |
| | | defaultValue: item.defaultValue, |
| | | description: item.description, |
| | | attributeLength: item.maxLength |
| | |
| | | this.$delete(this.btmType,'revisionRuleId'); |
| | | this.$delete(this.btmType,'revisionRuleName'); |
| | | this.$delete(this.btmType,'inputRevisionFlag'); |
| | | }, |
| | | resetForm(){ |
| | | this.btmType = {}; |
| | | this.$refs.form.resetFields(); |
| | | } |
| | | } |
| | | } |
| | |
| | | <el-container> |
| | | <!-- 顶端按钮 --> |
| | | <el-header class="businessHeader" style="height: 40px;"> |
| | | <el-button-group> |
| | | <el-button type="primary" @click="linkTypeAdd" size="small"> |
| | | <i class="el-icon-plus"></i> |
| | | 新增 |
| | | </el-button> |
| | | <el-button type="primary" @click="linkTypeEdit" size="small"> |
| | | <i class="el-icon-edit"></i> |
| | | 修改 |
| | | </el-button> |
| | | <el-button type="primary" @click="selectFromTable" size="small"> |
| | | <i class="el-icon-thumb"></i> |
| | | 从已有中获取 |
| | | </el-button> |
| | | </el-button-group> |
| | | </el-header> |
| | | <el-button-group> |
| | | <el-button type="primary" @click="linkTypeAdd" size="small"> |
| | | <i class="el-icon-plus"></i> |
| | | 新增 |
| | | </el-button> |
| | | <el-button type="primary" @click="linkTypeEdit" size="small"> |
| | | <i class="el-icon-edit"></i> |
| | | 修改 |
| | | </el-button> |
| | | </el-button-group> |
| | | </el-header> |
| | | <!-- 侧边栏树 --> |
| | | <el-container> |
| | | <el-aside width="240px"> |
| | |
| | | <basic-container> |
| | | <p style="margin-top: 10px;font-weight: 570;font-size: 19px">基本信息</p> |
| | | <el-descriptions class="margin-top" :column="2" size="medium" border> |
| | | <el-descriptions-item labelStyle="text-align:center;width:120px" |
| | | contentStyle="width:240px;text-align:center;word-break;break-all;"> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-finished"></i> |
| | | <i :class="icons.id"></i> |
| | | 英文名称 |
| | | </template> |
| | | {{ obj.id }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item labelStyle="text-align:center;width:120px" |
| | | contentStyle="width:240px;text-align:center;word-break;break-all;"> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-info"></i> |
| | | <i :class="icons.name"></i> |
| | | 中文名称 |
| | | </template> |
| | | {{ obj.name }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item labelStyle="text-align:center;width:120px" |
| | | contentStyle="width:240px;text-align:center;word-break;break-all;"> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-date"></i> |
| | | <i :class="icons.tableName"></i> |
| | | 数据库表名 |
| | | </template> |
| | | {{ obj.tableName }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item labelStyle="text-align:center;width:120px" |
| | | contentStyle="width:240px;text-align:center;word-break;break-all;"> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-folder-opened"></i> |
| | | <i :class="icons.domain"></i> |
| | | 所属领域 |
| | | </template> |
| | | <el-tag size="small"> |
| | |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | <el-descriptions class="margin-top" direction="vertical" :column="2" border> |
| | | <el-descriptions-item labelStyle="text-align:center;width:120px" |
| | | contentStyle="width:240px;text-align:center;word-break;break-all;"> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-sort-down"></i> |
| | | <i :class="icons.from"></i> |
| | | From端类型 |
| | | </template> |
| | | <span v-for="item in obj.fromBtmTypes" style="margin-left:2px;"> |
| | | <el-tag size="small" effect="plain" style="width:130px;margin-top: 2px;"> |
| | | <el-tag size="small" effect="plain" style="margin-top: 2px;"> |
| | | {{ item.id + '(' + item.name + ')' }} |
| | | </el-tag> |
| | | </span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item labelStyle="text-align:center;width:120px" |
| | | contentStyle="width:240px;text-align:center;word-break;break-all;"> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-sort-up"></i> |
| | | <i :class="icons.to"></i> |
| | | To段类型 |
| | | </template> |
| | | <span v-for="item in obj.toBtmTypes" style="height:26px;width:140px;margin-left:2px"> |
| | | <el-tag size="small" effect="plain" style="width:130px;margin-top: 2px;"> |
| | | <span v-for="item in obj.toBtmTypes" style="margin-left:2px"> |
| | | <el-tag size="small" effect="plain" style="margin-top: 2px;"> |
| | | {{ item.id + '(' + item.name + ')' }} |
| | | </el-tag> |
| | | </span> |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | |
| | | <el-descriptions class="margin-top" :column="2" size="medium" border> |
| | | <el-descriptions-item labelStyle="text-align:center;width:120px" |
| | | contentStyle="width:240px;text-align:center;word-break;break-all;"> |
| | | <el-descriptions class="margin-top" :column="2" size="medium" border> |
| | | <!-- |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-info"></i> |
| | | <i :class="icons.main"></i> |
| | | 主类型 |
| | | </template> |
| | | {{ obj.fromBtmTypeName }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item labelStyle="text-align:center;width:120px" |
| | | contentStyle="width:240px;text-align:center;word-break;break-all;"> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | | <template slot="label"> |
| | | <i class="el-icon-info"></i> |
| | | <i :class="icons.main"></i> |
| | | 主类型 |
| | | </template> |
| | | {{ obj.toBtmTypeName }} |
| | | </el-descriptions-item> |
| | | --> |
| | | <el-descriptions-item span='2' labelStyle="text-align:center;width:120px"> |
| | | <template slot="label"> |
| | | <i class="el-icon-chat-line-square"></i> |
| | | <i :class="icons.desc"></i> |
| | | 描述 |
| | | </template> |
| | | {{ obj.description }} |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-descriptions> |
| | | </basic-container> |
| | | <!-- 属性列表--> |
| | | <basic-container> |
| | | <p style="margin-top: 10px;font-weight: 570;font-size: 19px">属性列表</p> |
| | | <avue-crud class="attributeCrud" v-model="obj" :data="obj.attributes" :option="loadOption"> |
| | | <template slot="attrDataType" slot-scope="{row}"> |
| | | <el-tag>{{ row.attrDataType }}</el-tag> |
| | | <template slot="attrDataTypeText" slot-scope="{row}"> |
| | | <el-tag>{{ row.attrDataTypeText }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | | </el-main> |
| | | </el-container> |
| | | </el-container> |
| | | |
| | | <link-type-add ref="linkAdd" :linkType="addOption.linkType" :domainOption="domainOptions" :icons="icons" |
| | | @refreshTable="initTreeOnLoad"> |
| | | </link-type-add> |
| | | |
| | | </el-container> |
| | | </template> |
| | |
| | | name: "LinkType", |
| | | data() { |
| | | return { |
| | | treeData: [ |
| | | { id: "1", name: "2", label: "label" }, |
| | | { id: "a", name: "b", label: "c" } |
| | | ], |
| | | addOption: { |
| | | linkType: {}, |
| | | }, |
| | | domain: null, |
| | | domainOptions: [], |
| | | icons: { |
| | | id: 'el-icon-finished', |
| | | name: 'el-icon-tickets', |
| | | tableName: 'el-icon-date', |
| | | domain: 'el-icon-folder-opened', |
| | | from: 'el-icon-sort-down', |
| | | to: 'el-icon-sort-up', |
| | | main: 'el-icon-warning-outline', |
| | | desc: 'el-icon-chat-line-square' |
| | | }, |
| | | treeData: [], |
| | | descriptionOption: { |
| | | labelStyle: 'text-align:center;width:120px', |
| | | contentStyle: 'width:240px;text-align:center;word-break;break-all;' |
| | | }, |
| | | loadOption: { |
| | | border: true, |
| | | height: 360, |
| | |
| | | }, |
| | | { |
| | | label: '类型', |
| | | prop: 'attrDataType', |
| | | prop: 'attrDataTypeText', |
| | | align: 'center', |
| | | slot: true |
| | | }, |
| | |
| | | } |
| | | ] |
| | | }, |
| | | obj: { |
| | | id: 'linkType', |
| | | name: '链接类型', |
| | | tableName: 'PLLT_OMD_LINKTYPE', |
| | | domain: 'ubcs-omd', |
| | | domainText: '对象建模', |
| | | fromBtmTypes: [ |
| | | { id: 'btm', name: '业务类型' }, |
| | | { id: 'btm2', name: '业务类型2' } |
| | | ], |
| | | toBtmTypes: [{ id: 'btm', name: '业务类型' }, { id: 'btm2', name: '业务类型2' }], |
| | | fromBtmTypeName: '', |
| | | toBtmTypeName: '', |
| | | }, |
| | | obj: {}, |
| | | treeOption: { |
| | | defaultExpandAll: true, |
| | | title: '链接类型树', |
| | | addBtn: false, |
| | | props: { |
| | | labelText: '', |
| | | label: 'name', |
| | | label: 'label', |
| | | value: 'oid', |
| | | children: 'childList', |
| | | } |
| | |
| | | }, |
| | | created() { |
| | | this.initTreeOnLoad(); |
| | | // this.initDomainOption(); |
| | | this.initDomainOption(); |
| | | }, |
| | | |
| | | methods: { |
| | | // 树点击 |
| | | nodeClick(data) { |
| | | console.log(data); |
| | | getDetail(data.oid).then(res => { |
| | | this.obj = res.data.data; |
| | | }) |
| | | }, |
| | | // 添加按钮点击事件 |
| | | linkTypeAdd() { |
| | | |
| | | this.$refs.linkAdd.showSubmitDialog = true; |
| | | }, |
| | | // 编辑按钮点击事件 |
| | | linkTypeEdit() { |
| | | |
| | | this.addOption.linkType = this.obj; |
| | | this.$refs.linkAdd.linkType = this.addOption.linkType; |
| | | this.$refs.linkAdd.showSubmitDialog = true; |
| | | }, |
| | | // 从已有中获取按钮点击事件 |
| | | selectFromTable() { |
| | | |
| | | }, |
| | | // 加载服务树 |
| | | initTreeOnLoad() { |
| | | initTree().then(res => { |
| | | this.treeData = res.data.data; |
| | | }); |
| | | } |
| | | }, |
| | | // 加载服务下拉框 |
| | | initDomainOption() { |
| | | getDomain().then(res => { |
| | | this.domainOptions = res.data.data; |
| | | }) |
| | | }, |
| | | |
| | | } |
| | | } |
| | |
| | | /** |
| | | * 类型 |
| | | */ |
| | | private final String dataType; |
| | | @Setter |
| | | private String dataType; |
| | | |
| | | /** |
| | | * 长度 |
| | |
| | | @Setter |
| | | private String defaultValue; |
| | | |
| | | public DdlFieldMappingAttrBO() { |
| | | } |
| | | |
| | | public DdlFieldMappingAttrBO(String dataType, Integer dataLength, Integer dataPrecision, Boolean nullable, String defaultValue) { |
| | | this.dataType = dataType; |
| | |
| | | * @date 2023/5/24 |
| | | */ |
| | | @Data |
| | | @TableName("pl_omd_link_type_attr") |
| | | @TableName("pl_omd_link_type_attribute") |
| | | @ApiModel(value = "链接类型包含的属性", description = "链接类型包含的属性") |
| | | public class LinkTypeAttribute implements java.io.Serializable{ |
| | | |
| | |
| | | */ |
| | | private static final long serialVersionUID = -1243940048761060562L; |
| | | |
| | | private String id; |
| | | |
| | | private String name; |
| | | |
| | | private String id; |
| | | private String label; |
| | | |
| | | private String oid; |
| | | |
| | |
| | | package com.vci.ubcs.omd.vo; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | import java.util.Map; |
| | | |
| | |
| | | * @author LiHang |
| | | * @date 2023/4/3 |
| | | */ |
| | | @Data |
| | | public class LinkTypeAttributeVO implements java.io.Serializable{ |
| | | |
| | | /** |
| | |
| | | * 所属业务类型 |
| | | */ |
| | | private String pkLinkType; |
| | | |
| | | /** |
| | | * 链接类型的编号 |
| | | */ |
| | | private String linkTypeId; |
| | | |
| | | /** |
| | | * 属性的字段名称 |
| | |
| | | * 数据类型 |
| | | */ |
| | | private String attrDataType; |
| | | |
| | | /** |
| | | * 数据类型显示对象 |
| | | */ |
| | | private String attrDataTypeText; |
| | | |
| | | /** |
| | | * 是否可以为空 |
| | |
| | | * 时间戳,格式是yyyy-MM-dd HH:mm:ss.SSS |
| | | */ |
| | | private Date ts; |
| | | |
| | | public String getBtmName() { |
| | | return btmName; |
| | | } |
| | | |
| | | public void setBtmName(String btmName) { |
| | | this.btmName = btmName; |
| | | } |
| | | |
| | | public String getOwner() { |
| | | return owner; |
| | | } |
| | | |
| | | public void setOwner(String owner) { |
| | | this.owner = owner; |
| | | } |
| | | |
| | | public void setOid(String oid) { |
| | | this.oid = oid; |
| | | } |
| | | |
| | | public void setPkLinkType(String pkLinkType) { |
| | | this.pkLinkType = pkLinkType; |
| | | } |
| | | |
| | | public void setDescription(String description) { |
| | | this.description = description; |
| | | } |
| | | |
| | | public void setAttrDataType(String attrDataType) { |
| | | this.attrDataType = attrDataType; |
| | | } |
| | | |
| | | public void setReferBtmTypeId(String referBtmTypeId) { |
| | | this.referBtmTypeId = referBtmTypeId; |
| | | } |
| | | |
| | | public void setReferBtmTypeName(String referBtmTypeName) { |
| | | this.referBtmTypeName = referBtmTypeName; |
| | | } |
| | | |
| | | public void setReferFlag(boolean referFlag) { |
| | | this.referFlag = referFlag; |
| | | } |
| | | |
| | | public void setEnumId(String enumId) { |
| | | this.enumId = enumId; |
| | | } |
| | | |
| | | public void setEnumName(String enumName) { |
| | | this.enumName = enumName; |
| | | } |
| | | |
| | | public void setEnumFlag(boolean enumFlag) { |
| | | this.enumFlag = enumFlag; |
| | | } |
| | | |
| | | public void setEnumItemMap(Map<String, String> enumItemMap) { |
| | | this.enumItemMap = enumItemMap; |
| | | } |
| | | |
| | | public void setCreator(String creator) { |
| | | this.creator = creator; |
| | | } |
| | | |
| | | public void setCreateTime(Date createTime) { |
| | | this.createTime = createTime; |
| | | } |
| | | |
| | | public void setLastModifier(String lastModifier) { |
| | | this.lastModifier = lastModifier; |
| | | } |
| | | |
| | | public void setLastModifyTime(Date lastModifyTime) { |
| | | this.lastModifyTime = lastModifyTime; |
| | | } |
| | | |
| | | public void setTs(Date ts) { |
| | | this.ts = ts; |
| | | } |
| | | |
| | | public void setNullableFlag(boolean nullableFlag) { |
| | | this.nullableFlag = nullableFlag; |
| | | } |
| | | |
| | | public void setDefaultValue(String defaultValue) { |
| | | this.defaultValue = defaultValue; |
| | | } |
| | | |
| | | public void setPrecisionLength(Integer precisionLength) { |
| | | this.precisionLength = precisionLength; |
| | | } |
| | | |
| | | |
| | | public String getOid() { |
| | | return oid; |
| | | } |
| | | |
| | | public String getPkLinkType() { |
| | | return pkLinkType; |
| | | } |
| | | |
| | | |
| | | public String getDescription() { |
| | | return description; |
| | | } |
| | | |
| | | public String getAttrDataType() { |
| | | return attrDataType; |
| | | } |
| | | |
| | | public String getReferBtmTypeId() { |
| | | return referBtmTypeId; |
| | | } |
| | | |
| | | public String getReferBtmTypeName() { |
| | | return referBtmTypeName; |
| | | } |
| | | |
| | | public boolean isReferFlag() { |
| | | return referFlag; |
| | | } |
| | | |
| | | public String getEnumId() { |
| | | return enumId; |
| | | } |
| | | |
| | | public String getEnumName() { |
| | | return enumName; |
| | | } |
| | | |
| | | public boolean isEnumFlag() { |
| | | return enumFlag; |
| | | } |
| | | |
| | | public Map<String, String> getEnumItemMap() { |
| | | return enumItemMap; |
| | | } |
| | | |
| | | public String getCreator() { |
| | | return creator; |
| | | } |
| | | |
| | | public Date getCreateTime() { |
| | | return createTime; |
| | | } |
| | | |
| | | public String getLastModifier() { |
| | | return lastModifier; |
| | | } |
| | | |
| | | public Date getLastModifyTime() { |
| | | return lastModifyTime; |
| | | } |
| | | |
| | | public Date getTs() { |
| | | return ts; |
| | | } |
| | | |
| | | public boolean isNullableFlag() { |
| | | return nullableFlag; |
| | | } |
| | | |
| | | public String getDefaultValue() { |
| | | return defaultValue; |
| | | } |
| | | |
| | | public Integer getPrecisionLength() { |
| | | return precisionLength; |
| | | } |
| | | |
| | | public String getRange() { |
| | | return range; |
| | | } |
| | | |
| | | public void setRange(String range) { |
| | | this.range = range; |
| | | } |
| | | |
| | | public Integer getAttributeLength() { |
| | | return attributeLength; |
| | | } |
| | | |
| | | public void setAttributeLength(Integer attributeLength) { |
| | | this.attributeLength = attributeLength; |
| | | } |
| | | |
| | | |
| | | public String getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(String id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public Integer getScaleLength() { |
| | | return scaleLength; |
| | | } |
| | | |
| | | public void setScaleLength(Integer scaleLength) { |
| | | this.scaleLength = scaleLength; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "OsLinkTypeAttributeVO{" + |
| | | "oid='" + oid + '\'' + |
| | | ", pkLinkType='" + pkLinkType + '\'' + |
| | | ", id='" + id + '\'' + |
| | | ", name='" + name + '\'' + |
| | | ", description='" + description + '\'' + |
| | | ", attributeLength=" + attributeLength + |
| | | ", attrDataType='" + attrDataType + '\'' + |
| | | ", nullableFlag=" + nullableFlag + |
| | | ", defaultValue='" + defaultValue + '\'' + |
| | | ", precisionLength=" + precisionLength + |
| | | ", scaleLength=" + scaleLength + |
| | | ", range='" + range + '\'' + |
| | | ", referBtmTypeId='" + referBtmTypeId + '\'' + |
| | | ", referBtmTypeName='" + referBtmTypeName + '\'' + |
| | | ", referFlag=" + referFlag + |
| | | ", enumId='" + enumId + '\'' + |
| | | ", enumName='" + enumName + '\'' + |
| | | ", enumFlag=" + enumFlag + |
| | | ", enumItemMap=" + enumItemMap + |
| | | ", btmname='" + btmName + '\'' + |
| | | ", owner='" + owner + '\'' + |
| | | ", creator='" + creator + '\'' + |
| | | ", createTime=" + createTime + |
| | | ", lastModifier='" + lastModifier + '\'' + |
| | | ", lastModifyTime=" + lastModifyTime + |
| | | ", ts=" + ts + |
| | | '}'; |
| | | } |
| | | } |
| | |
| | | */ |
| | | private String domain; |
| | | |
| | | /** |
| | | * 领域显示值 |
| | | */ |
| | | private String domainText; |
| | | |
| | | /** |
| | | * 包含属性 |
| | | */ |
| | |
| | | void createDbTablesByOidCollection(Collection<String> oidCollection) throws VciBaseException; |
| | | |
| | | /** |
| | | * 获取创建的sql语句中属性部分 |
| | | * 获取创建的sql语句中属性部分 -- 业务类型 |
| | | * @param attributeVOList 属性的立碑 |
| | | * @return sql语句 |
| | | */ |
| | | String getCreateSqlByAttributeForBtm(List<BtmTypeAttributeVO> attributeVOList); |
| | | |
| | | /** |
| | | * 获取创建的sql语句中属性部分 -- 链接类型 |
| | | * @param attributeVOList 属性的立碑 |
| | | * @return sql语句 |
| | | */ |
| | | String getCreateSqlByAttributeForLink(List<LinkTypeAttributeVO> attributeVOList); |
| | | |
| | | /** |
| | | * 批量将业务类型创建数据库表 |
| | | * @param ids 业务类型的英文名称 |
| | | * @throws VciBaseException 参数为空或者创建表出现了错误的时候会抛出异常 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 创建链接类型的表格 |
| | | * |
| | | * @param linkTypeVO 链接类型的显示对象 |
| | | * @throws VciBaseException 执行出错的时候会抛出异常 |
| | | */ |
| | | private void createDbTableForLink(LinkTypeVO linkTypeVO) throws VciBaseException { |
| | | VciBaseUtil.alertNotNull(linkTypeVO, "要创建表格所属的业务类型", linkTypeVO.getTableName(), "业务类型的表格名称"); |
| | | String tableName = linkTypeVO.getTableName(); |
| | | if (!checkTableExistByTableName(tableName)) { |
| | | String attributeSql = getCreateSqlByAttributeForLink(linkTypeVO.getAttributes()); |
| | | dllMapper.createTableBySql(tableName, attributeSql); |
| | | if (StringUtils.isNotBlank(linkTypeVO.getName())) { |
| | | dllMapper.commentTable(tableName, linkTypeVO.getName()); |
| | | } |
| | | linkTypeVO.getAttributes().forEach(s -> { |
| | | dllMapper.commentColumnTable(tableName, s.getId(), s.getName()); |
| | | }); |
| | | } |
| | | } |
| | | /** |
| | | * 获取创建的sql语句中属性部分 |
| | | * |
| | | * @param attributeVOList 属性的立碑 |
| | |
| | | attributeVOList.forEach(a -> { |
| | | sb.append(a.getId()).append(StringPool.SPACE); |
| | | VciFieldTypeEnum fieldTypeEnum = VciFieldTypeEnum.forValue(a.getAttrDataType()); |
| | | sb.append(dllMapper.getColumnTypeSql(fieldTypeEnum, a)); |
| | | sb.append(dllMapper.getColumnTypeSql(fieldTypeEnum, a)).append(","); |
| | | }); |
| | | return sb.substring(0, sb.lastIndexOf(",")); |
| | | } |
| | | |
| | | /** |
| | | * 获取创建的sql语句中属性部分 |
| | | * |
| | | * @param attributeVOList 属性的立碑 |
| | | * @return sql语句 |
| | | */ |
| | | @Override |
| | | public String getCreateSqlByAttributeForLink(List<LinkTypeAttributeVO> attributeVOList) { |
| | | StringBuilder sb = new StringBuilder(); |
| | | attributeVOList.forEach(a -> { |
| | | BtmTypeAttributeVO attributeVO = Optional.ofNullable(BeanUtil.copy(a, BtmTypeAttributeVO.class)).orElseGet(BtmTypeAttributeVO::new); |
| | | attributeVO.setPkBtmType(a.getPkLinkType()); |
| | | sb.append(a.getId()).append(StringPool.SPACE); |
| | | VciFieldTypeEnum fieldTypeEnum = VciFieldTypeEnum.forValue(a.getAttrDataType()); |
| | | sb.append(dllMapper.getColumnTypeSql(fieldTypeEnum, attributeVO)).append(","); |
| | | }); |
| | | return sb.substring(0, sb.lastIndexOf(",")); |
| | | } |
| | |
| | | @Override |
| | | public void createDbTablesById(String ids) throws VciBaseException { |
| | | VciBaseUtil.alertNotNull(ids, "业务类型/链接类型的英文集合"); |
| | | List<BtmTypeVO> btmTypeVOList = BtmTypeCache.selectByIdCollection(VciBaseUtil.str2List(ids)); |
| | | // List<OsLinkTypeVO> linkTypeVOList = linkTypeService.listLinkTypeByIdCollection(VciBaseUtil.str2List(ids)); |
| | | if (!CollectionUtils.isEmpty(btmTypeVOList)) { |
| | | //说明是业务类型 |
| | | btmTypeVOList.forEach(this::createDbTableForBtm); |
| | | } |
| | | /*//试试链接类型 |
| | | if(!CollectionUtils.isEmpty(linkTypeVOList)){ |
| | | //的确是链接类型 |
| | | linkTypeVOList.stream().forEach( s -> { |
| | | createDbTableForLink(s); |
| | | }); |
| | | }*/ |
| | | // 业务类型 |
| | | Func.toStrList(",",ids).stream().filter(idBtmMap::containsKey).map(idBtmMap::get).forEach(this::createDbTableForBtm); |
| | | // 链接类型 |
| | | Func.toStrList(",",ids).stream().filter(idLinkMap::containsKey).map(idLinkMap::get).forEach(this::createDbTableForLink); |
| | | } |
| | | |
| | | /** |
| | |
| | | modifyAttributeInfo.setBeforeModifyAttributes(String.join(",", beforeList)); |
| | | } |
| | | } |
| | | modifyAttributeInfoDOList.add(modifyAttributeInfo); |
| | | }); |
| | | return modifyAttributeInfoDOList; |
| | | } |
| | |
| | | } |
| | | |
| | | } |
| | | modifyAttributeInfoDOList.add(modifyAttributeInfo); |
| | | }); |
| | | return modifyAttributeInfoDOList; |
| | | } |
| | |
| | | @Override |
| | | public void reflexDifferent(List<ModifyAttributeInfo> differentAttributeList, List<BtmTypeVO> btmTypeVOList, List<LinkTypeVO> linkTypeVOList) throws VciBaseException { |
| | | VciBaseUtil.alertNotNull(differentAttributeList, "要清理的数据库的信息为空"); |
| | | Map<String, BtmTypeVO> idBtmTypeMap = btmTypeVOList.stream().collect(Collectors.toMap(BtmTypeVO::getId, t -> t, (o1, o2) -> o1)); |
| | | Map<String, LinkTypeVO> idLinkTypeMap = linkTypeVOList.stream().collect(Collectors.toMap(LinkTypeVO::getId, t -> t, (o1, o2) -> o1)); |
| | | Map<String, BtmTypeVO> idBtmTypeMap = Optional.ofNullable(btmTypeVOList).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(BtmTypeVO::getId, t -> t, (o1, o2) -> o1)); |
| | | Map<String, LinkTypeVO> idLinkTypeMap = Optional.ofNullable(linkTypeVOList).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(LinkTypeVO::getId, t -> t, (o1, o2) -> o1)); |
| | | differentAttributeList.forEach(s -> { |
| | | // BtmTypeVO btmType = idBtmTypeMap.get(id); |
| | | if (ModifyTableTaskEnum.CREATE.getValue().equalsIgnoreCase(s.getTaskName())) { |
| | |
| | | import com.alibaba.cloud.commons.lang.StringUtils; |
| | | import com.alibaba.nacos.api.exception.NacosException; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
| | | import com.vci.ubcs.omd.constant.OmdCacheConstant; |
| | | import com.vci.ubcs.omd.dto.LinkTypeDTO; |
| | | import com.vci.ubcs.omd.entity.LinkType; |
| | | import com.vci.ubcs.omd.repeater.DomainRepeater; |
| | | import com.vci.ubcs.omd.service.ILinkTypeService; |
| | |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.BeanUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringPool; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import springfox.documentation.annotations.ApiIgnore; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * Description:链接类型控制器 |
| | |
| | | @ApiOperationSupport(order = 2) |
| | | @ApiOperation(value = "查询列表", notes = "传入查询") |
| | | public R<List<LinkTypeVO>> list(@ApiIgnore @RequestParam Map<String, Object> condition) { |
| | | return R.data(LinkTypeWrapper.build().listEntityVO(linkTypeService.list(Condition.getQueryWrapper(condition, LinkType.class).lambda().orderByAsc(LinkType::getId)))); |
| | | return R.data(LinkTypeWrapper.build().listEntityVO(linkTypeService.list(Condition.getQueryWrapper(condition, LinkType.class).lambda().orderByAsc(LinkType::getId)), null)); |
| | | } |
| | | |
| | | /** |
| | |
| | | IPage<LinkTypeVO> pageVO = new Page<>(); |
| | | IPage<LinkType> page = linkTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(condition, LinkType.class).lambda().orderByAsc(LinkType::getId)); |
| | | BeanUtil.copy(page, pageVO); |
| | | pageVO.setRecords(LinkTypeWrapper.build().listEntityVO(page.getRecords())); |
| | | pageVO.setRecords(LinkTypeWrapper.build().listEntityVO(page.getRecords(), null)); |
| | | return R.data(pageVO); |
| | | } |
| | | |
| | |
| | | package com.vci.ubcs.omd.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.vci.ubcs.omd.entity.LinkType; |
| | | import com.vci.ubcs.omd.entity.LinkTypeAttribute; |
| | | import com.vci.ubcs.omd.vo.LinkTypeAttributeVO; |
| | | import com.vci.ubcs.omd.vo.LinkTypeVO; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Description: 链接类型包含属性的服务接口 |
| | |
| | | * @return 查询结果 |
| | | */ |
| | | LinkTypeAttribute selectByPrimaryKey(String oid); |
| | | |
| | | /** |
| | | * 根据链接类型获取默认字段 |
| | | * @param linkTypeVO 链接类型 |
| | | * @return 执行结果 |
| | | */ |
| | | List<LinkTypeAttributeVO> getDefaultAttributes(LinkTypeVO linkTypeVO); |
| | | |
| | | /** |
| | | * 根据链接类型获取所有的字段 |
| | | * @param linkTypeVO 链接类型 |
| | | * @return 执行结果 |
| | | */ |
| | | List<LinkTypeAttributeVO> getAllAttributes(LinkTypeVO linkTypeVO); |
| | | |
| | | /** |
| | | * 获取非默认字段的链接类型属性 |
| | | * @param linkTypeVO 链接类型 |
| | | * @return |
| | | */ |
| | | List<LinkTypeAttributeVO> getAttributesNoDefault(LinkTypeVO linkTypeVO); |
| | | |
| | | /** |
| | | * 批量获取非默认字段的链接类型属性 |
| | | * @param linkTypeDOList 链接类型 |
| | | * @return 执行结果 |
| | | */ |
| | | Map<String, List<LinkTypeAttributeVO>> batchGetAttributesNoDefault(List<LinkType> linkTypeDOList); |
| | | } |
| | |
| | | vo.setId(id); |
| | | vo.setName(name); |
| | | vo.setPkBtmType(btmType.getOid()); |
| | | vo.setAttrDataType(VciFieldTypeEnum.VTString.name()); |
| | | vo.setAttributeLength(150); |
| | | if (Arrays.asList("lastr","firstr","lastv","firstv","revisionseq","versionseq","revisionvalue","versionvalue").contains(id)){ |
| | | vo.setAttributeLength(5); |
| | | vo.setAttrDataType(VciFieldTypeEnum.VTInteger.name()); |
| | |
| | | if (!existFieldMap.containsKey(k)){ |
| | | BtmTypeLinkAttributesDTO attr = new BtmTypeLinkAttributesDTO(); |
| | | attr.setId(k); |
| | | attr.setName(v); |
| | | attr.setAttrDataType(VciFieldTypeEnum.VTString.name()); |
| | | attr.setAttributeLength(50); |
| | | attr.setNullableFlag(false); |
| | |
| | | afterAttributes = updateAttributeForBtm(btmTypeByOid.getOid(),beforeAttributes, attributes); |
| | | } |
| | | BtmTypeVO btmTypeVO = BtmTypeWrapper.build().entityVO(btmTypeDO); |
| | | //在创建表的时候还需要把默认的字段带上。 |
| | | List<BtmTypeAttributeVO> defaultAttribute = btmTypeAttributeService.getDefaultAttribute(btmTypeVO); |
| | | afterAttributes.addAll(defaultAttribute); |
| | | btmTypeVO.setAttributes(afterAttributes); |
| | | try { |
| | | if (autoCreateTable) { |
| | | checkTableSame(btmTypeVO); |
| | | // checkTableSame(btmTypeVO); |
| | | R result = DomainRepeater.submitBtmType(btmTypeDTO.getDomain(), btmTypeVO); |
| | | if (result.isSuccess()){ |
| | | List<ModifyAttributeInfo> infoList = new ArrayList<>(); |
| | |
| | | new Object[]{btmTypeDTO.getRevisionRuleId(), btmTypeDTO.getRevisionRuleName()}); |
| | | } |
| | | } |
| | | btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.REVISION_MANAGE_FIELD_MAP)); |
| | | // btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.REVISION_MANAGE_FIELD_MAP)); |
| | | } |
| | | if (btmTypeDTO.isLifeCycleFlag()){ |
| | | // 需要控制生命周期 |
| | |
| | | // new Object[]{btmTypeDTO.getSubLifeCycleId(), btmTypeDTO.getSubLifeCycleName()}); |
| | | // } |
| | | // } |
| | | btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.LIFECYCLE_MANAGE_FIELD_MAP)); |
| | | // btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.LIFECYCLE_MANAGE_FIELD_MAP)); |
| | | } |
| | | if (btmTypeDTO.isSecretFlag()){ |
| | | // 需要控制密级 |
| | | btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.SECRET_MANAGE_FIELD_MAP)); |
| | | // btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.SECRET_MANAGE_FIELD_MAP)); |
| | | } |
| | | } |
| | | @Override |
| | |
| | | String label = domain.get(k); |
| | | BtmTreeVO parent = new BtmTreeVO(); |
| | | parent.setName(label); |
| | | parent.setLabel(label); |
| | | parent.setId(k); |
| | | parent.setChildList(v.stream().map(s -> { |
| | | BtmTreeVO child = new BtmTreeVO(); |
| | | child.setOid(s.getOid()); |
| | | child.setName(s.getId() + " " + (s.getName() == null ? "" : s.getName())); |
| | | child.setName(s.getName()); |
| | | child.setId(s.getId()); |
| | | child.setLabel(s.getId() + (s.getName() == null ? "" : "(" + s.getName() + ")")); |
| | | return child; |
| | | }).collect(Collectors.toList())); |
| | | treeList.add(parent); |
| | |
| | | package com.vci.ubcs.omd.service.impl; |
| | | |
| | | import com.alibaba.cloud.commons.lang.StringUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.vci.ubcs.omd.constant.BtmTypeFieldConstant; |
| | | import com.vci.ubcs.omd.entity.LinkType; |
| | | import com.vci.ubcs.omd.entity.LinkTypeAttribute; |
| | | import com.vci.ubcs.omd.mapper.LinkTypeAttributeMapper; |
| | | import com.vci.ubcs.omd.service.IAttributeService; |
| | | import com.vci.ubcs.omd.service.ILinkTypeAttributeService; |
| | | import com.vci.ubcs.omd.vo.BtmTypeAttributeVO; |
| | | import com.vci.ubcs.omd.vo.LinkTypeAttributeVO; |
| | | import com.vci.ubcs.omd.vo.LinkTypeVO; |
| | | import com.vci.ubcs.omd.wrapper.LinkTypeAttributeWrapper; |
| | | import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; |
| | | import com.vci.ubcs.starter.web.util.VciBaseUtil; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * Description: 链接类型包含属性的服务 |
| | |
| | | VciBaseUtil.alertNotNull(oid); |
| | | return baseMapper.selectOne(Wrappers.<LinkTypeAttribute>query().lambda().eq(LinkTypeAttribute::getOid,oid)); |
| | | } |
| | | |
| | | /** |
| | | * 根据链接类型获取默认字段 |
| | | * |
| | | * @param linkTypeVO 链接类型 |
| | | * @return 执行结果 |
| | | */ |
| | | @Override |
| | | public List<LinkTypeAttributeVO> getDefaultAttributes(LinkTypeVO linkTypeVO) { |
| | | Objects.requireNonNull(linkTypeVO,"链接类型不能为空"); |
| | | List<LinkTypeAttributeVO> list = new ArrayList<>(); |
| | | // 业务类型的基本字段 |
| | | BtmTypeFieldConstant.LINK_TYPE_FIELD_MAP.forEach((id, name) -> { |
| | | LinkTypeAttributeVO vo = new LinkTypeAttributeVO(); |
| | | vo.setId(id); |
| | | vo.setName(name); |
| | | vo.setPkLinkType(linkTypeVO.getOid()); |
| | | if (StringUtils.equals(id,"oid")){ |
| | | vo.setNullableFlag(false); |
| | | }else { |
| | | vo.setNullableFlag(true); |
| | | } |
| | | if (Arrays.asList("createtime","lastmodifytime","owner").contains(id)){ |
| | | vo.setAttrDataType(VciFieldTypeEnum.VTDateTime.name()); |
| | | vo.setAttributeLength(6); |
| | | }else { |
| | | vo.setAttrDataType(VciFieldTypeEnum.VTString.name()); |
| | | vo.setAttributeLength(150); |
| | | } |
| | | list.add(vo); |
| | | }); |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 根据链接类型获取所有的字段 |
| | | * |
| | | * @param linkTypeVO 链接类型 |
| | | * @return 执行结果 |
| | | */ |
| | | @Override |
| | | public List<LinkTypeAttributeVO> getAllAttributes(LinkTypeVO linkTypeVO) { |
| | | Objects.requireNonNull(linkTypeVO,"链接类型不能为空"); |
| | | List<LinkTypeAttributeVO> attributes = getAttributesNoDefault(linkTypeVO); |
| | | attributes.addAll(getDefaultAttributes(linkTypeVO)); |
| | | return attributes; |
| | | } |
| | | |
| | | /** |
| | | * 获取非默认字段的链接类型属性 |
| | | * |
| | | * @param linkTypeVO 链接类型 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<LinkTypeAttributeVO> getAttributesNoDefault(LinkTypeVO linkTypeVO) { |
| | | Objects.requireNonNull(linkTypeVO,"链接类型不能为空"); |
| | | return LinkTypeAttributeWrapper.build().listEntityVO(baseMapper.selectList(Wrappers.<LinkTypeAttribute>query().lambda().eq(LinkTypeAttribute::getPkLinkType, linkTypeVO.getOid()))); |
| | | } |
| | | |
| | | /** |
| | | * 批量获取非默认字段的链接类型属性 |
| | | * |
| | | * @param linkTypeDOList 链接类型 |
| | | * @return 执行结果 |
| | | */ |
| | | @Override |
| | | public Map<String, List<LinkTypeAttributeVO>> batchGetAttributesNoDefault(List<LinkType> linkTypeDOList) { |
| | | VciBaseUtil.alertNotNull(linkTypeDOList,"链接类型集合"); |
| | | Set<String> oidSet = linkTypeDOList.stream().map(LinkType::getOid).collect(Collectors.toSet()); |
| | | if (CollectionUtils.isEmpty(oidSet)){ |
| | | return new HashMap<>(); |
| | | } |
| | | List<LinkTypeAttribute> attributes = baseMapper.selectList(Wrappers.<LinkTypeAttribute>query().lambda().in(LinkTypeAttribute::getPkLinkType, oidSet)); |
| | | return LinkTypeAttributeWrapper.build().listEntityVO(Optional.ofNullable(attributes).orElseGet(ArrayList::new)).stream().collect(Collectors.groupingBy(LinkTypeAttributeVO::getPkLinkType)); |
| | | } |
| | | } |
| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alibaba.nacos.api.exception.NacosException; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.kotlin.KtQueryChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.kotlin.KtUpdateChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.vci.ubcs.omd.constant.BtmTypeConstant; |
| | | import com.vci.ubcs.omd.dto.BtmAndLinkTypeDdlDTO; |
| | |
| | | import com.vci.ubcs.omd.repeater.DomainRepeater; |
| | | import com.vci.ubcs.omd.service.*; |
| | | import com.vci.ubcs.omd.vo.*; |
| | | import com.vci.ubcs.omd.wrapper.BtmTypeWrapper; |
| | | import com.vci.ubcs.omd.wrapper.LinkTypeAttributeWrapper; |
| | | import com.vci.ubcs.omd.wrapper.LinkTypeWrapper; |
| | | import com.vci.ubcs.starter.exception.VciBaseException; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.TransactionDefinition; |
| | | import org.springframework.transaction.TransactionStatus; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.support.DefaultTransactionDefinition; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | if(!CollectionUtils.isEmpty(pkLinkTypeCollection)){ |
| | | List<LinkType> linkTypeDOList = listLinkTypeDOByOidCollection(pkLinkTypeCollection); |
| | | if(!CollectionUtils.isEmpty(linkTypeDOList)) { |
| | | return LinkTypeWrapper.build().listEntityVO(linkTypeDOList); |
| | | Map<String,List<LinkTypeAttributeVO>> pkLinkTypeAndAttributeMap = linkTypeAttributeService.batchGetAttributesNoDefault(linkTypeDOList); |
| | | return LinkTypeWrapper.build().listEntityVO(linkTypeDOList,pkLinkTypeAndAttributeMap); |
| | | } |
| | | } |
| | | return null; |
| | |
| | | linkTypeDOList.addAll(linkTypeDOS); |
| | | } |
| | | }); |
| | | return linkTypeDOList; |
| | | } |
| | | return null; |
| | | } |
| | |
| | | if(!CollectionUtils.isEmpty(linkTypeIdCollection)){ |
| | | List<LinkType> linkTypeDOList = listLinkTypeDOByIdCollection(linkTypeIdCollection); |
| | | if(!CollectionUtils.isEmpty(linkTypeDOList)) { |
| | | return LinkTypeWrapper.build().listEntityVO(linkTypeDOList); |
| | | Map<String,List<LinkTypeAttributeVO>> pkLinkTypeAndAttributeMap = linkTypeAttributeService.batchGetAttributesNoDefault(linkTypeDOList); |
| | | return LinkTypeWrapper.build().listEntityVO(linkTypeDOList, pkLinkTypeAndAttributeMap); |
| | | } |
| | | } |
| | | return null; |
| | |
| | | * @throws VciBaseException 添加出错的时候会抛出异常 |
| | | */ |
| | | @Override |
| | | @Transactional |
| | | public LinkTypeVO addSave(LinkTypeVO linkTypeVO, boolean autoCreateTable) throws VciBaseException { |
| | | TransactionStatus transaction = null; |
| | | if(autoCreateTable) { |
| | |
| | | } |
| | | LinkType linkTypeDO = new LinkType(); |
| | | BeanUtil.copy(linkTypeVO, linkTypeDO); |
| | | if (StringUtils.isBlank(linkTypeDO.getTableName())){ |
| | | linkTypeDO.setTableName(getTableName(linkTypeDO.getId(),linkTypeDO.getDomain())); |
| | | } |
| | | String creator = AuthUtil.getUserAccount(); |
| | | Date now = new Date(); |
| | | linkTypeDO.setCreator(creator); |
| | | linkTypeDO.setCreateTime(now); |
| | | linkTypeDO.setOwner(creator); |
| | | linkTypeDO.setBtmName(BtmTypeConstant.LINK_TYPE); |
| | | linkTypeDO.setTs(now); |
| | | LinkTypeWrapper.build().setBeforeInsert(linkTypeDO,creator,now); |
| | | |
| | | //处理属性 |
| | | addAttributeForLink(linkTypeVO.getAttributes(),linkTypeDO.getOid(),creator,now); |
| | | List<LinkTypeAttributeVO> attributeVOList = addAttributeForLink(linkTypeVO.getAttributes(), linkTypeDO.getOid(), creator, now); |
| | | |
| | | baseMapper.insert(linkTypeDO); |
| | | if(autoCreateTable) { |
| | | dataSourceTransactionManager.commit(transaction); |
| | | LinkTypeVO typeVO = LinkTypeWrapper.build().entityVO(linkTypeDO); |
| | | typeVO.setAttributes(attributeVOList); |
| | | List<LinkTypeAttributeVO> attributes = typeVO.getAttributes(); |
| | | attributes.addAll(linkTypeAttributeService.getDefaultAttributes(typeVO)); |
| | | typeVO.setAttributes(attributes); |
| | | R r = DomainRepeater.submitLinkType(typeVO.getDomain(), typeVO); |
| | | if (!r.isSuccess()){ |
| | | dataSourceTransactionManager.rollback(transaction); |
| | | }else { |
| | | dataSourceTransactionManager.commit(transaction); |
| | | } |
| | | } |
| | | }catch (VciBaseException e){ |
| | | if(autoCreateTable) { |
| | |
| | | } |
| | | throw e; |
| | | } |
| | | if(autoCreateTable) { |
| | | /*if(autoCreateTable) { |
| | | checkTableSame(linkTypeVO); |
| | | } |
| | | }*/ |
| | | return linkTypeVO; |
| | | } |
| | | |
| | |
| | | * @param creator 创建人 |
| | | * @param now 当前时间 |
| | | */ |
| | | private void addAttributeForLink(List<LinkTypeAttributeVO> attributesVOList,String pkLinkType,String creator,Date now){ |
| | | private List<LinkTypeAttributeVO> addAttributeForLink(List<LinkTypeAttributeVO> attributesVOList,String pkLinkType,String creator,Date now){ |
| | | List<LinkTypeAttribute> linkTypeAttributeDOList = new ArrayList<>(); |
| | | if(!CollectionUtils.isEmpty(attributesVOList)) { |
| | | List<String> attributeIdList = new ArrayList<>(); |
| | | attributesVOList.stream().forEachOrdered(s -> { |
| | | attributesVOList.forEach(s -> { |
| | | linkTypeAttributeService.checkAttribute(s); |
| | | linkTypeAttributeDOList.add(LinkTypeAttributeWrapper.build().copyVO2DO(s, pkLinkType, creator, now)); |
| | | attributeIdList.add(s.getId().toLowerCase().trim()); |
| | |
| | | //检查属性是否都存在 |
| | | attributeService.checkAttributeExists(attributeIdList); |
| | | linkTypeAttributeService.saveOrUpdateBatch(linkTypeAttributeDOList,10000); |
| | | return LinkTypeAttributeWrapper.build().listEntityVO(linkTypeAttributeDOList); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | if (!CollectionUtils.isEmpty(modifyAttributeInfoDOList)) { |
| | | modifyAttributeService.saveOrUpdateBatch(modifyAttributeInfoDOList); |
| | | modifyAttributeService.finishModify(modifyAttributeInfoDOList); |
| | | } |
| | | modifyAttributeService.finishModify(modifyAttributeInfoDOList); |
| | | } |
| | | |
| | | /** |
| | |
| | | if(StringUtils.isNotBlank(unExistBtmTypeId)){ |
| | | throw new VciBaseException("链接类型使用的业务类型{0}不存在,请查证",new Object[]{unExistBtmTypeId}); |
| | | } |
| | | |
| | | String creator = AuthUtil.getUserAccount(); |
| | | Date now = new Date(); |
| | | linkTypeDO.setLastModifier(creator); |
| | | linkTypeDO.setLastModifyTime(now); |
| | | linkTypeDO.setTs(now); |
| | | linkTypeDO = LinkTypeWrapper.build().setBeforeUpdate(linkTypeDO,creator,now); |
| | | //处理属性 |
| | | |
| | | |
| | | LinkTypeWrapper.build().copyLinkTypeVO2DO(linkTypeVO,linkTypeDO,creator,new Date()); |
| | | |
| | | //先查询这个链接类型包含多少属性 |
| | |
| | | } |
| | | saveOrUpdate(linkTypeDO); |
| | | if(autoCreateTable) { |
| | | List<LinkTypeAttributeVO> defaultAttributes = linkTypeAttributeService.getDefaultAttributes(linkTypeVO); |
| | | List<LinkTypeAttributeVO> attributes = linkTypeVO.getAttributes(); |
| | | attributes.addAll(defaultAttributes); |
| | | linkTypeVO.setAttributes(attributes); |
| | | BtmAndLinkTypeDdlDTO ddlDTO = new BtmAndLinkTypeDdlDTO(); |
| | | DomainRepeater.checkDifferent(ddlDTO,linkTypeVO.getDomain()); |
| | | dataSourceTransactionManager.commit(transaction); |
| | | } |
| | | }catch (VciBaseException e){ |
| | | } catch (Throwable e){ |
| | | if(autoCreateTable) { |
| | | dataSourceTransactionManager.rollback(transaction); |
| | | } |
| | | throw e; |
| | | }catch (Throwable e) { |
| | | if(autoCreateTable) { |
| | | dataSourceTransactionManager.rollback(transaction); |
| | | } |
| | | throw e; |
| | | throw new VciBaseException(e.getMessage()); |
| | | } |
| | | if(autoCreateTable) { |
| | | /*if(autoCreateTable) { |
| | | checkTableSame(linkTypeVO); |
| | | } |
| | | }*/ |
| | | return linkTypeVO; |
| | | } |
| | | |
| | |
| | | attributeVO.setLastModifier(creator); |
| | | attributeVO.setLastModifyTime(now); |
| | | attributeVO.setTs(now); |
| | | //查询链接类型是否存在 |
| | | linkTypeAttributeService.saveOrUpdate(attributeDO); |
| | | if (autoEdit2Table) { |
| | | BtmAndLinkTypeDdlDTO ddlDTO = new BtmAndLinkTypeDdlDTO(); |
| | | // ddlDTO.setLinkTypeList(); |
| | | // DomainRepeater.checkDifferent(,domain); |
| | | LinkTypeVO linkTypeVO = LinkTypeWrapper.build().entityVO(linkTypeDO); |
| | | ddlDTO.setLinkTypeList(Collections.singletonList(linkTypeVO)); |
| | | DomainRepeater.checkDifferent(ddlDTO,domain); |
| | | dataSourceTransactionManager.commit(transaction); |
| | | } |
| | | // }catch (NacosException e){ |
| | | // if(autoEdit2Table) { |
| | | // dataSourceTransactionManager.rollback(transaction); |
| | | // } |
| | | // throw new RuntimeException(e); |
| | | }catch (NacosException e){ |
| | | if(autoEdit2Table) { |
| | | dataSourceTransactionManager.rollback(transaction); |
| | | } |
| | | throw new RuntimeException(e); |
| | | }catch (Throwable e){ |
| | | if(autoEdit2Table) { |
| | | dataSourceTransactionManager.rollback(transaction); |
| | |
| | | public List<BtmTreeVO> treeDomain() { |
| | | try { |
| | | Map<String, String> domain = Optional.ofNullable(DomainRepeater.getDomain()).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(DomainVO::getValue, DomainVO::getLabel)); |
| | | List<LinkTypeVO> vos = LinkTypeWrapper.build().listEntityVO(baseMapper.selectAll()); |
| | | List<LinkTypeVO> vos = LinkTypeWrapper.build().listEntityVO(baseMapper.selectAll(), null); |
| | | Map<String, List<LinkTypeVO>> domainMap = vos.stream().collect(Collectors.groupingBy(LinkTypeVO::getDomain)); |
| | | List<BtmTreeVO> treeList = new ArrayList<>(); |
| | | domainMap.forEach((k,v)-> { |
| | |
| | | BtmTreeVO parent = new BtmTreeVO(); |
| | | parent.setName(label); |
| | | parent.setId(k); |
| | | parent.setLabel(label); |
| | | parent.setChildList(v.stream().map(s -> { |
| | | BtmTreeVO child = new BtmTreeVO(); |
| | | child.setOid(s.getOid()); |
| | | child.setName(s.getId() + " " + (s.getName() == null ? "" : s.getName())); |
| | | child.setLabel(s.getId() + (s.getName() == null ? "" : "(" + s.getName() + ")")); |
| | | child.setId(s.getId()); |
| | | child.setName(s.getName()); |
| | | return child; |
| | | }).collect(Collectors.toList())); |
| | | treeList.add(parent); |
| | |
| | | package com.vci.ubcs.omd.wrapper; |
| | | |
| | | import com.vci.ubcs.omd.cache.EnumCache; |
| | | import com.vci.ubcs.omd.constant.BtmTypeConstant; |
| | | import com.vci.ubcs.omd.dto.BtmTypeLinkAttributesDTO; |
| | | import com.vci.ubcs.omd.entity.BtmTypeAttribute; |
| | |
| | | public BtmTypeAttributeVO entityVO(BtmTypeAttribute entity) { |
| | | BtmTypeAttributeVO vo = Objects.requireNonNull(BeanUtil.copy(entity, BtmTypeAttributeVO.class)); |
| | | // 在这里设置枚举显示值 |
| | | vo.setAttrDataTypeText(EnumCache.getValue("attributeType",vo.getAttrDataType())); |
| | | return vo; |
| | | } |
| | | |
| | |
| | | package com.vci.ubcs.omd.wrapper; |
| | | |
| | | import com.alibaba.cloud.commons.lang.StringUtils; |
| | | import com.vci.ubcs.omd.cache.EnumCache; |
| | | import com.vci.ubcs.omd.constant.BtmTypeConstant; |
| | | import com.vci.ubcs.omd.entity.LinkTypeAttribute; |
| | | import com.vci.ubcs.omd.vo.LinkTypeAttributeVO; |
| | |
| | | @Override |
| | | public LinkTypeAttributeVO entityVO(LinkTypeAttribute entity) { |
| | | LinkTypeAttributeVO vo = BeanUtil.copy(entity, LinkTypeAttributeVO.class); |
| | | vo.setAttrDataTypeText(EnumCache.getValue("attributeType",vo.getAttrDataType())); |
| | | return vo; |
| | | } |
| | | |
| | |
| | | attributeDO.setCreateTime(now); |
| | | attributeDO.setTs(now); |
| | | attributeDO.setOwner(creator); |
| | | attributeDO.setLastModifier(creator); |
| | | attributeDO.setLastModifyTime(now); |
| | | attributeDO.setBtmName(BtmTypeConstant.LINK_TYPE_ATTRIBUTE); |
| | | return attributeDO; |
| | | } |
| | |
| | | package com.vci.ubcs.omd.wrapper; |
| | | |
| | | import com.vci.ubcs.omd.cache.BtmTypeCache; |
| | | import com.vci.ubcs.omd.constant.BtmTypeConstant; |
| | | import com.vci.ubcs.omd.entity.LinkType; |
| | | import com.vci.ubcs.omd.vo.BtmTypeVO; |
| | | import com.vci.ubcs.omd.vo.LinkTypeAttributeVO; |
| | | import com.vci.ubcs.omd.vo.LinkTypeVO; |
| | | import com.vci.ubcs.starter.web.enumpck.NewAppConstantEnum; |
| | | import com.vci.ubcs.starter.web.util.VciBaseUtil; |
| | | import org.springblade.core.mp.support.BaseEntityWrapper; |
| | | import org.springblade.core.tool.utils.BeanUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Optional; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | |
| | | @Override |
| | | public LinkTypeVO entityVO(LinkType entity) { |
| | | LinkTypeVO vo = BeanUtil.copy(entity, LinkTypeVO.class); |
| | | LinkTypeVO vo = Optional.ofNullable(BeanUtil.copy(entity, LinkTypeVO.class)).orElseGet(LinkTypeVO::new); |
| | | List<String> fromIdList = Func.toStrList(",", vo.getFromBtmType()); |
| | | List<String> toIdList = Func.toStrList(",", vo.getToBtmType()); |
| | | Set<String> btmIdSet = new HashSet<>(); |
| | | btmIdSet.addAll(fromIdList); |
| | | btmIdSet.addAll(toIdList); |
| | | List<BtmTypeVO> btmTypeVOList = BtmTypeCache.selectByIdCollection(new ArrayList<>(btmIdSet)); |
| | | List<BtmTypeVO> fromBtm = new ArrayList<>(); |
| | | List<BtmTypeVO> toBtm = new ArrayList<>(); |
| | | Optional.ofNullable(btmTypeVOList).orElseGet(ArrayList::new).forEach(btm -> { |
| | | if (vo.getFromBtmType().contains(btm.getId())){ |
| | | fromBtm.add(btm); |
| | | } |
| | | if (vo.getToBtmType().contains(btm.getId())){ |
| | | toBtm.add(btm); |
| | | } |
| | | }); |
| | | vo.setFromBtmTypes(fromBtm); |
| | | vo.setToBtmTypes(toBtm); |
| | | // 枚举处理 |
| | | vo.setDomainText(NewAppConstantEnum.getTextByName(vo.getDomain())); |
| | | return vo; |
| | | } |
| | | |
| | | public List<LinkTypeVO> listEntityVO(List<LinkType> entityList){ |
| | | return Optional.ofNullable(entityList).orElseGet(ArrayList::new).stream().map(this::entityVO).collect(Collectors.toList()); |
| | | public List<LinkTypeVO> listEntityVO(List<LinkType> entityList, Map<String, List<LinkTypeAttributeVO>> pkLinkTypeAndAttributeMap){ |
| | | List<LinkTypeVO> voList = Optional.ofNullable(entityList).orElseGet(ArrayList::new).stream().map(this::entityVO).collect(Collectors.toList()); |
| | | if (!CollectionUtils.isEmpty(voList) && pkLinkTypeAndAttributeMap != null){ |
| | | voList.forEach(vo -> { |
| | | List<LinkTypeAttributeVO> attributes = pkLinkTypeAndAttributeMap.getOrDefault(vo.getOid(), new ArrayList<>()); |
| | | vo.setAttributes(attributes); |
| | | }); |
| | | } |
| | | return voList; |
| | | } |
| | | |
| | | public void copyLinkTypeVO2DO(LinkTypeVO linkTypeVO, LinkType linkTypeDO, String creator, Date now) { |
| | |
| | | linkTypeDO.setLastModifyTime(now); |
| | | linkTypeDO.setBtmName(BtmTypeConstant.LINK_TYPE); |
| | | } |
| | | |
| | | /** |
| | | * 编辑保存前设置默认字段值 |
| | | * |
| | | * @param linkTypeDO 链接类型 |
| | | * @param modifier 修改人 |
| | | * @param modifyTime 修改时间 |
| | | * @return |
| | | */ |
| | | public LinkType setBeforeUpdate(LinkType linkTypeDO, String modifier, Date modifyTime) { |
| | | linkTypeDO.setLastModifier(modifier); |
| | | linkTypeDO.setTs(modifyTime); |
| | | linkTypeDO.setLastModifyTime(modifyTime); |
| | | return linkTypeDO; |
| | | } |
| | | |
| | | /** |
| | | * 插入前设置默认字段 |
| | | * @param linkTypeDO 链接类型 |
| | | * @param creator 创建人 |
| | | * @param createTime 创建时间 |
| | | */ |
| | | public void setBeforeInsert(LinkType linkTypeDO, String creator, Date createTime) { |
| | | linkTypeDO.setOid(VciBaseUtil.getPk()); |
| | | linkTypeDO.setCreator(creator); |
| | | linkTypeDO.setCreateTime(createTime); |
| | | linkTypeDO.setOwner(creator); |
| | | linkTypeDO.setBtmName(BtmTypeConstant.LINK_TYPE); |
| | | linkTypeDO.setTs(createTime); |
| | | linkTypeDO.setLastModifyTime(createTime); |
| | | linkTypeDO.setLastModifier(creator); |
| | | } |
| | | } |
| | |
| | | </sql> |
| | | |
| | | <sql id="tableName"> |
| | | pl_omd_link_type_attr |
| | | pl_omd_link_type_attribute |
| | | </sql> |
| | | </mapper> |