Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManagerImpl.java =================================================================== diff -u -r15095 -r15096 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManagerImpl.java (.../GoodsStockManagerImpl.java) (revision 15095) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManagerImpl.java (.../GoodsStockManagerImpl.java) (revision 15096) @@ -75,12 +75,7 @@ String sql = " where 1=1 and " + wareHouseIdPredicate + " and " + goodsDefIdPredicate + " and " + amountPredicate; return objectDao.findBySql_ForUpdate(GoodsStock.class.getSimpleName(), sql); } - /** - * 新增或修改器械包或材料库存数据(同一个仓库的同一个器械包id只存在一条数据,如果是材料则每次入库会产生一条记录),同步方法防止并发出错 - * 修改入库或出库单时,数量应传修改后减修改前的差值。如果修改前后数量不变,则数量应该传0 - * @param goodsStockList - * @return - */ + public synchronized List saveOrUpdateGoodsStock(List goodsStockList, String mode){ if(!MODE_INSTOCK.equals(mode) && !MODE_OUTSTOCK.equals(mode)){ throw new RuntimeException("参数mode="+mode+"值非法"); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManager.java =================================================================== diff -u -r15095 -r15096 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManager.java (.../GoodsStockManager.java) (revision 15095) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/goodsstock/service/GoodsStockManager.java (.../GoodsStockManager.java) (revision 15096) @@ -21,9 +21,11 @@ * 出库,减库存 */ public static String MODE_OUTSTOCK = "出库"; - /** - * 新增或修改材料库存数据(同一个仓库的同一个器械包或材料id只存在一条数据) + * 新增或修改器械包或材料库存数据(同一个仓库的同一个器械包id只存在一条数据,如果是材料则每次入库会产生一条记录),同步方法防止并发出错 + * 修改入库或出库单时,数量应传修改后减修改前的差值。如果修改前后数量不变,则数量应该传0 + * 在器械包库存不足的时候,会重新计算当前已灭菌或者已消毒的包实例的数量,把此数量重新作为包的库存。 + *
所以调用此方法不会再产生库存不足的异常,但是调用此方法之前,包实例的状态及仓库信息应该已经设置好了 * @param goodsStockList * @return */