diff --git a/ic/src/private/nc/bs/ic/m4r/approve/rule/AfterApprovingSynchronizeRuleMES.java b/ic/src/private/nc/bs/ic/m4r/approve/rule/AfterApprovingSynchronizeRuleMES.java index b1b6441..e3a70c2 100644 --- a/ic/src/private/nc/bs/ic/m4r/approve/rule/AfterApprovingSynchronizeRuleMES.java +++ b/ic/src/private/nc/bs/ic/m4r/approve/rule/AfterApprovingSynchronizeRuleMES.java @@ -24,11 +24,11 @@ import nc.vo.pubapp.pattern.exception.ExceptionUtils; import nc.vo.pubapp.pattern.pub.SqlBuilder; import nc.vo.vorg.DeptVersionVO; import nccloud.pubift.commen.itf.utils.IHttpPostOtherSys; + import java.util.ArrayList; import java.util.List; - /** * 盘点(审批后传MES) */ @@ -135,27 +135,37 @@ public class AfterApprovingSynchronizeRuleMES implements IRule { detail.put("KW", transferCodeByPk(RackVO.getDefaultTableName(), RackVO.CODE, RackVO.PK_RACK, bvo.getClocationid())); // 物料批号 detail.put("WLPH", getStringValue(bvo.getVbatchcode())); - // 盘存数量 -> 实盘主数量 UFDouble pcNum = bvo.getNcountnum(); // 账面主数量 UFDouble zmNum = bvo.getNonhandnum(); - if (pcNum != null) { - // 盘存数量 -> 实盘主数量 + // 如果盘存数量为null赋值为0 + if (pcNum == null) { + detail.put("PCSL", 0); + pcNum = new UFDouble(0); + } + // 如果账面数量为null赋值为0 + if (zmNum == null) { + zmNum = new UFDouble(0); + } + // 如果二者相等 两个 想减为0 都传0 + if (pcNum.getDouble() == zmNum.getDouble()) { detail.put("PCSL", pcNum.getDouble()); - if (zmNum != null) { - // 盘盈数量 -> 账面主数量 - 实盘主数量 - detail.put("PYSL", zmNum.getDouble() - pcNum.getDouble()); - // 盘亏数量 -> 实盘主数量 - 账面主数量 - detail.put("PKSL", pcNum.getDouble() - zmNum.getDouble()); - } else { - detail.put("PYSL", null); - detail.put("PKSL", null); - } - } else { - detail.put("PCSL", null); - detail.put("PYSL", null); - detail.put("PKSL", null); + detail.put("PYSL", 0); + detail.put("PKSL", 0); + } + // 盘盈盘亏都是正数 + // 账面数据比实盘数据大时,为盘亏,此时盘盈没有值,盘亏为账面减去实盘; + // 账面数据比实盘数据小时,为盘盈,此时盘亏没有值,盘盈为实盘减去账面 + if (zmNum.getDouble() > pcNum.getDouble()) { + detail.put("PCSL", pcNum.getDouble()); + detail.put("PYSL", 0); + detail.put("PKSL", Math.abs(zmNum.getDouble() - pcNum.getDouble())); + } + if (zmNum.getDouble() < pcNum.getDouble()) { + detail.put("PCSL", pcNum.getDouble()); + detail.put("PYSL", Math.abs(pcNum.getDouble() - zmNum.getDouble())); + detail.put("PKSL", 0); } // 盈亏单价 detail.put("YCDJ", null);