Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r16664 -r16676 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 16664) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 16676) @@ -3517,7 +3517,6 @@ JSONArray materialsJsonArray = new JSONArray(); // 消毒物品明细 boolean isDisinfectionGoodsPrintExpirationDate = false;// 消毒物品是否打印失效期 - JSONObject tdJson = new JSONObject(); List tousseInstances = new LinkedList(); JSONArray virtualSeqNumArray = new JSONArray();// 待打印的虚拟篮筐序列号集合 @@ -3538,44 +3537,25 @@ } });*/ - Map packingTaskMap = new HashMap(); - for (PackingTask packingTask : packingTasks) { - - TousseDefinition td = packingTask.getTousseDefinition(); - //如果配置是否打印材料时 - if(TousseDefinition.STR_YES.equals(td.getIsPrint()) && TousseDefinition.STR_YES.equals(td.getIsPrintMaterialForPacking())){ -// json.put("tousseDefinition", JSONObject.fromObject(td , cfg));//会报json异常(net.sf.json.JSONException: There is a cycle in the hierarchy) - tdJson = getTousseDefinitionJson(td); - } - // 更新包数量(主要是消毒物品、自定义包、外来包按材料统计) - updateTousseWorkloadStaticsAmount(td); - String tousseName = td.getName(); - if (td.isForeignTousse() || td.isCustomTousse() || td.isDisinfection()) { - tousseName += ("_" + td.getInvoicePlanID()); - } - packingTaskMap.put(tousseName, packingTask); - } - int needPackingAmount = currentPackAmount; - //遍历装配任务map(如果为普通器械包,则可能map的元素数量为1.如为消毒物品等则可能元素为多个) - Set tdNamesSet = packingTaskMap.keySet(); - // 对进行装配的器械包定义排序,解决装配记录中的器械包出现顺序不固定的问题, Terry Kwan,2016-01-28 - ArrayList tdNamesList = new ArrayList(tdNamesSet); - Collections.sort(tdNamesList); - - for(String tdName : tdNamesList){ + for (PackingTask currentPackingTask : packingTasks) { + tousseInstances.clear(); departmentArray.clear(); virtualSeqNumArray.clear(); //如果待装配数量小于等于0时跳出循环 if(needPackingAmount <= 0){ break; } - PackingTask currentPackingTask = packingTaskMap.get(tdName); TousseDefinition td = currentPackingTask.getTousseDefinition(); + // 更新包数量(主要是消毒物品、自定义包、外来包按材料统计) + updateTousseWorkloadStaticsAmount(td); String tousseType = td.getTousseType(); - String tousseName = tdName; + String tousseName = td.getName(); + if (td.isForeignTousse() || td.isCustomTousse() || td.isDisinfection()) { + tousseName += ("_" + td.getInvoicePlanID()); + } Integer printAmount = td.getPrintAmount(); Map disposableGoodsIdToAmount = null; @@ -3850,7 +3830,7 @@ String department = String.valueOf(departmentArray.get(i)); JSONObject obj = CssdUtils.getTousseObjForPrint( - td.getName(), tdJson, subBarcodeArray, subVirtualSeqNumArray, tousseType, + td.getName(), getTousseDefinitionJson(td), subBarcodeArray, subVirtualSeqNumArray, tousseType, packageType,packageTypeAbbreviation, sterilingType, sterilizerName, sterileFrequency, isPrintUserName, @@ -3910,6 +3890,7 @@ } } } + } }else{ batchLoadToVirtaulBasket = false;//器械包批量装入虚拟篮筐是否成功