Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManager.java =================================================================== diff -u -r28551 -r29134 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManager.java (.../ClassifyBasketManager.java) (revision 28551) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManager.java (.../ClassifyBasketManager.java) (revision 29134) @@ -82,4 +82,8 @@ * @return */ public List getCountOfClassifyBasketWashRecordByClassifyBasketId(Long classifyBasketId); + /** + * 获取里面的物品未被全部终止的清洗装载状态的篮筐 + */ + public List getWashLoadingStatusBaskets(); } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r28972 -r29134 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 28972) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 29134) @@ -1517,8 +1517,13 @@ return null; } - /** + * 获取清洗装载状态,且里面的物品未被全部终止的篮筐信息 + */ + public void getWashLoadingStatusBaskets(){ + StrutsResponseUtils.output(recyclingRecordManager.getWashLoadingStatusBasketsInfo()); + } + /** * 根据器械包名称找出该器械包定义里的再生材料和已经回收的材料数量 * * @return Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r29072 -r29134 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 29072) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 29134) @@ -4131,8 +4131,6 @@ resultObj.optString("message")); } invoicePlanManager.computeAndSetStatus(application); - }else{ - } } } @@ -7161,5 +7159,47 @@ jsonParam = jsonObject.toString(); return jsonParam; } - + + + @Override + public String getWashLoadingStatusBasketsInfo() { + //回收时自动加载清洗装载状态的篮筐 + boolean loadWashLoadingStatusBasketsWhenRecycling = CssdUtils.getSystemSetConfigByNameBool("loadWashLoadingStatusBasketsWhenRecycling", false); + if(!loadWashLoadingStatusBasketsWhenRecycling){ + return "[]"; + } + List classifyBaskets = classifyBasketManager.getWashLoadingStatusBaskets(); + if(CollectionUtils.isEmpty(classifyBaskets)){ + return "[]"; + } + JSONArray classifyBasketsJson = new JSONArray(); + for (ClassifyBasket classifyBasket : classifyBaskets) { + JSONObject classifyBasketJson = new JSONObject(); + Double percentage = 0.00;//容积,1为满 + JSONArray classifiedItemsJson = new JSONArray(); + if(CollectionUtils.isNotEmpty(classifyBasket.getClassfiedItems())){ + for (ClassifiedItem item : classifyBasket.getClassfiedItems()) { + JSONObject classifiedItemJson = new JSONObject(); + Integer intoBasketMaxAmount = item.intoBasketMaxAmount(); + classifiedItemJson.put("name", item.getName()); + //获取未清洗就终止的数量,此数量不计算在内 + Integer numOfUnwashedStops = item.getNumOfUnwashedStops()==null?0:item.getNumOfUnwashedStops(); + Integer amount = item.getAmount() - numOfUnwashedStops; + classifiedItemJson.put("amount", amount); + classifiedItemsJson.add(classifiedItemJson); + if(intoBasketMaxAmount != null && intoBasketMaxAmount > 0){ + percentage = MathTools.add(percentage, MathTools.divide(amount, + intoBasketMaxAmount, 4)).doubleValue(); + } + } + } + classifyBasketJson.put("id", classifyBasket.getId()); + classifyBasketJson.put("classifiedItems", classifiedItemsJson); + classifyBasketJson.put("percentage", percentage); + classifyBasketJson.put("containerName", classifyBasket.getContainerName()); + classifyBasketJson.put("containerBarcode", classifyBasket.getContainerBarcode()); + classifyBasketsJson.add(classifyBasketJson); + } + return classifyBasketsJson.toString(); + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManagerImpl.java =================================================================== diff -u -r28551 -r29134 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManagerImpl.java (.../ClassifyBasketManagerImpl.java) (revision 28551) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/ClassifyBasketManagerImpl.java (.../ClassifyBasketManagerImpl.java) (revision 29134) @@ -22,6 +22,7 @@ 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.disinfectsystem.entity.recyclingrecord.RecyclingRecord; import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; import com.forgon.tools.MathTools; import com.forgon.tools.date.DateTools; @@ -408,4 +409,23 @@ } return list.get(0); } + @Override + public List getWashLoadingStatusBaskets() { + String sql = String.format("select distinct po from %s po left join po.classfiedItems ci " + + "where " + + " po.id not in (select cb.id from WashAndDisinfectRecord wr join wr.classifyBaskets cb) " + + "and po.containerBarcode in ( select c.barcode from Container c where c.status='%s' ) " + + "and po.id not in (" + + "select cb.id from %s rr " + + "join rr.classifyBaskets cb " + + "join rr.recyclingApplication ip " + + "join ip.applicationItems ti " + + "where ti.isTerminated=1 and ti.tousseDefinitionId=ci.tousseDefinitionID and ci.recyclingRecordId=rr.id) " + + "order by po.recyclingTime desc" + , ClassifyBasket.class.getSimpleName(), + Container.CONTAINER_STATUS_WASHLOADING, + RecyclingRecord.class.getSimpleName()); + logger.debug("获取物品未被全部终止的清洗装载状态的篮筐:"+sql); + return objectDao.findByHql(sql); + } } Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManager.java =================================================================== diff -u -r28692 -r29134 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManager.java (.../RecyclingRecordManager.java) (revision 28692) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManager.java (.../RecyclingRecordManager.java) (revision 29134) @@ -281,5 +281,10 @@ * @param recyclingContext */ public void saveAndSplitRecyclingRecord(RecyclingContext recyclingContext); + /** + * 获取清洗装载状态,且里面的物品未被全部终止的篮筐 + * @return + */ + public String getWashLoadingStatusBasketsInfo(); }