单据分页的实现

单据分页的实现

1. AceWzcgfkjtMaintainProxy.java

在这里插入图片描述

package nc.ui.jych.wzcgfkjt.ace.serviceproxy;import nc.bs.framework.common.NCLocator;
import nc.itf.jych.IWzcgfkjtMaintain;
import nc.ui.uif2.components.pagination.IPaginationQueryService;
import nc.vo.jych.wzcgfkjt.AggWzcgfkjtVO;
import nc.vo.pub.BusinessException;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;/*** 示例单据的操作代理* * @author author* @version tempProject version*/
public class AceWzcgfkjtMaintainProxy implements IPaginationQueryService {@Overridepublic Object[] queryObjectByPks(String[] pks)throws BusinessException {// TODO 自动生成的方法存根AggWzcgfkjtVO[] aggvo = null;IWzcgfkjtMaintain query = NCLocator.getInstance().lookup(IWzcgfkjtMaintain.class);try {aggvo = query.queryBillByPK(pks);} catch (Exception e) {ExceptionUtils.wrappException(e);}return aggvo;}}

2. Wzcgfkjt_config.xml

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

<!--分页新增这三个bean-->
<bean id="maintainProxy" class="nc.ui.jych.wzcgfkjt.ace.serviceproxy.AceWzcgfkjtMaintainProxy" /><bean id="paginationModel" class="nc.ui.pubapp.uif2app.model.pagination.PubPaginationModel"init-method="init"><property name="paginationQueryService" ref="maintainProxy" />
</bean><bean id="paginationBar" class="nc.ui.uif2.components.pagination.PaginationBar" init-method="onStructChanged"><property name="paginationModel" ref="paginationModel" />
</bean><!-- 应用服务类,负责进行模型操作的处理 -->
<bean id="bmModelModelService" class="nc.ui.jych.wzcgfkjt.ace.serviceproxy.AceWzcgfkjtMaintainProxy"/><!--分页新增这二个bean-->
<bean id="bmModelModelDataManager" class="nc.ui.pubapp.uif2app.model.pagination.PaginationModelDataManager"><property name="model" ref="bmModel"></property><property name="paginationModel" ref="paginationModel" /><property name="pageQueryService" ref="pageQueryService" />
</bean><bean id="pageQueryService" class="nc.ui.pubapp.uif2app.model.pagination.UIPageQueryService"><property name="allPagePkQueryServiceMethod" value="nc.itf.jych.IWzcgfkjtMaintain.queryPKs"></property><property name="dataOfPksQueryServiceMethod" value="nc.itf.jych.IWzcgfkjtMaintain.queryBillByPK"></property>
</bean><!--分页新增这个property-->
<property name="paginationBar" ref="paginationBar" />

3. AceWzcgfkjtPubServiceImpl.java

在这里插入图片描述

package nc.impl.pub.ace;import java.util.ArrayList;
import java.util.List;import nc.bs.framework.common.InvocationInfoProxy;
import nc.bs.framework.common.NCLocator;
import nc.impl.pubapp.pattern.data.bill.BillQuery;
import nc.impl.pubapp.pattern.database.DataAccessUtils;
import nc.itf.uap.IUAPQueryBS;
import nc.jdbc.framework.processor.ArrayListProcessor;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.ui.querytemplate.querytree.IQueryScheme;
import nc.vo.jych.wzcgfkjt.AggWzcgfkjtVO;
import nc.vo.pub.BusinessException;
import nc.vo.pubapp.bill.pagination.util.PaginationUtils;
import nc.vo.pubapp.pattern.data.IRowSet;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nc.vo.pubapp.pattern.pub.SqlBuilder;
import nc.vo.pubapp.query2.sql.process.QuerySchemeProcessor;
import nc.vo.zkch.utils.NullValueUtils;public abstract class AceWzcgfkjtPubServiceImpl {//分页查询方法,根据PK查单据public AggWzcgfkjtVO[] pubquerybillbypkbills(String[] pks) {AggWzcgfkjtVO[] bills = null;BillQuery<AggWzcgfkjtVO> query =new BillQuery<AggWzcgfkjtVO>(AggWzcgfkjtVO.class);bills = query.query(pks);return PaginationUtils.filterNotExistBills(bills, pks);}//分页查询方法,查询所有PKpublic String[] pubquerypkbills(IQueryScheme queryScheme) {// String beanId=(String) queryScheme.get(QueryConstants.BEAN_ID);StringBuffer sql = new StringBuffer();QuerySchemeProcessor processor = new QuerySchemeProcessor(queryScheme);String mainAlias = processor.getMainTableAlias();sql.append(" select distinct ");sql.append(mainAlias);sql.append(".");sql.append("pk_wzcgfkjt");sql.append(processor.getFinalFromWhere());//系统当前登录用户String userId = InvocationInfoProxy.getInstance().getUserId();//根据登录用户id查询对应的人员idIUAPQueryBS bs = NCLocator.getInstance().lookup(IUAPQueryBS.class);String sql1 ="select psndoc.pk_psndoc from bd_psndoc psndoc left join sm_user smuser on smuser.pk_psndoc = psndoc.pk_psndoc where smuser.cuserid = '"+ userId + "' and nvl(psndoc.dr,0) = 0 and nvl(smuser.dr,0) = 0";String pk_psndoc = "";List<String> yhlist = new ArrayList<String>();List<String> rylist = new ArrayList<String>();try {pk_psndoc = NullValueUtils.getNullStringValue(bs.executeQuery(sql1, new ColumnProcessor()));if(!pk_psndoc.equals("")) {SqlBuilder sqlBuilder = new SqlBuilder();sqlBuilder.append("	select distinct ry.pk_psndoc, yh.cuserid	");sqlBuilder.append("	  from sm_user yh	");sqlBuilder.append("	 inner join bd_psndoc ry	");sqlBuilder.append("	    on yh.pk_psndoc = ry.pk_psndoc	");sqlBuilder.append("	   and nvl(ry.dr, 0) = 0	");sqlBuilder.append("	 where ry.def9 = '"+pk_psndoc+"'	");List<Object[]> list = (List<Object[]>) bs.executeQuery(sqlBuilder.toString(), new ArrayListProcessor());if(list != null && list.size() > 0) {for (int i = 0; i < list.size(); i++) {Object[] objs = list.get(i);yhlist.add(NullValueUtils.getNullStringValue(objs[1]));rylist.add(NullValueUtils.getNullStringValue(objs[0]));}}}} catch (BusinessException e) {ExceptionUtils.wrappBusinessException(e.getMessage());}yhlist.add(userId);rylist.add(pk_psndoc);SqlBuilder rytj = new SqlBuilder();rytj.append(" "+mainAlias+".pk_psndoc  ",rylist.toArray(new String[0]));SqlBuilder yhtj = new SqlBuilder();yhtj.append(" "+mainAlias+".creator  ",yhlist.toArray(new String[0]));//查询出制单人为当前登录人的记录(当前跟踪人为空)。
//        sql.append(" and ( " +yhtj.toString()+" ) ");DataAccessUtils dao = new DataAccessUtils();IRowSet rowset = dao.query(sql.toString());String[] keys = rowset.toOneDimensionStringArray();return keys;}}

4. WzcgfkjtMaintainImpl.java

在这里插入图片描述

package nc.impl.jych;import java.util.Arrays;
import java.util.List;import nc.impl.pub.ace.AceWzcgfkjtPubServiceImpl;
import nc.itf.jych.IWzcgfkjtMaintain;
import nc.ui.querytemplate.querytree.IQueryScheme;
import nc.vo.jych.wzcgfkjt.AggWzcgfkjtVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.CircularlyAccessibleValueObject;
import nc.vo.pub.IVOMeta;public class WzcgfkjtMaintainImpl extends AceWzcgfkjtPubServiceImpl
implements IWzcgfkjtMaintain {@Overridepublic AggWzcgfkjtVO[] queryBillByPK(String[] pks) throws BusinessException {AggWzcgfkjtVO[] pubquerybillbypkbills = super.pubquerybillbypkbills(pks);if (pubquerybillbypkbills != null && pubquerybillbypkbills.length > 0) {for (AggWzcgfkjtVO aggVO : pubquerybillbypkbills) {IVOMeta[] children = aggVO.getMetaData().getChildren();if (children != null && children.length != 0) {for (IVOMeta item : children) {CircularlyAccessibleValueObject[] childrenVO = (CircularlyAccessibleValueObject[]) aggVO.getChildren(item);
//						@SuppressWarnings("unchecked")List<CircularlyAccessibleValueObject> asList = Arrays.asList(childrenVO);
//						asList.sort((x, y) -> Double.compare(
//								x.getAttributeValue("rowno") == null ? 0
//										: new Double(x.getAttributeValue("rowno").toString()),
//								y.getAttributeValue("rowno") == null ? 0
//										: new Double(y.getAttributeValue("rowno").toString())));}}}}return super.pubquerybillbypkbills(pks);}@Overridepublic String[] queryPKs(IQueryScheme queryScheme) throws BusinessException {return super.pubquerypkbills(queryScheme);}
}

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

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

相关文章

软考高级:信息系统开发方法2(形式化方法、统计过程方法等)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

RTC协议与算法基础 - RTP/RTCP

首先&#xff0c;需要说明下&#xff0c;webrtc的核心音视频传输是通过RTP/RTCP协议实现的&#xff0c;源码位于src/modules/rtp_rtcp目录下&#xff1a; 下面让我们对相关的内容基础进行简要分析与说明&#xff1a; 一、TCP与UDP协议 1.1、TCP协议 TCP为了实现数据传输的可…

【Python】新手入门学习:详细介绍依赖倒置原则(DIP)及其作用、代码示例

【Python】新手入门学习&#xff1a;详细介绍依赖倒置原则&#xff08;DIP&#xff09;及其作用、代码示例 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、Py…

如何将.txtpb在IDE中彩色高亮显示

1. 问题描述 文件内容片段如下&#xff0c;它采用了一种键值对的格式&#xff0c;其中还包括了注释。我们可以采用一种近似的语言色彩识别方案处理它&#xff0c;比如YAML或者Python的语法高亮规则&#xff0c;因为这两种语言在处理键值对和注释的表示上与内容片段相似。当然也…

【QT+QGIS跨平台编译】之七十三:【QGIS_Analysis跨平台编译】—【错误处理:字符串错误】

文章目录 一、字符串错误二、处理方法三、涉及到的文件一、字符串错误 常量中有换行符错误:(也有const char * 到 LPCWSTR 转换的错误) 二、处理方法 需要把对应的文档用记事本打开,另存为 “带有BOM的UTF-8” 三、涉及到的文件 涉及到的文件有: src\analysis\processin…

spring boot-操作excel(EasyExcel 快速开始)/ spring boot接受文件参数 File

文章目录 一、spring boot 操作excel1. 技术选型1.1 EasyExcel1.2 POI 二、EasyExcel使用0. 工作中使用总结1. maven 引入2. demo1&#xff1a;excel写入文件3. demo2&#xff1a;SpringBoot项目中集成EasyExcel实现Excel文件的下载response的三个属性&#xff1a;编码、类型、…

gcc -static参数

在使用 GCC&#xff08;GNU Compiler Collection&#xff09;编译器编译C语言或C语言程序时&#xff0c;-static 选项告诉编译器生成一个完全静态链接的可执行文件。这就意味着程序需要的所有库在编译时都会被包含在执行文件中&#xff0c;它不会在运行时链接动态库&#xff08…

openssl3.2 - exp - 选择最好的内建椭圆曲线

文章目录 openssl3.2 - exp - 选择最好的内建椭圆曲线概述笔记将 openssl ecparam -list_curves 实现迁移到自己的demo工程备注END openssl3.2 - exp - 选择最好的内建椭圆曲线 概述 在openssl中使用椭圆曲线, 只允许选择椭圆曲线的名字, 无法给定椭圆曲线的位数. 估计每种椭…

储能系统--户用储能市场现状(三)

1、户用储能市场现状 2022年&#xff0c;俄乌冲突造成能源价格飙升&#xff0c;欧洲居民电价飞涨&#xff0c;成为点燃户储需求的引线。以德国为例&#xff0c;2022年的居民电价达到40欧分/kWh以上&#xff0c;相比2021年初翻了三倍。因此2022年被称为户储爆发元年&#xff0c…

深度学习armv8/armv9 cache的原理

文章目录 前言1、为什么要用cache?2、背景:架构的变化?2、cache的层级关系 ––big.LITTLE架构&#xff08;A53为例)3、cache的层级关系 –-- DynamIQ架构&#xff08;A76为例)4、DSU / L3 cache5、L1/L2/L3 cache都是多大呢6、cache相关的术语介绍7、cache的分配策略(alocat…

Llama-3即将发布:Meta公布其庞大的AI算力集群

Meta&#xff0c;这家全球科技巨头&#xff0c;再次以其在人工智能&#xff08;AI&#xff09;领域的雄心壮志震惊了世界。3月13日&#xff0c;公司在其官方网站上宣布了两个全新的24K H100 GPU集群&#xff0c;这些集群专为训练其大型模型Llama-3而设计&#xff0c;总计拥有高…

C++函数 加括号与不加括号

很多时候&#xff0c;我们会看到一些在创建对象时有的加括号有的不加括号 那么&#xff0c;这是什么情况呢&#xff1f; 总结&#xff1a;函数需要加上括号&#xff0c;加上括号会对函数初始化&#xff0c;不加括号可能导致未知错误 我们来验证一下。 1.基本数据类型不带括…

利用Python进行网络爬虫:Beautiful Soup和Requests的应用【第131篇—Beautiful Soup】

利用Python进行网络爬虫&#xff1a;Beautiful Soup和Requests的应用 在网络数据变得日益丰富和重要的今天&#xff0c;网络爬虫成为了获取和分析数据的重要工具之一。Python作为一种强大而灵活的编程语言&#xff0c;在网络爬虫领域也拥有广泛的应用。本文将介绍如何使用Pyth…

C++进阶学习

模板编程 模板函数和模板类的基本概念和用法 模板编程是C中一种强大的特性&#xff0c;它允许程序员编写与类型无关的代码。这意味着你可以编写一个函数或类&#xff0c;让它能够处理任何数据类型。这不仅可以提高代码的重用性&#xff0c;还可以提高编程效率和程序的可维护性…

Verilog——Verilog的历史

第1节 Verilog的历史 在传统硬件电路的设计方法中&#xff0c;当设计工程师需要设计一个新的硬件、数字电路或数字逻辑系统 时&#xff0c;需要为此设计并画出一张线路图&#xff0c;随后在CAE&#xff08;计算机辅助工程分析&#xff09;工作站上进行设计。所 设计的线路图由线…

.Net Core 与数据库

查询 Linq var indexList new long[] { 1, 2, 3}; List<long> list new List<long>(); if (String.IsNullOrWhiteSpace(request.Key) false) {var ret from aa in _db.TblAAjoin bb in _db.TblBBon aa.PId equals bb.Idjoin cc in _db.TblCCon aa.CId equals…

13、Linux-Shell02:参数传递和运算符

目录 一、参数传递 二、运算符 1、算术运算符&#xff08;、-、*、/、%、、、&#xff01;&#xff09; 2、关系运算符 3、逻辑运算符 4、字符串运算符 5、文件运算符 一、参数传递 执行脚本时可以为脚本文件传递参数&#xff0c;在脚本中可以处理这些参数。 第n个参数…

[LeetCode][LCR172]统计目标成绩的出现次数——二分找边界

题目 LCR 172. 统计目标成绩的出现次数 某班级考试成绩按非严格递增顺序记录于整数数组 scores&#xff0c;请返回目标成绩 target 的出现次数。 示例 1&#xff1a; 输入&#xff1a;scores [2, 2, 3, 4, 4, 4, 5, 6, 6, 8], target 4 输出&#xff1a;3 示例 2&#xff1a…

Elasticseach基础认识

ES的起源&#xff1f; Elasticsearch 是由 Elastic 公司创建 简称&#xff08;ES&#xff09; Elasticsearch 是一个分布式、免费和开放的搜索和分析引擎&#xff0c;适用于所有类型的数据&#xff0c;包括文本、数字、地理空间、结构化和非结构化数据。 Elasticsearch 基于 …

Oracle 主从切换脚本

一、 切换前预检查 1. dg_precheck_main_v1.4.sh #!/bin/bash#********************************************************************************** # Author: Hehuyi_In # Date: 2022年06月16日 # FileName: dg_precheck_main_v1.4.sh # # For sys user, execute the sc…