Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialinstance/service/MaterialInstanceManagerImpl.java =================================================================== diff -u -r28927 -r29886 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialinstance/service/MaterialInstanceManagerImpl.java (.../MaterialInstanceManagerImpl.java) (revision 28927) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialinstance/service/MaterialInstanceManagerImpl.java (.../MaterialInstanceManagerImpl.java) (revision 29886) @@ -286,4 +286,9 @@ } return washClassifyTypeSet; } + @Override + public List getMaterialInstanceByTousseId(Long tousseId) { + String sql = " where po.tousse.id = " + tousseId; + return objectDao.findBySql(MaterialInstance.class.getSimpleName(), sql); + } } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r29764 -r29886 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 29764) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 29886) @@ -85,6 +85,7 @@ import com.forgon.disinfectsystem.tousse.cssdhandletousses.service.CssdHandleTousseManager; import com.forgon.disinfectsystem.tousse.imagefilemanager.service.ImageFileManager; import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; +import com.forgon.disinfectsystem.tousse.materialinstance.service.MaterialInstanceManager; import com.forgon.disinfectsystem.tousse.tousseDefinitionBelongOrgUnit.service.TousseDefinitionBelongDepartManager; import com.forgon.disinfectsystem.tousse.toussedefinition.dto.ModifyTousseDefinitionDto; import com.forgon.disinfectsystem.tousse.toussedefinition.dto.TousseDefinitionParameterDto; @@ -129,6 +130,8 @@ private MaterialDefinitionManager materialDefinitionManager; + private MaterialInstanceManager materialInstanceManager; + private DiposableGoodsManager diposableGoodsManager; private final Pattern pat = Pattern.compile("[\\u4E00-\\u9FA5]+"); // 匹配中文字符的正则表达式 @@ -159,6 +162,10 @@ private SqlFunctionsAdapter sqlFunctionsAdapter; + public void setMaterialInstanceManager( + MaterialInstanceManager materialInstanceManager) { + this.materialInstanceManager = materialInstanceManager; + } public void setDepartmentStockManager( DepartmentStockManager departmentStockManager) { this.departmentStockManager = departmentStockManager; @@ -2050,8 +2057,10 @@ public JSONArray getMaterialsOfTousseDefinition( TousseDefinition td){ JSONArray array = new JSONArray(); - - List materialList = td.getMaterialInstances(); + List materialList = null; + if(td != null && td.getId() != null){//以防万一 防止懒加载报错 + materialList = materialInstanceManager.getMaterialInstanceByTousseId(td.getId()); + } if (materialList != null) { for (MaterialInstance materialInstance : materialList) { String materialName = null; @@ -2092,6 +2101,10 @@ } List diposableGoodsList = td.getDiposableGoodsItems(); + if(td != null && td.getId() != null){//以防万一 防止懒加载报错 + diposableGoodsList = objectDao.findByHql(String.format(" from %s po where po.tousse.id = %s ", + DiposableGoodsInstance.class.getSimpleName(),td.getId())); + } if (diposableGoodsList != null) { for (DiposableGoodsInstance instance : diposableGoodsList) { String name = instance.getDiposableGoods().getName(); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r29818 -r29886 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 29818) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 29886) @@ -3459,6 +3459,8 @@ }else{ List materialInstances = tousseDefinition.getMaterialInstances(); if(materialInstances != null){ + //避免懒加载报错 + materialInstances = materialInstanceManager.getMaterialInstanceByTousseId(tousseDefinition.getId()); for (MaterialInstance materialInstance : materialInstances) { int amount = materialInstance.getCount(); if(Constants.STR_YES.equals(materialInstance.materialIsImplant())){ @@ -3510,7 +3512,9 @@ private Map findMaterialIsImplantGoods(TousseDefinition td){ Map map = new HashMap(); if(td != null && td.getMaterialInstances() != null){ - for (MaterialInstance ms : td.getMaterialInstances()) { + //避免懒加载报错 + List materialInstances = materialInstanceManager.getMaterialInstanceByTousseId(td.getId()); + for (MaterialInstance ms : materialInstances) { MaterialDefinition materialDefinition = ms.getMaterialDefinition(); if(materialDefinition != null){ map.put(materialDefinition.getId(), ms.materialIsImplant()); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialinstance/service/MaterialInstanceManager.java =================================================================== diff -u -r28927 -r29886 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialinstance/service/MaterialInstanceManager.java (.../MaterialInstanceManager.java) (revision 28927) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialinstance/service/MaterialInstanceManager.java (.../MaterialInstanceManager.java) (revision 29886) @@ -68,4 +68,10 @@ * @return */ public Set getMaterialWashClassifyTypes(List materialInstances, boolean isPriorityExamples); + /** + * 获取包定义的材料 + * @param tousseId + * @return + */ + public List getMaterialInstanceByTousseId(Long tousseId); }