Index: ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManagerImpl.java =================================================================== diff -u -r13689 -r13740 --- ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManagerImpl.java (.../IDCardDefinitionManagerImpl.java) (revision 13689) +++ ssts-idcard/src/main/java/com/forgon/disinfectsystem/idcarddefinition/service/IDCardDefinitionManagerImpl.java (.../IDCardDefinitionManagerImpl.java) (revision 13740) @@ -8,6 +8,9 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; +import net.sf.json.processors.DefaultValueProcessor; +import net.sf.json.util.CycleDetectionStrategy; import org.apache.commons.lang.StringUtils; import org.hibernate.Query; @@ -519,9 +522,22 @@ JsonObject idCardInstanceObj = JSONUtil .fromObjecttoJsonObject(idCardInstance); tousseDefinition.getMaterialInstances(); - String tousseDefinitionJsonStr = JSONUtil.toStringWithFastJson( - tousseDefinition, new String[] {"goodsBatchs", - "ColumnNameAndPoPropertyNameMap", "tousse" }); + tousseDefinition.buildTousseDefinitionMaterials(); + + JsonConfig config = new JsonConfig(); + config.setExcludes(new String[] { "fieldHandler", "handler", + "idCardDefinitions", "hibernateLazyInitializer", "image", + "tousse", "goodsBatchs", "tousseInstances" }); // 解决hibernate延迟加载的问题 + config.registerDefaultValueProcessor(Double.class, + new DefaultValueProcessor() { + @Override + public Object getDefaultValue( + @SuppressWarnings("rawtypes") Class arg0) { + return null; + } + }); + config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); + String tousseDefinitionJsonStr = JSONObject.fromObject(tousseDefinition,config).toString(); JsonObject tousseDefinitionObj = new JsonParser().parse( tousseDefinitionJsonStr).getAsJsonObject(); idCardInstanceObj.add("tousseDefinition", tousseDefinitionObj); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r13705 -r13740 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 13705) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 13740) @@ -961,6 +961,7 @@ config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); Map map = new HashMap(); map.put("success", true); + tousseDefinition.buildTousseDefinitionMaterials(); map.put("data", tousseDefinition); // try { JSONObject jsonObject = JSONObject.fromObject(map, config); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r13668 -r13740 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 13668) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 13740) @@ -59,6 +59,7 @@ import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.json.JSONUtil; import com.forgon.tools.util.SqlUtils; /** @@ -344,6 +345,7 @@ String name = obj.optString("name"); String type = obj.optString("tousseType"); String count = obj.optString("count"); + Integer sequence = JSONUtil.optInteger(obj, "sequence", 0); if ("器械".equals(type)) { MaterialInstance materialInstance = new MaterialInstance(); String materialName = name; @@ -360,6 +362,7 @@ materialInstance.setMaterialName(materialName); materialInstance.setCount(Integer.valueOf(count)); materialInstance.setTousse(td); + materialInstance.setSequence(sequence); materialInstances.add(materialInstance); // 给器械包添加价格如果是消毒物品则加上消毒价格,如果需要灭菌则加上灭菌价格 @@ -394,6 +397,7 @@ .getDisposableGoodsByName(goodsName, specification); diposableGoodsInstance.setDiposableGoods(disposableGoods); diposableGoodsInstance.setAmount(Integer.valueOf(count)); + diposableGoodsInstance.setSequence(sequence); diposableGoodsInstances.add(diposableGoodsInstance); Double referencePrice = 0.0; if (disposableGoods != null && disposableGoods.getReferencePrice() != null) { Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/dwr/table/TousseDefinitionTableManager.java =================================================================== diff -u -r13549 -r13740 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/dwr/table/TousseDefinitionTableManager.java (.../TousseDefinitionTableManager.java) (revision 13549) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/dwr/table/TousseDefinitionTableManager.java (.../TousseDefinitionTableManager.java) (revision 13740) @@ -89,7 +89,7 @@ sql += " and (po.forDisplay = 1 or po.forDisplay is null)"; return gridManager.renderGrid(parameterMap, TousseDefinition.class.getName(), sql, new String[] { - "fieldHandler", "materialInstances", + "fieldHandler", "materialInstances","tousseDefinitionMaterials", "idCardDefinitions", "diposableGoodsItems", "image", "images", "videos", "toussePackingTeachingImage", "tousseInstances" });