Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java =================================================================== diff -u -r32581 -r35906 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 32581) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 35906) @@ -12,6 +12,8 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; +import org.hibernate.Query; +import org.hibernate.Session; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; @@ -108,7 +110,26 @@ } return null; } - + @Override + public Container getContainerByBarcodeAndPurpose(String barcode, String purpose) { + if(StringUtils.isBlank(barcode)){ + return null; + } + StringBuffer queryString = new StringBuffer(); + queryString.append("select po from "); + queryString.append(Container.class.getSimpleName()); + queryString.append(" po where po.barcode='"); + queryString.append(barcode); + queryString.append("'"); + if(StringUtils.isNotBlank(purpose)){ + queryString.append(" and po.purpose='"); + queryString.append(purpose); + queryString.append("'"); + } + Session session = objectDao.getHibernateSession(); + Query query = session.createQuery(queryString.toString()); + return (Container)query.uniqueResult(); + } /** * 更新篮筐状态 */ Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r35791 -r35906 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 35791) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 35906) @@ -1536,7 +1536,7 @@ if(StringUtils.isNotBlank(basketBarcode)){ //验证篮筐是否清洗 basket = containerManager - .getContainerByBarcode(basketBarcode); + .getContainerByBarcodeAndPurpose(basketBarcode,Container.CONTAINER_PURPOSE_CLEAN_BASKET); if(basket == null){ return null;// 未找到篮筐,异常情况 } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java =================================================================== diff -u -r29145 -r35906 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java (.../ContainerManager.java) (revision 29145) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java (.../ContainerManager.java) (revision 35906) @@ -49,6 +49,13 @@ * @return */ public Container getContainerByBarcode(String barcode); + /** + * 根据条码和类型获取容器对象 + * @param barcode + * @param purpose + * @return + */ + public Container getContainerByBarcodeAndPurpose(String barcode, String purpose); public List getContainerByPurpose(String purpose); /** * 根据作用和状态获取篮筐