Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/BeCleanItemManager.java =================================================================== diff -u -r13963 -r14125 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/BeCleanItemManager.java (.../BeCleanItemManager.java) (revision 13963) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/BeCleanItemManager.java (.../BeCleanItemManager.java) (revision 14125) @@ -77,10 +77,6 @@ public boolean isIDCardRecycled(String recyclingRecordId,String idCardBarcode); - public void setClassifiedItemPackingAmount(Long sourceId, - String basketBarcode, String tousseName, int packingAmount, - int unPackAmount); public JSONArray getJsonArrayRemovedUnderScoreStringInName(Set items,boolean isLoadDefaultCleanMethod); - public void updateBasketStatus(Map map); } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/BeCleanItemManagerImpl.java =================================================================== diff -u -r14071 -r14125 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/BeCleanItemManagerImpl.java (.../BeCleanItemManagerImpl.java) (revision 14071) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedata/becleanitem/service/BeCleanItemManagerImpl.java (.../BeCleanItemManagerImpl.java) (revision 14125) @@ -34,6 +34,7 @@ import com.forgon.disinfectsystem.entity.becleanitem.BeCleanItem; import com.forgon.disinfectsystem.entity.becleanitem.ClassifiedItem; import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket; +import com.forgon.disinfectsystem.entity.packing.PackingTask; import com.forgon.disinfectsystem.entity.recyclingerror.RecyclingError; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.tools.StrutsParamUtils; @@ -1016,75 +1017,6 @@ } @Override - public void setClassifiedItemPackingAmount(Long sourceId,String basketBarcode, - String tousseName, int packingAmount, int unPackAmount) { - - String sql = String.format("where po.recyclingRecordId = %s and po.classifyBasket.containerBarcode in ('%s') " - + "and (po.name = '%s' or po.tousseNameForMaterial = '%s')", - sourceId, basketBarcode.replaceAll(";", "','"),tousseName,tousseName); - - Map basketMap = new HashMap(); - @SuppressWarnings("unchecked") - List list = objectDao.findBySql(ClassifiedItem.class.getSimpleName(), sql); - if(list != null && list.size() > 0){ - for (ClassifiedItem item : list) { - ClassifyBasket basket = item.getClassifyBasket(); - basketMap.put(basket.getContainerBarcode(), basket); - item.setPackingAmount(item.getPackingAmount() + packingAmount); - } - } - //修改篮筐状态 - updateBasketStatus(basketMap); - } - - public void updateBasketStatus(Map map) { - Set basketBarcodeSet = map.keySet(); - for (String basketBarcode : basketBarcodeSet) { - Container container = containerManager - .getContainerByBarcode(basketBarcode); - - //未清洗篮筐不处理 - if (container != null - && !Container.CONTAINER_STATUS_WASHED.equals(container - .getStatus())) { - continue; - } - boolean partPacking = false; - ClassifyBasket basket = map.get(basketBarcode); - for (ClassifiedItem item : basket.getClassfiedItems()) { - - TousseDefinition td = null; - if (item.getTousseDefinition() != null) { - td = item.getTousseDefinition(); - } else { - td = (TousseDefinition) objectDao.getByProperty( - TousseDefinition.class.getSimpleName(), "id", - item.getTousseDefinitionID()); - } - //回收不装配物品不处理 - if (td != null - && TousseDefinition.STR_NO.equals(td.getIsPacking())) { - continue; - } - if(ClassifiedItem.TYPE_MATERIAL.equals(item.getItemType())){ - if (item.getTousseAmountForMaterial() > item.getPackingAmount()) { - partPacking = true; - } - }else{ - if (item.getAmount() > item.getPackingAmount()) { - partPacking = true; - } - } - } - if (!partPacking) { - containerManager.updateContainerStatus( - basket.getContainerBarcode(), - Container.CONTAINER_STATUS_PACKED); - } - } - } - - @Override public boolean isIDCardRecycled(String recyclingRecordId,String idCardBarcode) { if(StringUtils.isNotBlank(recyclingRecordId) && StringUtils.isNotBlank(idCardBarcode)){ String sql = String.format("where po.recyclingRecordId = %s and po.idCardBarcode = '%s'", recyclingRecordId,idCardBarcode); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r14074 -r14125 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 14074) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 14125) @@ -3186,11 +3186,10 @@ private void updatePackingTask(List packingTaskList, Integer currentPackAmount , String tousseName,String basketBarcode){ int leftAmount = currentPackAmount; for(PackingTask packingTask : packingTaskList){ - beCleanItemManager.setClassifiedItemPackingAmount( - packingTask.getSourceId(),basketBarcode, tousseName, currentPackAmount,packingTask.getUnPackAmount()); if(leftAmount >= packingTask.getUnPackAmount()){ leftAmount -= packingTask.getUnPackAmount(); delete(packingTask); + updateContainerStatus(packingTask); }else{ // 修改待装配数量 packingTask.setUnPackAmount(packingTask.getUnPackAmount() - leftAmount); @@ -3199,6 +3198,26 @@ } } } + + private void updateContainerStatus(PackingTask task){ + if(task != null && StringUtils.isNotBlank(task.getBasketBarcode())){ + String [] basketArray = task.getBasketBarcode().split(";"); + if(basketArray != null && basketArray.length > 0 ){ + for (String basketBarcode : basketArray) { + String sql = "where po.basketBarcode like '%" + basketBarcode + "%' and po.unPackAmount > 0"; + int count = objectDao.countObjectBySql(PackingTask.class.getSimpleName(), sql); + if(count == 0){ + Container container = containerManager.getContainerByBarcode(basketBarcode); + if(container != null && Container.CONTAINER_STATUS_WASHED.equals(container.getStatus())){ + container.setStatus(Container.CONTAINER_STATUS_PACKED); + containerManager.saveOrUpdate(container); + } + } + } + } + + } + } private TousseInstance createTousseInstance(String operator, String operatorCode, String reviewer, String reviewerCode,