HashMap<T,T>用法用例

<span style="font-size:14px;">public HashMap<String, BigDecimal> compareQuantity(String gdk006,String gdk001) throws BusinessException{
		//得到发货gd003上的数量
		String gd003Sql="SELECT T1.* FROM gd003 T1 WHERE T1.GDK001='"+gdk001+"'";
		RowsetXML gd003RowsetXML = QueryHelper.executeQuery("", gd003Sql);
		//发货确认商品列表
		<span style="color:#ff0000;">HashMap<String, BigDecimal> mapGd003 = new HashMap<String, BigDecimal>();//  发货确认商品列表</span>
		while (gd003RowsetXML.next()) {
			Gd003 gd003 = new Gd003();
			gd003RowsetXML.writeToBean(gd003, false);
			<span style="color:#ff0000;">mapGd003.put(gd003.getGdk003(), gd003.getGdn001());</span>
		}
		//得到本次确认的gdk006的商品明细(T2.ACK001,T2.GDN015)
		//String gd008Sql="SELECT T2.GDK003,SUM(T2.Gdn015) GDN015 FROM gd006 T1,GD008 T2 WHERE T1.GDK006=T2.Gdk006 AND T1.GDK006='"+gdk006+"' GROUP BY T2.GDK003";
		String gd008Sql ="SELECT T2.GDK003,SUM(T2.Gdn015) GDN015 FROM GD008 T2 WHERE T2.GDK006='"+gdk006+"' GROUP BY T2.GDK003";
		RowsetXML gd008RowsetXML = QueryHelper.executeQuery("", gd008Sql);
		//发货确认商品列表
		HashMap<String, BigDecimal> mapGd008 = new HashMap<String, BigDecimal>();//  发货确认商品列表
		//HashMap<String, BigDecimal> retMapGd008 = new HashMap<String, BigDecimal>();//  发货确认商品列表返回值
		while (gd008RowsetXML.next()) {
			
			mapGd008.put(gd008RowsetXML.getString("GDK003"),gd008RowsetXML.getBigDecimal("GDN015"));
			//retMapGd008.put(gd008RowsetXML.getString("GDK003"), gd008RowsetXML.getBigDecimal("GDN015"));
		}
		
		//得到gdk003对应的已开票数量
		String ge002Sql1="SELECT T3.GDK003,SUM(T3.Gbn007) GBN007 FROM ge002 T3 WHERE T3.GDK003 IN(SELECT T2.GDK003 FROM  GD003 T2 WHERE T2.GDK001 = '"+gdk001+"') GROUP BY T3.GDK003";
		RowsetXML ge002RowsetXML = QueryHelper.executeQuery("", ge002Sql1);
		//发货确认商品列表对应的开票
		HashMap<String, BigDecimal> mapGe002 = new HashMap<String, BigDecimal>();//  开票商品列表
		while (ge002RowsetXML.next()) {
			mapGe002.put(ge002RowsetXML.getString("GDK003"),ge002RowsetXML.getBigDecimal("GBN007"));
		}
		
		<span style="color:#ff0000;">//比较是否有本次确认数量大于未开票数量  有就返回false
		Iterator<String> iterator = mapGd003.keySet().iterator();
		while (iterator.hasNext()) {// 主键为空的,直接新增;主键不为空,覆盖原来的数据后更新。
			String goodsId = iterator.next();
			boolean flag=mapGe002.get(goodsId)!=null&&mapGd008.get(goodsId)!=null&&mapGd003.get(goodsId).subtract(mapGe002.get(goodsId)).compareTo(mapGd008.get(goodsId))<0;
			if(flag){//开票表和确认表都有该商品且本次确认数量大于未开票数量
				mapGd008.put("flag", BigDecimal.ZERO);
				return mapGd008;
			}
		}</span>
		mapGd008.put("flag", BigDecimal.ONE);
		return mapGd008;</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值