<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>
HashMap<T,T>用法用例
最新推荐文章于 2024-07-04 10:00:00 发布