AWC 批量查询使用关系的最新版本并导出Excel

1.查询使用关系的方法:

* 调用查询返回数据
 * @param {Object} data
 * @returns {Promise}
 * */
export let queryItemRevisionById = function (data) {
    if (!data.item_id) {
        messagingService.showInfo("请输入查询条件");
        return;
    }
    var item_id=data.item_id.dbValue.replace(' ',';');
    //根据id查询对ITEMS
    let itemQuery = {
        inputCriteria: [{
            queryNames: ['__QueryLastedItemRevision'],
            queryType: 1
        }]
    }
    soaSvc.post("Query-2010-04-SavedQuery", "findSavedQueries", itemQuery).then(async (findQuery) => {
        var savedQuery = findQuery.savedQueries[0];
        let queryItemsCondition = {
            query: savedQuery,
            entries: ["ID"],
            values: [data.item_id.dbValue],
        }
        //查询ITem对象
        return await soaSvc.post("Query-2006-03-SavedQuery", "executeSavedQuery", queryItemsCondition, policyIOverride).then(async (queryUserResponse1) => {
            let queryParentCondition = {
                objects: queryUserResponse1.objects,
                numLevels: 1,
                whereUsedPrecise: false,
                rule: "最新版本",
            }
            //查询引用的对象
            var queryUserResponse2 = await soaSvc.post("Core-2007-01-DataManagement", "whereUsed", queryParentCondition, policyIOverride).then(async (queryUserResponse2) => {
                console.log(queryUserResponse2);
                return queryUserResponse2;
            }).catch(
                function (error) {
                    console.log(error);
                }
            );
            createDataTable(queryUserResponse1, queryUserResponse2);

        }).catch(
            function (error) {
                console.log(error);
            }
        );;
    });
}
 
2.创建表格:
let createDataTable = function (queryUserResponse1, queryUserResponse2) {
    columns = [{
            title: '子项',
            columns: [{
                    title: '子项ID',
                    field: 'child_item_id',
                    width: 'auto'
                },
                {
                    title: '子项版本',
                    field: 'child_item_revision_id',
                    width: 'auto'
                },
                {
                    title: '子项名称',
                    field: 'child_object_name',
                    width: 'auto'
                },
                {
                    title: '子项描述',
                    field: 'child_object_desc',
                    width: 'auto'
                },
                {
                    title: '子项状态',
                    field: 'child_release_status_list',
                    width: 'auto'
                },
                {
                    title: '子项发布日期',
                    field: 'child_date_released',
                    width: 'auto'
                },
                {
                    title: '子项类型',
                    field: 'child_object_type',
                    width: 'auto'
                },
                {
                    title: '子项所有者',
                    field: 'child_owning_user',
                    width: 'auto'
                }
            ]
        },
        {
            title: '父项',
            columns: [{
                    title: '父项ID',
                    field: 'parent_item_id',
                    width: 'auto'
                },
                {
                    title: '父项版本',
                    field: 'parent_item_revision_id',
                    width: 'auto'
                },
                {
                    title: '父项名称',
                    field: 'parent_object_name',
                    width: 'auto'
                },
                {
                    title: '父项描述',
                    field: 'parent_object_desc',
                    width: 'auto'
                },
                {
                    title: '父项状态',
                    field: 'parent_release_status_list',
                    width: 'auto'
                },
                {
                    title: '父项发布日期',
                    field: 'parent_date_released',
                    width: 'auto'
                },
                {
                    title: '父项类型',
                    field: 'parent_object_type',
                    width: 'auto'
                },
                {
                    title: '父项所有者',
                    field: 'parent_owning_user',
                    width: 'auto'
                }
            ]
        }
    ];
    records = [];
   
    var map= new Map();
    //获取其中的不重复的父项最大版本
    _.forEach(queryUserResponse2.output, (output1 => {
        _.forEach(output1.info, (info => {
        var  parent_item_id=info.parentItemRev.props.item_id.uiValues[0];
        var parent_item_revision_id= info.parentItemRev.props.item_revision_id.uiValues[0];
        if(!map.has(parent_item_id))
            map.set(parent_item_id,parent_item_revision_id);
        else{
            var temp=map.get(parent_item_id);
            if(temp<parent_item_revision_id)
                map.set(parent_item_id,parent_item_revision_id);
        }
        }));
    }));

    _.forEach(queryUserResponse1.objects, (inputObject) => {
        _.forEach(queryUserResponse2.output, (output1 => {
            if (output1.inputObject === inputObject) {
                _.forEach(output1.info, (info => {
                    var parent_item_id=info.parentItemRev.props.item_id.uiValues[0];
                    var parent_item_revision_id=info.parentItemRev.props.item_revision_id.uiValues[0]
                    if(map.get(parent_item_id)==parent_item_revision_id){
                        var record = {
                            child_item_id: inputObject.props.item_id.uiValues[0],
                            child_item_revision_id: inputObject.props.item_revision_id.uiValues[0],
                            child_object_name: inputObject.props.object_name.uiValues[0],
                            child_object_desc: inputObject.props.object_desc.uiValues[0],
                            child_release_status_list: inputObject.props.release_status_list.uiValues[0],
                            child_date_released: inputObject.props.date_released.uiValues[0],
                            child_object_type: inputObject.props.object_type.uiValues[0],
                            child_owning_user: inputObject.props.owning_user.uiValues[0],
   
                            parent_item_id: info.parentItemRev.props.item_id.uiValues[0],
                            parent_item_revision_id: info.parentItemRev.props.item_revision_id.uiValues[0],
                            parent_object_name: info.parentItemRev.props.object_name.uiValues[0],
                            parent_object_desc: info.parentItemRev.props.object_desc.uiValues[0],
                            parent_release_status_list: info.parentItemRev.props.release_status_list.uiValues[0],
                            parent_date_released: info.parentItemRev.props.date_released.uiValues[0],
                            parent_object_type: info.parentItemRev.props.object_type.uiValues[0],
                            parent_owning_user: info.parentItemRev.props.owning_user.uiValues[0]
                        };
                        records.push(record);
                    }
                }));
            }
        }));
    });
    //构建表格
    const option = {
        records: records,
        columns: columns,

        autoWrapText: true,
        heightMode: 'autoHeight',
        editCellTrigger: 'click',
        keyboardOptions: {
            copySelected: true,
            pasteValueToCell: true,
            selectAllOnCtrlA: true
        },
        theme: vt.themes.ARCO.extends({
            scrollStyle: {
                visible: 'always',
                scrollSliderColor: 'purple',
                scrollRailColor: '#bac3cc',
                hoverOn: false,
                barToSide: true
            }
        }),
        rowSeriesNumber: {
            title: '序号',
            width: 'auto',
            headerStyle: {
                color: 'black',
                bgColor: 'pink'
            },
            style: {
                color: 'red'
            }
        },
        emptyTip: {
            text: '未查询到数据!'
        }
    };

    let dom = document.getElementById("QueryWhereUserdView");
    queryWhereUserdDataTable = new vt.ListTable(dom, option);
    window['queryWhereUserdDataTable'] = queryWhereUserdDataTable
}

3.最终效果,可以批量查询多个数据的使用关系:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/791899.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker 简介

首先说明一些特性:一个容器中只有一个主进程,遵循单一原则,否则一个容器挂了会导致多个进程挂掉;容器其实就是一个进程,docker可以管理这些进程。docker能够进行容器隔离,我们操作的其实是docker客户端,而不是server端。 docker info # 查看docker信息docker基本概念 doc…

阿里重磅开源Qwen2-VL:超越人类的视觉理解能力,从医学影像到手写识别,这款开源多模态大模型究竟有多强?(附本地化部署教程)

阿里重磅开源Qwen2-VL:超越人类的视觉理解能力,从医学影像到手写识别,这款开源多模态大模型究竟有多强?(附本地化部署教程)模型介绍 最近呢,阿里巴巴开源了Qwen2-VL,在多模态大模型展现了在实际应用中的巨大潜力,尤其是在处理跨模态数据方面表现出众。以下是该模型的几…

2024 秋季PAT认证甲级(题解A1-A4)

2024 秋季PAT认证甲级(题解A-D) 写在前面 这一次PAT甲级应该是最近几次最简单的一次了,3个小时的比赛差不多30分钟就ak了(也是拿下了整场比赛的rk1),下面是题解报告,每个题目差不多都是20-30行代码,难度在洛谷普及组左右(cf 1000-1200分)A. A-1 Happy Patting 题目描述…

安装远程软件

1.进入raylink官网点击立即下载【https://www.raylink.live/download.html】2.下载好后双击安装3.安装完成后打开raylink

Hyper-V 安装 Centos

Author: ACatSmiling Since: 2024-09-02CentOS 安装 ISO 镜像下载官方网站:https://www.centos.org/目前,最新版本为 CentOS Stream 9:本文以 CentOS 7 为例,下载页拉到下面,选择旧版本安装。Older Versions Legacy versions of CentOS are no longer supported. For hist…

使用zig语言制作简单博客网站(八)归档页和关于页

后端代码注册路由// 归档文章router.get("/api/article/archive", &articleController.getArchiveArticles);model/article.zig增加以下代码/// 用于存放归档文章信息 pub const ArchiveArticle = struct {id: u32,title: []const u8,cate_name: []const u8,crea…

多线程、任务、异步的区别

Task和Thread的区别 这是一个高频,深刻的问题,无论去哪都逃不过被询问这个问题。Task是基于Thread的,这是众所周知的。但是Task和Thread的联系如此简单和纯粹确实我没想到的。甚至只需要几十行代码就能呈现其原理。一个简单的模拟实例说明Task及其调度问题,这真是一篇好文章…

UART

UART协议帧在 UART中,传输模式为数据包形式。数据包由起始位、数据帧、奇偶校验位和停止位组成。起始位当不传输数据时, UART 数据传输线通常保持高电压电平。若要开始数据传输,发送UART 会将传输线从高电平拉到低电平并保持1 个时钟周期。当接收 UART 检测到高到低电压跃迁…

电路分析 ---- 加法器

1 同相加法器分析过程虚短:\(u_{+}=u_{-}=\cfrac{R_{G}}{R_{G}+R_{F}}u_{O}\) \(i_{1}=\cfrac{u_{I1}-u_{+}}{R_{1}}\);\(i_{2}=\cfrac{u_{I2}-u_{+}}{R_{2}}\);\(i_{3}=\cfrac{u_{I3}-u_{+}}{R_{3}}\);且有\(i_{1}+i_{2}+i_{3}=0\). 所以得到\(\cfrac{u_{I1}}{R_{1}}+\cfr…

docker 配置elasticSearch

1、拉取elasticSearch容器 docker pull docker.elastic.co/elasticsearch/elasticsearch:8.9.0 2、运行容器并且与物理机映射端口(9200,物理机器) 9300(容器端口) docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node&quo…

mini-lsm通关笔记Week1Day7

Summary在上一章中,您已经构建了一个具有get/scan/put支持的存储引擎。在本周末,我们将实现SST存储格式的一些简单但重要的优化。欢迎来到Mini-LSM的第1周零食时间! 在本章中,您将:在SST上实现布隆过滤器,并集成到LSM读路径get中。 以SST块格式实现对key存储的压缩。要将…

记一次我的博客园页面突然无法显示markdown数学公式

记一次我的博客园页面突然无法显示markdown数学公式,之前都还好好的,今天突然给我数学公式卡没了......之前都还好好的,今天突然给我数学公式卡没了......具体情况如下但是我编辑的时候预览明明可以摘要里显示也没有问题给官方写了封邮件后得到回复如下 您好,我们这边测试一…