Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java =================================================================== diff -u -r13300 -r14156 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 13300) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManagerImpl.java (.../ContainerManagerImpl.java) (revision 14156) @@ -100,7 +100,12 @@ public List getContainerByPurpose(String purpose) { return objectDao.findByProperty(Container.class.getSimpleName(), "purpose", purpose); } - + @SuppressWarnings("unchecked") + @Override + public List getContainerList(String purpose,String status){ + String hql = " where po.purpose='" + purpose + "' and po.status='" + status + "'"; + return objectDao.findBySql(Container.class.getSimpleName(), hql); + } /** * 通过当前登录科室和篮筐的用途加载 */ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/dwr/table/BarcodeTableManager.java =================================================================== diff -u -r13962 -r14156 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/dwr/table/BarcodeTableManager.java (.../BarcodeTableManager.java) (revision 13962) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/barcode/dwr/table/BarcodeTableManager.java (.../BarcodeTableManager.java) (revision 14156) @@ -1,6 +1,7 @@ package com.forgon.disinfectsystem.barcode.dwr.table; import java.sql.ResultSet; +import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.List; @@ -23,7 +24,6 @@ import com.forgon.disinfectsystem.entity.packing.PackingRecord; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; -import com.forgon.tools.json.JSONUtil; /** * @author WangYi @@ -167,10 +167,29 @@ jsonStr = "{returnType:'"+result.get("returnType")+"'}"; } } - correct = Arrays.asList(TousseInstance.STATUS_PACKED, - TousseInstance.STATUS_REVIEWED).contains(status); - - + if(tousseInstance.getUnTraceableTousse() && tousseInstance.getTousseFixedBarcode()){ + //不追溯的器械包,固定条码。检查当前固定条码下的已审核的包实例的数量是否大于0,如果大于0可以灭菌装载,否则不可以 + String sql = "select count(0) count from " + TousseInstance.class.getSimpleName() + " ti where ti.tousseDefinition_id in " + + " (select ti.tousseDefinition_id from " + TousseInstance.class.getSimpleName() + " ti join " + + BarcodeDevice.class.getSimpleName() + " b on ti.id=b.id " + + " where ti.tousseFixedBarcode=1 and b.barcode='" + tousseInstance.getBarcode() + "') and ti.status='已审核'"; + ResultSet resultSet = objectDao.executeSql(sql); + try { + if (resultSet.next()) { + int count = resultSet.getInt("count"); + if(count > 0){ + correct = true; + } + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(resultSet); + } + }else{ + correct = Arrays.asList(TousseInstance.STATUS_PACKED, + TousseInstance.STATUS_REVIEWED).contains(status); + } break; case "外部代理灭菌": case "审核": Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java =================================================================== diff -u -r13300 -r14156 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java (.../ContainerManager.java) (revision 13300) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ContainerManager.java (.../ContainerManager.java) (revision 14156) @@ -28,6 +28,13 @@ public Container getContainerByBarcode(String barcode); public List getContainerByPurpose(String purpose); + /** + * 根据作用和状态获取篮筐 + * @param purpose 篮筐的作用 + * @param status 状态 + * @return + */ + public List getContainerList(String purpose,String status); public void updateContainerStatus(String barcode, String status);