Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java =================================================================== diff -u -r36717 -r38158 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java (.../ReviewedBasketManagerImpl.java) (revision 36717) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java (.../ReviewedBasketManagerImpl.java) (revision 38158) @@ -29,7 +29,6 @@ import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; -import com.forgon.tools.MathTools; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; @@ -183,11 +182,7 @@ containerManager.save(container); - basket = getBasketByContainerId(container.getId()); - if (basket == null) { - basket = new ReviewedBasket(); - basket.setContainer(container); - } + basket = getBasketByContainer(container); } return basket; } @@ -199,11 +194,7 @@ ReviewedBasket basket = null; container.setStatus(Container.CONTAINER_STATUS_STERILIZELOADING); containerManager.save(container); - basket = getBasketByContainerId(container.getId()); - if (basket == null) { - basket = new ReviewedBasket(); - basket.setContainer(container); - } + basket = getBasketByContainer(container); return basket; } @Override @@ -220,11 +211,7 @@ container.setStatus(statusChange); } containerManager.save(container); - basket = getBasketByContainerId(container.getId()); - if (basket == null) { - basket = new ReviewedBasket(); - basket.setContainer(container); - } + basket = getBasketByContainer(container); } return basket; } @@ -247,23 +234,30 @@ return null; } @Override - public ReviewedBasket getBasketByContainerId(Long container_id) { - if (DatabaseUtil.isPoIdValid(container_id)) { + public synchronized ReviewedBasket getBasketByContainer(Container container) { + ReviewedBasket resultReviewedBasket = null; + if (container != null && DatabaseUtil.isPoIdValid(container.getId())) { String sql = "select po from " + ReviewedBasket.class.getSimpleName() + " po where not exists (select 1 from po.sterilizationRecords ) " + "and po.container.id = " - + container_id; + + container.getId(); List list = objectDao.findByHql(sql); if (list != null && list.size() > 0) { for (Object basketObj : list) { if (basketObj instanceof ReviewedBasket) { - return (ReviewedBasket) basketObj; + resultReviewedBasket = (ReviewedBasket) basketObj; + break; } } } } - return null; + if(resultReviewedBasket == null){ + resultReviewedBasket = new ReviewedBasket(); + resultReviewedBasket.setContainer(container); + objectDao.save(resultReviewedBasket); + } + return resultReviewedBasket; } @Override Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java =================================================================== diff -u -r36717 -r38158 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java (.../ReviewedBasketManager.java) (revision 36717) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java (.../ReviewedBasketManager.java) (revision 38158) @@ -64,11 +64,11 @@ public ReviewedBasket getBasketByBarcode(String barcode); /** - * 通过容器id获得本任务组正处于整理的篮筐. - * @param barcode 容器条码 + * 通过容器获得本任务组正处于整理的篮筐. + * @param barcocontainerde 容器 * @return */ - public ReviewedBasket getBasketByContainerId(Long container_id); + public ReviewedBasket getBasketByContainer(Container container); /** * 根据条形码查找篮筐(sterilizeRecordId为空表示篮筐还未与灭菌记录绑定). * @param barcode