NC源码阅读

Collection 是有序的集合

mapnum.put();
mapprice.put();
mapbillno.put();

map.put();
map.get();


list转为数组:
List<SaleInvoiceSubVO> vos;
vos.toArray(new SaleInvoiceSubVO[vos.size()];
方法二
List<SaleOutVO> lunSignList
SaleOutVO[] notSignVOs = (SaleOutVO[])CollectionUtils.listToArray(lunSignList);



HashMap.containkey();

div            除
multiply    乘
add           加
sub            减

map.containKey(vo.getCustomer){}
map.put(vo.getCusomer,List<SaleInvoiceSubVO>) ;

map集合中的value对应可以存放很多东西,类似string类型,int型,还要list集合都可以;
取值的话是通过 map.get(key);存值是通过 map.put();


按照客户对一个集合进行分组:(//根据客户分组存储,一个客户一张发票)


Map和Set不可存在重复元素


for(SaleInvoiceSubVO vos : vos){
    if(map.containKey(vo.getCustomer())){         
        List<SaleInvoiceSubVO> list = map.get(vo.getCustomer());
        list.add(vo);
        map.put(vo.getCustomer(),list);
     }else{
        List<SaleInvoiceSubVO> list = new ArrayList<SaleInvoiceSubVO>();
        list.add(vo);
         map.put(vo.getCustomer(),list);
     }
}

for(SaleInvoiceSubVO vo:vos) {
    if(map.containsKey(vo.getCustomer())) {
        List<SaleInvoiceSubVO> list=map.get(vo.getCustomer());
        list.add(vo);
        map.put(vo.getCustomer(), list);
    }else {
        List<SaleInvoiceSubVO> list=new ArrayList<SaleInvoiceSubVO>();
        list.add(vo);
        map.put(vo.getCustomer(), list);
    }
}


aggvo查询
IMDPersistenceQueryService dao=NCLocator.getInstance().lookup(IMDPersistenceQueryService.class);
Collection<SaleOrderVO> vos=dao.queryBillOfVOByCond(SaleOrderVO.class, sql.toString(), false);

UFDouble result = new UFDouble(0);

通过VO的方式去查询数据,SQL只需要写一半就可以了
String sql=" state = 0 and customer = '1001A110000000000ABN'";
Collection<SaleInvoiceSubVO> vos=new BaseDAO().retrieveByClause(SaleInvoiceSubVO.class, sql);


环境变量:
InvocationInfoProxy.getInstance().getGroupId();


hashmap.entrySet();

拉单功能:
SaleInvoiceVO[] invoicebills = PfServiceScmUtil.executeVOChange("4C", "32", orders.toArray(new SaleOutVO[orders.size()]));


--list.addAll();
---用于将指定 collection 中的所有元素添加到列表的尾部。如果 List 集合对象由于调用 addAll 方法而发生更改,则返回 true。

Add方法是将传入的参数作为当前List中的一个item存储,即使你传入一个List也只会令当前的List增加1个元素

AddAll是传入一个List,将此List中的所有元素加入到当前List中,也就是当前List会增加的元素个数为传入的List的大小


HashMap<String,List<SaleInvoiceSubVO>> vomap = querySaleInvoiceSubVO();
for(Entry<String,List<SaleInvoiceSubVO>> entry :vomap.entrySet()){
         entry.getValue().get(0);
         
}


private void calQuantity(SaleInvoiceVO ordervo,List<SaleInvoiceSubVO> list){
    
     HashMap<String,UFDouble> mapnum = new HashMap<String,UFDouble>();//主数量
     HashMap<String,UFDouble> mapprice = new  HashMap<String,UFDouble>();//单价
     HashMap<String,String> mapbillno = new HashMap<String,String>();//销售发票 辅助项的自定义项一 
     for(SaleInvoiceSubVO svo : list) {
             mapnum.put(svo.getMaterial(),new UFDouble(svo. getSalenumber));
             mapprice.put(svo.getMaterial(), new UFDouble(svo.getPrice()));
             mapbillno.put(svo.getMaterial(), svo.getVdef1());
     }
      SaleInvoiceBVO[] bvos = ordervo.getChildrenVO();      
}





map.entrySet();
entry.getValue();


用hashmap存储一个key的值,然后get这个key,这个key可以是物料,也可以是客户,可以是vo的具体某个值;



BigDecimal比较建议用compareTo


a<b, 返回-1

a=b,返回0

a>b, 返回1


---
new UFDouble().setScale(1, 4); //保留小数点后1位,并“四舍五入”


static  静态修饰符
---- 动动手指关注我!或许下次你又能在我这里找到你需要的答案!ZZZZW与你一起学习,一起进步!
原文地址:https://www.cnblogs.com/zzzzw/p/14672941.html