修复盘点数据传 MES 逻辑

- 完善盘点数量和账面数量的处理逻辑
- 增加对 null 值的处理,避免数据传输错误
- 优化盘盈盘亏数量的计算方法,确保数据准确性
This commit is contained in:
张明 2025-06-20 15:16:09 +08:00
parent 27225bf8f4
commit 5a8aa3a808
1 changed files with 27 additions and 17 deletions

View File

@ -24,11 +24,11 @@ import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nc.vo.pubapp.pattern.pub.SqlBuilder; import nc.vo.pubapp.pattern.pub.SqlBuilder;
import nc.vo.vorg.DeptVersionVO; import nc.vo.vorg.DeptVersionVO;
import nccloud.pubift.commen.itf.utils.IHttpPostOtherSys; import nccloud.pubift.commen.itf.utils.IHttpPostOtherSys;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* 盘点审批后传MES * 盘点审批后传MES
*/ */
@ -135,27 +135,37 @@ public class AfterApprovingSynchronizeRuleMES implements IRule<InvCountBillVO> {
detail.put("KW", transferCodeByPk(RackVO.getDefaultTableName(), RackVO.CODE, RackVO.PK_RACK, bvo.getClocationid())); detail.put("KW", transferCodeByPk(RackVO.getDefaultTableName(), RackVO.CODE, RackVO.PK_RACK, bvo.getClocationid()));
// 物料批号 // 物料批号
detail.put("WLPH", getStringValue(bvo.getVbatchcode())); detail.put("WLPH", getStringValue(bvo.getVbatchcode()));
// 盘存数量 -> 实盘主数量 // 盘存数量 -> 实盘主数量
UFDouble pcNum = bvo.getNcountnum(); UFDouble pcNum = bvo.getNcountnum();
// 账面主数量 // 账面主数量
UFDouble zmNum = bvo.getNonhandnum(); 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()); detail.put("PCSL", pcNum.getDouble());
if (zmNum != null) { detail.put("PYSL", 0);
// 盘盈数量 -> 账面主数量 - 实盘主数量 detail.put("PKSL", 0);
detail.put("PYSL", zmNum.getDouble() - pcNum.getDouble()); }
// 盘亏数量 -> 实盘主数量 - 账面主数量 // 盘盈盘亏都是正数
detail.put("PKSL", pcNum.getDouble() - zmNum.getDouble()); // 账面数据比实盘数据大时为盘亏此时盘盈没有值盘亏为账面减去实盘
} else { // 账面数据比实盘数据小时为盘盈此时盘亏没有值盘盈为实盘减去账面
detail.put("PYSL", null); if (zmNum.getDouble() > pcNum.getDouble()) {
detail.put("PKSL", null); detail.put("PCSL", pcNum.getDouble());
} detail.put("PYSL", 0);
} else { detail.put("PKSL", Math.abs(zmNum.getDouble() - pcNum.getDouble()));
detail.put("PCSL", null); }
detail.put("PYSL", null); if (zmNum.getDouble() < pcNum.getDouble()) {
detail.put("PKSL", null); detail.put("PCSL", pcNum.getDouble());
detail.put("PYSL", Math.abs(pcNum.getDouble() - zmNum.getDouble()));
detail.put("PKSL", 0);
} }
// 盈亏单价 // 盈亏单价
detail.put("YCDJ", null); detail.put("YCDJ", null);