Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java =================================================================== diff -u -r25993 -r27379 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java (.../InventoryManagerImpl.java) (revision 25993) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java (.../InventoryManagerImpl.java) (revision 27379) @@ -349,6 +349,26 @@ if(amount != null){ item.setAmount(Math.abs(amount)); } + //如果该物品为一次性物品,且配置了单位转换系统(前提是项目有启用配置项,如广医二院),数量需除以比例系数、单价需乘以比例系数 + if(CssdUtils.getSystemSetConfigByNameBool("enableAmountConvertByTransferScaleWhenSync")){ + DisposableGoods disposableGoods = null; + if(StringUtils.isNotBlank(inventorySerialNumber)){ + disposableGoods = diposableGoodsManager.getDisposableGoodsByInventorySerialNumber(inventorySerialNumber); + } + if(disposableGoods == null){ + disposableGoods = diposableGoodsManager.get(item.getName(), item.getSpecification()); + } + if(disposableGoods != null){ + Double unitConvertCoefficient = disposableGoods.getUnitConvertCoefficient(); + if(unitConvertCoefficient != null){ + Integer transferScale = unitConvertCoefficient.intValue(); + if(transferScale != null && transferScale > 1){ + item.setAmount(Math.abs(amount / transferScale)); + item.setUnitPrice(item.getUnitPrice() * transferScale); + } + } + } + } } return items;