Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManagerImpl.java =================================================================== diff -u -r20774 -r20792 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManagerImpl.java (.../ClassifyBasketManagerImpl.java) (revision 20774) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManagerImpl.java (.../ClassifyBasketManagerImpl.java) (revision 20792) @@ -5,9 +5,12 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; +import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedatamanager.container.service.ContainerManager; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; +import com.forgon.disinfectsystem.entity.packing.PackingRecord_ClassifyBasket; import com.forgon.tools.hibernate.BasePoManagerImpl; public class ClassifyBasketManagerImpl extends BasePoManagerImpl @@ -94,4 +97,17 @@ } return (ClassifyBasket)list.get(0); } + @Override + public List loadPendingWashBaskets() { + String coding = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); + String codingSql = StringUtils.isBlank(coding)?"1=1":String.format("ct.departCode='%s'",coding); + String sql = ""; + // 获取未清洗的所有篮筐 + sql = String.format("select po from %s po left join po.washAndDisinfectRecords wr where wr is null and po in (select classifyBasket from %s) " + + " and po.containerName in (select ct.containerName from %s ct where ct.status = '%s' and %s)" + + " and po.id not in (select classifyBasketId from %s where classifyBasketId is not null) order by po.recyclingTime desc", //po.id desc"; + ClassifyBasket.class.getSimpleName(),ClassifiedItem.class.getSimpleName(),Container.class.getSimpleName(), + Container.CONTAINER_STATUS_WASHLOADING,codingSql,PackingRecord_ClassifyBasket.class.getSimpleName()); + return objectDao.findByHql(sql); + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManager.java =================================================================== diff -u -r20774 -r20792 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManager.java (.../ClassifyBasketManager.java) (revision 20774) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManager.java (.../ClassifyBasketManager.java) (revision 20792) @@ -1,5 +1,7 @@ package com.forgon.disinfectsystem.basedata.becleanitem.service; +import java.util.List; + import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; import com.forgon.tools.hibernate.BasePoManager; @@ -23,4 +25,9 @@ public ClassifyBasket getUnWashedAndUnPackingBasket(String barcode); public ClassifyBasket getClassifyBasket(Long recyclingRecordId,String barcode); + /** + * 获取待清洗篮筐。 + * @return + */ + public List loadPendingWashBaskets(); } Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java =================================================================== diff -u -r20791 -r20792 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 20791) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashAndDisinfectRecordAction.java (.../WashAndDisinfectRecordAction.java) (revision 20792) @@ -40,7 +40,6 @@ import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; import com.forgon.disinfectsystem.entity.idcarddefinition.IDCardDefinition; -import com.forgon.disinfectsystem.entity.packing.PackingRecord_ClassifyBasket; import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; import com.forgon.disinfectsystem.idcarddefinition.service.IDCardDefinitionManager; import com.forgon.disinfectsystem.idpredicate.IDOperators; @@ -412,17 +411,7 @@ try { JSONArray jsonArray = new JSONArray(); JSONArray notTimeoutJsonArray = new JSONArray(); //未超时的篮筐,需要放在后面 - - String coding = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); - String codingSql = StringUtils.isBlank(coding)?"1=1":String.format("ct.departCode='%s'",coding); - String sql = ""; - // 获取未清洗的所有篮筐 - sql = String.format("select po from %s po left join po.washAndDisinfectRecords wr where wr is null and po in (select classifyBasket from %s) " - + " and po.containerName in (select ct.containerName from %s ct where ct.status = '%s' and %s)" - + " and po.id not in (select classifyBasketId from %s where classifyBasketId is not null) order by po.recyclingTime desc", //po.id desc"; - ClassifyBasket.class.getSimpleName(),ClassifiedItem.class.getSimpleName(),Container.class.getSimpleName(), - Container.CONTAINER_STATUS_WASHLOADING,codingSql,PackingRecord_ClassifyBasket.class.getSimpleName()); - List baskets = objectDao.findByHql(sql); + List baskets = classifyBasketManager.loadPendingWashBaskets(); List basketBarcodes = new ArrayList(); if(CollectionUtils.isNotEmpty(baskets)){ Set containerBarcodes = baskets.stream().map(basket->basket.getContainerBarcode()).collect(Collectors.toSet()); Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r20786 -r20792 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 20786) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 20792) @@ -1370,12 +1370,7 @@ public int getWashAndDisinfectRecordsCount(WashAndDisinfectRecord wr) { if( wr == null) return 0; - Session session = objectDao.getHibernateSession(); - String queryString = "select r from Rinser r" - + " where r.name = :rinserName"; - Query query = session.createQuery(queryString); - query.setParameter("rinserName", wr.getDisinfectIdentification()); - Rinser rinser = (Rinser)query.uniqueResult(); + Rinser rinser = rinserManager.getRinserByName(wr.getDisinfectIdentification()); return getWashAndDisinfectRecordsCount(rinser.getDeviceInterfaceId(),rinser.getMachineNumber(),wr.getCycleCounter()); } Index: ssts-web/src/main/resources/spring/test/applicationContext-test.xml =================================================================== diff -u -r17882 -r20792 --- ssts-web/src/main/resources/spring/test/applicationContext-test.xml (.../applicationContext-test.xml) (revision 17882) +++ ssts-web/src/main/resources/spring/test/applicationContext-test.xml (.../applicationContext-test.xml) (revision 20792) @@ -18,4 +18,19 @@ + + + + + + + + + PROPAGATION_REQUIRED,timeout_300 + + + + + + \ No newline at end of file