diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterPickmRecalUpdateBuyingreqRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterPickmRecalUpdateBuyingreqRule.java index 6703c27a..f1eba4c3 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterPickmRecalUpdateBuyingreqRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/AfterPickmRecalUpdateBuyingreqRule.java @@ -196,7 +196,7 @@ public class AfterPickmRecalUpdateBuyingreqRule implements IRule { // 生产订单-备料计划-请购单-采购合同-采购订单-到货单 // 查询请购单 String buyingreqsql = "select b.pk_praybill,b.pk_praybill_b,b.nnum,p.creationtime from po_praybill_b b left join po_praybill p on b.pk_praybill=p.pk_praybill where b.csourcebid ='" + map.get("cpickm_bid") + "' and b.dr = 0 ORDER BY \n" + - " p.creationtime DESC"; + " p.creationtime ASC"; List> buyingreq = (List>) dao.executeQuery(buyingreqsql, new MapListProcessor()); if(checkBuyingReq(new UFDouble(map.get("nplanoutnum").toString()),buyingreq)) { continue; @@ -336,20 +336,22 @@ public class AfterPickmRecalUpdateBuyingreqRule implements IRule { for (Map req : buyingreq) { if(nplanoutnum.compareTo(UFDouble.ZERO_DBL)==0){ req.put("nplanoutnum", nplanoutnum); + continue; } if(new UFDouble((BigDecimal) req.get("nnum")).compareTo(nplanoutnum)<=0){ - req.put("nplanoutnum", req.get("nnum")); + req.put("nplanoutnum", new UFDouble((BigDecimal) req.get("nnum"))); nplanoutnum=nplanoutnum.sub(new UFDouble((BigDecimal) req.get("nnum"))); + }else { + req.put("nplanoutnum", UFDouble.ZERO_DBL); } } if(nplanoutnum.compareTo(UFDouble.ZERO_DBL)>0){ for (Map req : buyingreq) { - if(new UFDouble((BigDecimal) req.get("nnum")).compareTo(UFDouble.ZERO_DBL)==0){ - req.put("nplanoutnum", nplanoutnum); - nplanoutnum=nplanoutnum.sub(nplanoutnum); - } - if(nplanoutnum.compareTo(UFDouble.ZERO_DBL)==0){ - req.put("nplanoutnum", nplanoutnum); + if(new UFDouble((BigDecimal) req.get("nplanoutnum")).compareTo(UFDouble.ZERO_DBL)==0){ + if(nplanoutnum.compareTo(UFDouble.ZERO_DBL)>0){ + req.put("nplanoutnum", nplanoutnum); + nplanoutnum=nplanoutnum.sub(nplanoutnum); + } } } }