Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java =================================================================== diff -u -r21878 -r22871 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 21878) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 22871) @@ -290,4 +290,12 @@ */ public List getExpdateDisposableGoodsBatchStocks(Long disposableGoodsID,String expdateType); + /** + *根据部门编码判断是否需要盘点(防止调拨生成入库单时可能会出现当前部门不需要盘点但目标部门需要盘点的情况) + * @param warehouseID + * @param disposableGoods + * @return + */ + public String isInventoryGoods(Long warehouseID,DisposableGoods disposableGoods); + } Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java =================================================================== diff -u -r22708 -r22871 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 22708) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 22871) @@ -2307,12 +2307,44 @@ disposableGoodsStock.setWarehouseID(warehouseID); disposableGoodsStock.setWarehouseName(warehouseName); disposableGoodsStock.setWbCode(disposableGoods.getWbCode()); - disposableGoodsStock.setInventoryGoods(disposableGoods.getIsInventoryGoods()); + disposableGoodsStock.setInventoryGoods(isInventoryGoods(warehouseID,disposableGoods));//是否需要盘点 objectDao.save(disposableGoodsStock); return disposableGoodsStock; } + + //根据部门编码判断是否需要盘点(防止调拨生成入库单时可能会出现当前部门不需要盘点但目标部门需要盘点的情况) @Override + public String isInventoryGoods(Long warehouseID,DisposableGoods disposableGoods){ + //1.默认是否盘点为'是' + String isInventoryGoods = Constants.STR_YES; + //2.根据仓库id获得部门编码 + WareHouse wareHouse = wareHouseManager.getWareHouseById(warehouseID); + if(wareHouse == null){ + throw new RuntimeException("根据仓库id="+warehouseID+"获取不到仓库对象!"); + } + String orgUnitCoding = wareHouse.getOrgUnitCode(); + //3.判断是否需要盘点 + String inventoryDepartCoding = disposableGoods.getNotInventoryDeptCode(); + String codingStr = formartDepartmentCode(orgUnitCoding,true); + if (StringUtils.isNotBlank(inventoryDepartCoding)) { + int index = inventoryDepartCoding.indexOf(codingStr); + if(index != -1){ + isInventoryGoods = Constants.STR_NO; + } + } + return isInventoryGoods; + } + + private String formartDepartmentCode(String orgUnitCoding,boolean isNull){ + if(isNull){ + return ("," + orgUnitCoding + ","); + }else{ + return orgUnitCoding + ","; + } + } + + @Override public void saveOrUpdate(DisposableGoodsBatch disposableGoodsBatch){ if(disposableGoodsBatch == null){ return;