zoukankan      html  css  js  c++  java
  • NC 6系总账凭证联查原始单据

    单据联查凭证可以找个如收款结算单的仿写一个。

    而总账凭证联查单据则需要实现联查单据的类,重新写一个类。并把类注册进数据库。

    最终效果:

     

    public class QuerySellcarryBillService implements IBillReflectorService {
    
        public Collection<FipExtendAggVO> queryBillByRelations(
                Collection<FipRelationInfoVO> relationvos) throws BusinessException {
            List<String> pkList = new ArrayList<String>();
            // 收入结转单主键
            String pkfld = "pk_sellcarry_h";
            Class cl = AggSellcarryHVO.class;
            boolean bl = true;
            String billtype = "";
            for (FipRelationInfoVO vo : relationvos) {
                pkList.add(vo.getRelationID());
                if (bl) {
                    billtype = vo.getPk_billtype();
                    checkTemplet(billtype);// 检查模板
                    String transtype = this.querytranstype(billtype);
                    // 单据类型
                    if ("HZ19".equals(billtype)
                            || (transtype != null && "HZ19".equals(transtype))) {
                        pkfld = "pk_sellcarry_h";
                        cl = AggSellcarryHVO.class;
                    }
                    bl = false;
                }
            }
            String[] pks = pkList.toArray(new String[0]);
            String sql = "";
            sql = SqlUtils.getInStr(pkfld, pks, true);
    
            NCObject[] results = MDPersistenceService
                    .lookupPersistenceQueryService().queryBillOfNCObjectByCond(cl,
                            sql, false);
            List<FipExtendAggVO> fipAggVOList = new ArrayList<FipExtendAggVO>();
            if (!ArrayUtils.isEmpty(results)) {
                for (NCObject aggvo : results) {
                    AggSellcarryHVO aggVo2 = (AggSellcarryHVO) aggvo
                            .getContainmentObject();
                    FipExtendAggVO fipAggVO = new FipExtendAggVO();
                    fipAggVO.setRelationID(aggVo2.getPrimaryKey());
                    fipAggVO.setBillVO(aggVo2);
                    fipAggVOList.add(fipAggVO);
                }
            }
            return fipAggVOList;
        }
    
        private void checkTemplet(String billtype) throws BusinessException {
            try {
                IBillTemplateQry impl = (IBillTemplateQry) NCLocator.getInstance()
                        .lookup(IBillTemplateQry.class);
                IUAPQueryBS bs = (IUAPQueryBS) NCLocator.getInstance().lookup(
                        IUAPQueryBS.class);
                // 默认HZ19的查询模板主键。
                String sql = "select templateid from pub_systemplate_base where templateid='0001ZZ100000005442CC'";
                String id = (String) bs.executeQuery(sql, new ColumnProcessor());
                BillTempletVO template = impl.findCardTempletData(id);
                if (template == null) {
                    throw new BusinessException("交易类型:" + billtype
                            + "没有分配模板,请在功能节点默认模板设置进行分配!");
                }
            } catch (BusinessException e) {
                e.printStackTrace();
                throw new BusinessException("查询模板出现异常:" + e.getMessage());
            }
    
        }
    
        // 去查询交易类型与单据类型的关联关系,
        public String querytranstype(String billtype) throws BusinessException {
            String sql = "select parentbilltype from bd_billtype where pk_billtypecode='"
                    + billtype + "'";
            Object tr = new BaseDAO().executeQuery(sql, new ColumnProcessor());
            if (tr != null) {
                if (!StringUtils.isEmpty(tr.toString())
                        && !"~".equals(tr.toString())) {
                    return tr.toString();
                }
            }
            return null;
        }
    }

    注册进数据库

    insert into fip_billregister (BILLDRAWCLASS, BILLREFLECTCLASS, BILLSUMCLASS, CLASS_ENTITY_ID, CTRLORGFINDCLASS, DEFDOC1, DEFDOC2, DEFDOC3, DEFQUERYCLASS, DESBILLSERVCLASS, DESBILLSUMCLASS, DESCTRLRULECLASS, DESSUMRULECLASS, DESSUMRULEENTITY, DESSUMRULEREF, DISPLAYCLASS, DR, DRAWQUERYCLASS, EDITCLASS, LINKQUERYCLASS, MODULECODE, ORG_CTRL_ENTITY1, ORG_CTRL_ENTITY2, ORG_ENTITY_ID, PK_BILLREGISTER, PK_BILLTYPE, PK_GROUP, PK_ORG, TS)
    values (null, 'nc.bs.hzctr.sellcarry.ace.bp.QuerySellcarryBillService', null, '~', null, null, null, null, null, null, null, null, null, null, null, null, 0, null, null, null, 'hzctr', '~', '~', '~', '0000Z30000000HPF0811', 'HZ19', '~', '~', '2017-08-11 10:03:11');

    作者:冬瓜茶饮料
    出处:http://www.cnblogs.com/dongguacha/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    c++之输出文件和输入文件的处理
    C++之输入输出流
    c++之虚析构函数
    c++之虚函数和基类指针
    接口自动化测试框架Karate入门
    uiautomator+cucumber实现移动app自动化测试
    calabash-android Win10 入门笔记
    Page Object 模式编写UiAutomator脚本
    ruby脚本打印日志到rspec的报告文件中
    Ruby跳出多层循环 catch...throw
  • 原文地址:https://www.cnblogs.com/dongguacha/p/7346063.html
Copyright © 2011-2022 走看看