Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r34775 -r34776 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 34775) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 34776) @@ -4467,8 +4467,6 @@ String splitPackages = JSONUtil.optString(paramsObj, "splitPackage", null); String basketBarcode = JSONUtil.optString(paramsObj, "basketBarcode", null); String scannedBasketBarcodes = JSONUtil.optString(paramsObj, "scannedBasketBarcodes", null); - String idCardDefinitionId = JSONUtil.optString(paramsObj, "idCardDefinitionId", null); - String idCardInstanceID = JSONUtil.optString(paramsObj, "idCardInstanceID", null); String sterilizerName = JSONUtil.optString(paramsObj, "sterilizer", null); String sterileFrequency = JSONUtil.optString(paramsObj, "frequency", null); String confirmContinue = JSONUtil.optString(paramsObj, "confirmContinue", null); @@ -4602,14 +4600,28 @@ throw new RuntimeException("装配任务不能为空! "); } Set recyclingRecordIds = new HashSet(); + + Set idCardBarcodes = new HashSet(); for (PackingTask packingTask : packingTasks) { logger.debug("装配任务packingTask[id=" + packingTask.getId() + "],tousseName=" + packingTask.getTousseDefinition().getName()+ "], [待装配数量=" + packingTask.getUnPackAmount() + "]"); if(PackingTask.TASK_RECYCLINGRECORD.equals(packingTask.getTaskType())){ if(packingTask.getSourceId() != null){ recyclingRecordIds.add(packingTask.getSourceId()); } } + if(StringUtils.isNotBlank(packingTask.getIdCardBarcode())){ + idCardBarcodes.add(packingTask.getIdCardBarcode()); + } } + Map idCardInstanceMap = new HashMap(); + if(CollectionUtils.isNotEmpty(idCardBarcodes)){ + List idCardInstances = idCardInstanceManager.getByHql(SqlUtils.getStringFieldInLargeCollectionsPredicate("barcode", idCardBarcodes)); + if(CollectionUtils.isNotEmpty(idCardInstances)){ + for (IDCardInstance idCardInstance : idCardInstances) { + idCardInstanceMap.put(idCardInstance.getBarcode(), idCardInstance); + } + } + } Map idToRecyclingRecordMap = new HashMap(); if(!recyclingRecordIds.isEmpty()){ String recyclingRecordSql = String.format(" where %s", SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", recyclingRecordIds)); @@ -4756,6 +4768,14 @@ Collections.sort(tdNamesList); Map> packingTaskIdToTousseInstanceIdMap = new HashMap>(); for (PackingTask currentPackingTask : packingTasks) { + IDCardInstance idCardInstance = null; + String idCardDefinitionId = null; + String idCardInstanceID = null; + if(StringUtils.isNotBlank(currentPackingTask.getIdCardBarcode()) && idCardInstanceMap.containsKey(currentPackingTask.getIdCardBarcode())){ + idCardInstance = idCardInstanceMap.get(currentPackingTask.getIdCardBarcode()); + idCardDefinitionId = idCardInstance.getIdCardDefinitionID().toString(); + idCardInstanceID = idCardInstance.getId().toString(); + } tousseInstances.clear(); departmentArray.clear(); virtualSeqNumArray.clear();