Merge remote-tracking branch 'origin/master'
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/router/axios'; |
| | | |
| | | //ç¼ç ç³è¯·æ |
| | | export const getAuthTree = (params) => { |
| | | return request({ |
| | | url: '/api/ubcs-code/codeApplyWebManagementController/getAuthTree', |
| | | method: 'get', |
| | | params:{ |
| | | ...params |
| | | } |
| | | }) |
| | | } |
| | | //ç¼ç ç³è¯·æ§ä»¶ |
| | | export const getUsedTemplateByClassifyOid = (params) => { |
| | | return request({ |
| | | url: '/api/ubcs-code/codeApplySwingController/getUsedTemplateByClassifyOid', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | export function getCodeRule(params) { |
| | | return request({ |
| | | url: 'api/ubcs-code/mdmEngineController/getCodeRuleByClassifyOid', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | |
| | | try { |
| | | // console.log(data) |
| | | this.TreeValue=data.label.split(" ")[0].trim(); |
| | | console.log('TreeValue',this.TreeValue) |
| | | this.$emit('TreeValue',this.TreeValue) |
| | | this.nodeClickList = data; |
| | | this.tableHeadDataFateher = [] |
| | |
| | | <template> |
| | | <p>ç¼ç ç³è¯·</p> |
| | | <el-row> |
| | | <el-col :span="4"> |
| | | <basic-container> |
| | | <avue-tree ref="tree" |
| | | v-model="form" |
| | | :data="TreeData" |
| | | :option="TreeOption" |
| | | style="height: calc(100vh - 150px)" |
| | | @node-click="nodeClick"> |
| | | </avue-tree> |
| | | </basic-container> |
| | | </el-col> |
| | | <el-col :span="20"> |
| | | <basic-container> |
| | | <div style="height: calc(100vh - 150px)"> |
| | | <FormTemplate |
| | | key="masterForm" data-key="masterForm" |
| | | v-bind="$attrs" |
| | | :type="type" |
| | | :TreeValue="TreeValue" |
| | | :eventList="eventList" |
| | | ref="FormTemplate" |
| | | @getFormData="getFormData" |
| | | ></FormTemplate> |
| | | <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick"> |
| | | <el-tab-pane label="ç å¼ç³è¯·" name="codeApply" v-if="showCodeApply"> |
| | | <FormTemplate |
| | | key="codeApplyForm" data-key="codeApplyForm" |
| | | secDTOListv-bind="$attrs" |
| | | :type="type" |
| | | :selfColumnType="selfColumnType" |
| | | :selfColumnConfig="selfColumnConfig" |
| | | ref="CodeApply" |
| | | @getFormData="getCodeApplyFormData" |
| | | @referConfigDataUpdate="referConfigDataUpdate" |
| | | ></FormTemplate> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </basic-container> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getAuthTree,getUsedTemplateByClassifyOid,getCodeRule} from '@/api/code/codeApply.js' |
| | | |
| | | export default { |
| | | name: "codeApply" |
| | | name: "codeApply", |
| | | components: { FormTemplate: () => import('@/components/FormTemplate/FormTemplate') }, |
| | | data() { |
| | | return { |
| | | codeClassifyOid:'', |
| | | type:'add', |
| | | TreeValue:'', |
| | | dialogVisible:true, |
| | | setForm:{}, |
| | | secVOList: [], |
| | | codeRuleOid: "", |
| | | activeName: "codeApply", |
| | | showCodeApply: false, |
| | | eventList:[], |
| | | form: {}, |
| | | TreeData:[], |
| | | TreeOption: { |
| | | defaultExpandAll: false, |
| | | addBtn: false, |
| | | }, |
| | | //æ°å¢ç±»å |
| | | selfColumnType: { |
| | | codefixedsec: "combox",//åºå®ç 段 |
| | | codeclassifysec: "refer",//åç±»ç æ®µ |
| | | codevariablesec: "text",//å¯åç æ®µ |
| | | coderefersec: "refer",//å¼ç¨ç 段 |
| | | codeattrsec: "text", |
| | | codelevelsec: "text", |
| | | codedatesec: "date" |
| | | }, |
| | | selfColumnConfig: { |
| | | function: { |
| | | required: this.isRequired, |
| | | dicData: this.getOptionList, |
| | | type: this.getType, |
| | | referConfig: this.getReferConfig, |
| | | readOnly: this.getDisabled, |
| | | }, |
| | | exchange: { |
| | | text: "name", |
| | | field: "oid", |
| | | prop: "oid", |
| | | showField: "name", |
| | | parentClassifySecOid: "parentClassifySecOid", |
| | | label: "name", |
| | | maxlength: "codeSecLength", |
| | | data: "fixedValueVOList", |
| | | dateFormate: "codeDateFormatStr" |
| | | }, |
| | | directVoluation: { |
| | | search: true, |
| | | props: { |
| | | label: "id", |
| | | value: "id", |
| | | }, |
| | | }, |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | | this.getTreeData() |
| | | }, |
| | | methods:{ |
| | | getFormData(form) { |
| | | this.form = form; |
| | | }, |
| | | //å®ä¹ä¸ä¸ªä¿®æ¹æ°æ®å±æ§åçæ¹æ³ |
| | | ModifyProperties(obj, oldName, newName) { |
| | | for (let key in obj) { |
| | | if (key === oldName) { |
| | | obj[newName] = obj[key]; |
| | | delete obj[key]; |
| | | } |
| | | if (typeof obj[key] === 'object') { |
| | | this.ModifyProperties(obj[key], oldName, newName); |
| | | } |
| | | } |
| | | }, |
| | | getTreeData(){ |
| | | getAuthTree({ |
| | | 'library': 'XH', |
| | | 'systemOid': '061261BF-2736-4589-12F7-0DFA79121222', |
| | | 'systemId': '02' |
| | | }).then(res => { |
| | | // console.log(res); |
| | | this.TreeData=res.data; |
| | | this.ModifyProperties(this.TreeData, 'name', 'label'); |
| | | // console.log( this.codeClassifyOid) |
| | | |
| | | }); |
| | | }, |
| | | nodeClick(row){ |
| | | // console.log(row) |
| | | this.TreeValue=row.text.split(" ")[0].trim(); |
| | | this.codeClassifyOid = row.oid; |
| | | getUsedTemplateByClassifyOid({ 'codeClassifyOid': this.codeClassifyOid,templateOid:' 97e979919a1f1dca67290e85fee22688' }).then((res) => { |
| | | console.log('===res',res) |
| | | if (res.data.code === 200) { |
| | | this.$nextTick(() => { |
| | | this.eventList=res.data.data.attributes |
| | | // this.$refs.FormTemplate.$emit('eventList', res.data.templateVO.attributes); |
| | | if (Object.keys(this.setForm).length > 0) { |
| | | this.$refs.FormTemplate.form = this.setForm; |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.loading = false; |
| | | }); |
| | | this.getCodeRule() |
| | | }, |
| | | getCodeRule() { |
| | | let that = this; |
| | | getCodeRule({codeClassifyOid: that.codeClassifyOid}).then((res) => { |
| | | if (res.data && res.data.code === 200) { |
| | | that.codeRuleOid = res.data.data.oid; |
| | | const typeList = [ |
| | | //屿§ç 段 åªè¯» |
| | | "codeattrsec", |
| | | //å¯åç æ®µ |
| | | "codevariablesec", |
| | | //åºå®ç 段 |
| | | "codefixedsec", |
| | | //åç±»ç æ®µ |
| | | "codeclassifysec", |
| | | //æ¥æç æ®µ åªè¯» |
| | | "codedatesec", |
| | | //å¼ç¨ç 段 |
| | | "coderefersec", |
| | | //å±çº§ç 段 åªè¯» |
| | | "codelevelsec", |
| | | //æµæ°´ç 段 éè |
| | | ]; |
| | | that.secVOList = (res.data.data.secVOList || []).filter((item) => |
| | | typeList.includes(item.secType) |
| | | ); |
| | | if (that.secVOList.length > 0 && that.type === "add") { |
| | | that.showCodeApply = true; |
| | | that.activeName = "codeApply"; |
| | | this.$nextTick(() => { |
| | | that.$refs.CodeApply.templateRender(that.secVOList, this.TreeValue); |
| | | }); |
| | | } else { |
| | | that.showCodeApply = false; |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | getType(item) { |
| | | return this.selfColumnType[item.sectype]; |
| | | }, |
| | | isRequired(item) { |
| | | return item.nullableFlag != "true"; |
| | | }, |
| | | getOptionList(item) { |
| | | if ( |
| | | Array.isArray(item.fixedValueVOList) && |
| | | item.fixedValueVOList.length > 0 |
| | | ) { |
| | | const configAttr = { |
| | | key: "id", |
| | | value: "id", |
| | | }; |
| | | const optionList = item.fixedValueVOList.map((item) => { |
| | | for (const key in configAttr) { |
| | | if (Object.hasOwnProperty.call(configAttr, key)) { |
| | | const element = configAttr[key]; |
| | | item[key] = item[element]; |
| | | } |
| | | } |
| | | return item; |
| | | }); |
| | | return optionList; |
| | | } else { |
| | | return []; |
| | | } |
| | | }, |
| | | getReferConfig(item) { |
| | | let params = {}; |
| | | if (item.secType == "codeclassifysec") { |
| | | //åç±»ç æ®µ |
| | | params = { |
| | | isMuti: false, |
| | | type: "grid", |
| | | tableConfig: { |
| | | limit: -1, |
| | | cols: [ |
| | | { |
| | | field: "id", |
| | | title: "è±æåç§°", |
| | | sort: true, |
| | | width: 150, |
| | | }, |
| | | { |
| | | field: "name", |
| | | title: "䏿åç§°", |
| | | sort: true, |
| | | width: 150, |
| | | }, |
| | | { |
| | | field: "description", |
| | | title: "æè¿°", |
| | | width: 250, |
| | | }, |
| | | ], |
| | | queryColumns: [ |
| | | { |
| | | field: "id", |
| | | title: "è±æåç§°", |
| | | }, |
| | | { |
| | | field: "name", |
| | | title: "䏿åç§°", |
| | | }, |
| | | ], |
| | | }, |
| | | url: "api/ubcs-code/ubcs-code/mdmEngineController/listCodeClassifyValueBySecOid", |
| | | extraParams: { |
| | | classifySecOid: item.oid, |
| | | parentClassifyValueOid: item.parentClassifySecOid |
| | | ? this.codeApplyForm[item.parentClassifySecOid] |
| | | : "", |
| | | }, |
| | | }; |
| | | } else if (item.secType == "coderefersec") { |
| | | //å¼ç¨ç 段 |
| | | params = JSON.parse(item.referValueInfo); |
| | | } |
| | | return params; |
| | | }, |
| | | getDisabled(item) { |
| | | if (item.secType === "codeclassifysec") { |
| | | if (item.parentClassifySecOid) { |
| | | if (!this.codeApplyForm[item.parentClassifySecOid]) { |
| | | return true; |
| | | } else { |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | // åç
§ç»ä»¶æ°æ®åæ´ |
| | | referConfigDataUpdate(data) { |
| | | const { field } = data; |
| | | let childItems=[]; |
| | | this.secVOList = this.secVOList.map((item) => { |
| | | if (item.parentClassifySecOid === field) { |
| | | this.$refs.CodeApply.form[item.oid] = undefined; |
| | | this.$refs.CodeApply.form[item.name] = undefined; |
| | | item.readOnly=false; |
| | | item.referConfig.extraParams.parentClassifyValueOid=data.value; |
| | | item.referConfig.reloadData = true; |
| | | childItems.push(item) |
| | | } |
| | | return item; |
| | | }); |
| | | //this.$refs.CodeApply.templateRender(this.secVOList,this.TreeValue); |
| | | this.$refs.CodeApply.changeChildItem(childItems); |
| | | }, |
| | | getCodeApplyFormData(codeApplyForm) { |
| | | this.codeApplyForm = codeApplyForm; |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | components: { vciWebRefer }, |
| | | data() { |
| | | return { |
| | | referUrl:'/api/ubcs-code/dockingManagement/gridDockingSystem', |
| | | showSubmitDialog: false, |
| | | //æ¥å£ç±»å䏿 |
| | | interfaceTypeList: [{ |
| | |
| | | |
| | | <div slot="footer" class="dialog-footer" style="height: 50px;line-height: 50px"> |
| | | <el-button icon="el-icon-plus" size="small" type="primary" @click="empower">æ æ</el-button> |
| | | <el-button icon="el-icon-close" size="small" type="danger">é ç½®</el-button> |
| | | <el-button icon="el-icon-close" size="small" type="danger" @click="resetting">é ç½®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </basic-container> |
| | |
| | | created() { |
| | | }, |
| | | methods: { |
| | | //éç½® |
| | | resetting(){ |
| | | this.$refs.tree.setCheckedKeys([]) |
| | | // console.log(this.ParentList) |
| | | }, |
| | | empower() { |
| | | batchAddSave(this.checkAll.oid, this.checkAll.id, this.ParentList).then(res => { |
| | | // console.log(res.data) |
| | |
| | | }, |
| | | //åç±»ææå¤éåè° |
| | | checkChange(row, checked) { |
| | | // this.ParentList=[] |
| | | // console.log('row',row) |
| | | if (checked) { |
| | | if (!row.parentId) { |
| | | const parentRecord = { |
| | | oid: row.oid, |
| | | classifyId: row.attributes.classifyId, |
| | | classifyOid: row.attributes.classifyOid, |
| | | classParentOid: row.parentId, |
| | | }; |
| | | this.ParentList.push(parentRecord); |
| | | // 妿rowçchildrenä¸ä¸ºç©º ç»§ç»å¾ªç¯childrenä¸çæ¯ä¸ªå¯¹è±¡ |
| | | if (row.children && row.children.length > 0) { |
| | | for (let child of row.children) { |
| | | const childRecord = { |
| | | oid: child.oid, |
| | | classifyId: child.attributes.classifyId, |
| | | classifyOid: child.attributes.classifyOid, |
| | | classParentOid: child.parentId, |
| | | }; |
| | | this.ParentList.push(childRecord); |
| | | // 妿å对象çchildrenä¸ä¸ºç©º ç»§ç»å¾ªç¯è·åæ°æ® |
| | | if (child.children && child.children.length > 0) { |
| | | for (let subChild of child.children) { |
| | | const subRecord = { |
| | | oid: subChild.oid, |
| | | classifyId: subChild.attributes.classifyId, |
| | | classifyOid: subChild.attributes.classifyOid, |
| | | classParentOid: subChild.parentId, |
| | | }; |
| | | this.ParentList.push(subRecord); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | this.addAllChildren(row.children); |
| | | this.addToParentList(row); |
| | | // å¾éè¡æ¶å°ææèç¹æ·»å å°ParentListä¸ |
| | | } else { |
| | | // åæ¶å¾éçèç¹æ¯ç¶èç¹ |
| | | if (!row.parentId) { |
| | | // æ¾å°ç¶èç¹å¨ParentListä¸çç´¢å¼ |
| | | const parentIndex = this.ParentList.findIndex(item => item.oid === row.oid); |
| | | if (parentIndex !== -1) { |
| | | const parentOid = this.ParentList[parentIndex].classifyOid; |
| | | |
| | | // æ¥æ¾ææéè¦å é¤çåèç¹çç´¢å¼ |
| | | const childIndexes = this.ParentList.reduce((indexes, item, index) => { |
| | | if (item.classParentOid === parentOid && item.classifyOid !== parentOid) { |
| | | indexes.push(index); |
| | | } |
| | | return indexes; |
| | | }, []); |
| | | |
| | | // ä»åå¾åå é¤åèç¹çæ°æ®ï¼ä¿è¯ç´¢å¼çæ£ç¡®æ§ |
| | | for (let i = childIndexes.length - 1; i >= 0; i--) { |
| | | this.ParentList.splice(childIndexes[i], 1); |
| | | } |
| | | |
| | | // å é¤ç¶èç¹çæ°æ® |
| | | this.ParentList.splice(parentIndex, 1); |
| | | } |
| | | } else { |
| | | // åæ¶å¾éçèç¹æ¯åèç¹ |
| | | const childIndex = this.ParentList.findIndex(item => item.oid === row.oid); |
| | | if (childIndex !== -1) { |
| | | // å é¤åèç¹çæ°æ® |
| | | this.ParentList.splice(childIndex, 1); |
| | | } |
| | | this.removeAllChildren(row.children); |
| | | this.removeFromParentList(row); |
| | | // åæ¶å¾éå°ææèç¹æ·»å ä»ParentListä¸ç§»é¤ |
| | | } |
| | | // console.table(this.ParentList); |
| | | }, |
| | | //åèç¹æ·»å |
| | | addAllChildren(children) { |
| | | for (let child of children) { |
| | | this.addToParentList(child); |
| | | // å°åèç¹æ·»å å° ParentList ä¸ |
| | | if (child.children && child.children.length > 0) { |
| | | this.addAllChildren(child.children); |
| | | } |
| | | } |
| | | console.log('this.ParentList',this.ParentList); |
| | | }, |
| | | //åèç¹ç§»é¤ |
| | | removeAllChildren(children) { |
| | | for (let child of children) { |
| | | this.removeFromParentList(child); |
| | | // å°åèç¹ä» ParentList ä¸ç§»é¤ |
| | | if (child.children && child.children.length > 0) { |
| | | this.removeAllChildren(child.children); |
| | | } |
| | | } |
| | | }, |
| | | //å½åç¶èç¹æ·»å |
| | | addToParentList(item) { |
| | | const classifyOid = item.attributes.classifyOid; |
| | | if (!this.isClassifyOidExists(classifyOid)) { |
| | | const record = { |
| | | oid: item.oid, |
| | | classifyId: item.attributes.classifyId, |
| | | classifyOid: classifyOid, |
| | | }; |
| | | this.ParentList.push(record); |
| | | } |
| | | }, |
| | | //å½åç¶èç¹ç§»é¤ |
| | | removeFromParentList(item) { |
| | | const classifyOid = item.attributes.classifyOid; |
| | | if (this.isClassifyOidExists(classifyOid)) { |
| | | const index = this.findIndexByClassifyOid(classifyOid); |
| | | if (index !== -1) { |
| | | this.ParentList.splice(index, 1); |
| | | } |
| | | } |
| | | }, |
| | | //å¤é-ParentList |
| | | isClassifyOidExists(classifyOid) { |
| | | return this.ParentList.some(item => item.classifyOid === classifyOid); |
| | | }, |
| | | //æ¥æ¾indexä½ç½® |
| | | findIndexByClassifyOid(classifyOid) { |
| | | return this.ParentList.findIndex(item => item.classifyOid === classifyOid); |
| | | }, |
| | | //åç±»ææ |
| | | classifyHandler(row) { |
| | |
| | | ...newRowData, |
| | | ...flowData, |
| | | }; |
| | | debugger; |
| | | |
| | | console.log('params',params) |
| | | this.submitLoading = true; |
| | | let APIFun = API.add; |
| | | if (this.type === "edit") { |
| | | APIFun = API.edit; |
| | | this.$delete(params, "id"); |
| | | // this.$delete(params, "id"); |
| | | } |
| | | APIFun(params) |
| | | .then((res) => { |
| | |
| | | |
| | | @XStreamAlias("object") |
| | | public class NodeObjectDTO { |
| | | @XStreamAsAttribute |
| | | private String itemid="" ; |
| | | @XStreamAsAttribute |
| | | private String code="" ; |
| | | @XStreamAsAttribute |
| | |
| | | this.pro = pro; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "NodeObjectDTO{" + |
| | | "code='" + code + '\'' + |
| | | ", status='" + status + '\'' + |
| | | ", library='" + library + '\'' + |
| | | ", classCode='" + classCode + '\'' + |
| | | ", pro=" + pro + |
| | | '}'; |
| | | } |
| | | public String getItemid() { |
| | | return itemid; |
| | | } |
| | | |
| | | public void setItemid(String itemid) { |
| | | this.itemid = itemid; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "NodeObjectDTO{" + |
| | | "itemid='" + itemid + '\'' + |
| | | ", code='" + code + '\'' + |
| | | ", status='" + status + '\'' + |
| | | ", library='" + library + '\'' + |
| | | ", classCode='" + classCode + '\'' + |
| | | ", pro=" + pro + |
| | | '}'; |
| | | } |
| | | } |
| | |
| | | */ |
| | | @PostMapping("/test") |
| | | public String test(@RequestParam("dataString")String dataString, @RequestParam("dataType")String dataType,HttpServletRequest request){ |
| | | String result="tttt"; |
| | | String result="{\"data\": {\"object\": {\"code\": \"0201040133\",\"oid\": \"0000001\",\"erroid\": \"0\",\"msg\": \"æµè¯æå\"}}}"; |
| | | return result; |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.*; |
| | | import java.util.concurrent.atomic.AtomicReference; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.vci.ubcs.code.constant.MdmDuckingConstant.*; |
| | |
| | | public class CodeDuckingSyncServiceImpl implements ICodeDuckingSyncService { |
| | | @Value("${dataSyncPush.dataParamName:xmlData}") |
| | | public String DATA_PARAM_NAME; |
| | | |
| | | |
| | | @Value("${dataSyncPush.dataId:itemid}") |
| | | private String itemId; |
| | | @Resource |
| | | private MdmEngineService mdmEngineServiceI; |
| | | |
| | |
| | | //表示æ¯ä¸»æ°æ® |
| | | CodeClassifyTemplateVO codeClassifyTemplateVO = mdmEngineServiceI.getUsedTemplateByClassifyOid(classifyoid); |
| | | R<List<Map<String, String>>> r = mdmEngineServiceI.getDataByOid(btmoid, codeClassifyTemplateVO.getOid()); |
| | | |
| | | List<CodeClassifyTemplateAttrVO> attrVOS = codeClassifyTemplateVO.getAttributes(); |
| | | Map<String/**è±æåç§°**/, String/**䏿åç§°**/> attrIdNameMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t.getName(), (o1, o2) -> o2)); |
| | | Map<String, String> data = new HashMap<>(); |
| | |
| | | } |
| | | List<NodeProDTO> nodeProDTOS = new ArrayList<>(); |
| | | Map<String, String> finalData = data; |
| | | AtomicReference<String> newItemId= new AtomicReference<>(""); |
| | | attrIdNameMap.keySet().forEach(field -> { |
| | | if(field.toLowerCase(Locale.ROOT).equals(itemId.toLowerCase(Locale.ROOT))){ |
| | | String Value = finalData.get(field); |
| | | newItemId.set(Value); |
| | | } |
| | | String outName = attrIdNameMap.get(field); |
| | | if (finalData.containsKey(field)) { |
| | | String Value = finalData.get(field); |
| | |
| | | nodeObjectDTO.setCode(code);//设置ç¼ç |
| | | nodeObjectDTO.setClassCode(classCodeLeves[0]); |
| | | nodeObjectDTO.setStatus(data.get("lcstatus")); |
| | | nodeObjectDTO.setItemid(newItemId.get()); |
| | | nodeObjectDTO.setLibrary(classCodeLeves[classCodeLeves.length - 1]); |
| | | nodeObjectDTO.setPro(nodeProDTOS); |
| | | List<NodeObjectDTO> nodeObjectDTOS = new ArrayList<>(); |
| | |
| | | } |
| | | ResultNodeDataDTO resultNodeDataDTO=resultJsonDTO.getData(); |
| | | resultNodeObjectDTOS=resultNodeDataDTO.getObject(); |
| | | |
| | | }catch (Throwable e){ |
| | | msg="è°ç¨æ¥å£å¤±è´¥:"+e.getMessage(); |
| | | e.printStackTrace(); |
| | |
| | | from PL_CODE_SYSTEM_CLASSIFY_ROLE |
| | | start with classifyid = #{library} |
| | | and SYSTEMID=#{systemId} |
| | | and SYSTEMOID = #{systemOid} |
| | | connect by prior classifyoid = classparentoid) |
| | | </select> |
| | | |