修复盘点数据传 MES 逻辑
- 完善盘点数量和账面数量的处理逻辑 - 增加对 null 值的处理,避免数据传输错误 - 优化盘盈盘亏数量的计算方法,确保数据准确性
This commit is contained in:
		
							parent
							
								
									27225bf8f4
								
							
						
					
					
						commit
						5a8aa3a808
					
				|  | @ -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<InvCountBillVO> { | |||
|                 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); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue