Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r36765 -r36775 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 36765) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 36775) @@ -3447,6 +3447,7 @@ Map disinfectItemArrayMap = new HashMap(); List isNotTraceables = new ArrayList();//不追溯的祖先包定义id List tousses = new ArrayList();//拷贝数据,批量进行修改提高效率 对查询出来的tousses2的修改不是批量修改 速度较慢 + Set packageTypes = new HashSet(); for (TousseInstance tousseInstance : notUpdateTousses) { TousseDefinition td = tousseInstance.getTousseDefinition(); if (TousseDefinition.STR_NO.equals(td.getIsTraceable()) && !isNotTraceables.contains(td.getAncestorID())) { @@ -3457,12 +3458,15 @@ } catch (Exception e) { e.printStackTrace(); } + if(StringUtils.isNotBlank(tousseInstance.getPackageType())){ + packageTypes.add(tousseInstance.getPackageType()); + } } Map tdIdToFixBarcodeMap = null; if(isNotTraceables.size() > 0){ tdIdToFixBarcodeMap = tousseDefinitionManager.getTousseDefinitionFixedBarcodeMap(isNotTraceables); } - Map expirationDateInfoMap = new HashMap(); + Map expirationDateInfoMap = getExpirationDateInfoMap(packageTypes); Map increaseStockByTousseNameMap = new HashMap(); for (TousseInstance tousseInstance : tousses) { if(DatabaseUtil.isPoIdValid(tousseInstance.getPackingRecord_id())){ @@ -3916,8 +3920,27 @@ Log.MODEL_REVIEW,taskGroup,NoticeType.REFRESH.getCode()); return json; } - /** + * 获取包装类型对应的ExpirationDateInfo,封装成map返回 + * @param packageTypes + * @return ExpirationDateInfo.getPackageType() value:ExpirationDateInfo + */ + private Map getExpirationDateInfoMap(Set packageTypes){ + Map expirationDateInfoMap = new HashMap(); + if(packageTypes.size() > 0){ + @SuppressWarnings("unchecked") + List expirationDateInfos = objectDao.findByHql("select po from " + + ExpirationDateInfo.class.getSimpleName() + + " po where 1=1 " + SqlUtils.getInStringListSql("po.packageType", packageTypes)); + if(CollectionUtils.isNotEmpty(expirationDateInfos)){ + for (ExpirationDateInfo expirationDateInfo : expirationDateInfos) { + expirationDateInfoMap.put(expirationDateInfo.getPackageType(), expirationDateInfo); + } + } + } + return expirationDateInfoMap; + } + /** * 提取出器械包实例用于发货 * 复制的SterilizationRecordManagerImpl类的方法 * @param tousseInstances