Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java =================================================================== diff -u -r32394 -r32397 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 32394) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 32397) @@ -1237,125 +1237,120 @@ public JSONObject bathSaveQualityMonitoringInstance(QualityMonitoringInstance qualityMonitoringInstance, Map map) { boolean success = true; String message = "保存成功!"; - try { - // 抽检器械包和抽检器械,以及和抽检器械包和抽检器械关联的检测项 - String tousseMaterialInstanceInfo = map.get("tousseMaterialInstanceInfo"); - JSONObject tousseMaterialInstanceJSON = JSONObject.fromObject(tousseMaterialInstanceInfo); - if(tousseMaterialInstanceJSON == null){ - throw new RuntimeException("抽检器械和监测项不能都为空"); + // 抽检器械包和抽检器械,以及和抽检器械包和抽检器械关联的检测项 + String tousseMaterialInstanceInfo = map.get("tousseMaterialInstanceInfo"); + JSONObject tousseMaterialInstanceJSON = JSONObject.fromObject(tousseMaterialInstanceInfo); + if(tousseMaterialInstanceJSON == null){ + throw new RuntimeException("抽检器械和监测项不能都为空"); + } + JSONArray tousseInstanceInfos = tousseMaterialInstanceJSON.optJSONArray("tousseInstanceInfos"); + if(tousseInstanceInfos == null || tousseInstanceInfos.size() == 0){ + throw new RuntimeException("抽检器械和监测项不能都为空"); + } + + // 填写了多少个监测元素信息(抽检器械和监测项),就要保存多少条质量监测监测记录 + for(int i=0 ; i tempMap = new HashMap(); + if(DatabaseUtil.isPoIdValid(qualityMonitoringInstance.getId())){ + tempInstance = qualityMonitoringInstance; + } else { + BeanUtils.copyProperties(qualityMonitoringInstance, tempInstance); } - JSONArray tousseInstanceInfos = tousseMaterialInstanceJSON.optJSONArray("tousseInstanceInfos"); - if(tousseInstanceInfos == null || tousseInstanceInfos.size() == 0){ - throw new RuntimeException("抽检器械和监测项不能都为空"); - } - - // 填写了多少个监测元素信息(抽检器械和监测项),就要保存多少条质量监测监测记录 - for(int i=0 ; i tempMap = new HashMap(); - if(DatabaseUtil.isPoIdValid(qualityMonitoringInstance.getId())){ - tempInstance = qualityMonitoringInstance; - } else { - BeanUtils.copyProperties(qualityMonitoringInstance, tempInstance); - } - // tousseBarcode + "@" + tousseInstanceId + "@" + tousseName + "@" + tousseAmount + "@" + tousseRecycle+ "@" + tousseRePacking+ "@" + order + "@" + tousseDefinitionID + "@" + haveMaterial;" - String tousseInstanceInfo = ""; - // material +"@"+ amount + "@" + position + "@" + order + "@" + tousseDefinitionID; - String materialInfo = ""; - - JSONArray tousseBags = tousseInstanceInfos.optJSONObject(i).optJSONArray("tousseBags"); - if(tousseBags != null && tousseBags.size() > 0){ - for(int j=0;j 0){ - for(int k=0;k 0){ + for(int j=0;j 0){ for(int k=0;k 0){ + for(int k=0;k it = configItemOption.keys(); - while(it.hasNext()){ - String key = String.valueOf(it.next()); - Object value = configItemOption.get(key); - if(StringUtils.equals(key.split("_")[0], "configItemOptionSterName")){ - // 质量监测记录的炉号(如果抽检器械扫的第一个包实例id为空时,炉号就取这个值) - tempMap.put("sterilizerName", (String)value); - tempMap.put("configItemOptionSterName", (String)value); - } else if (StringUtils.equals(key.split("_")[0], "configItemOptionSterFre")){ - // 质量监测记录的炉次(如果抽检器械扫的第一个包实例id为空时,炉次就取这个值) - tempMap.put("sterilizerFre", (String)value); - tempMap.put("configItemOptionSterFre", (String)value); - } else if(value instanceof String){ - tempMap.put(key.split("_")[0], (String) value); - } else if(value instanceof Number){ - Number number = (Number)value; - tempMap.put(key.split("_")[0], number.toString()); - } else { - tempMap.put(key.split("_")[0], null); - } + tempMap.putAll(map); + + // 监测项元素 + JSONObject configItemOption = tousseInstanceInfos.optJSONObject(i).optJSONObject("configItemOption"); + if(configItemOption != null){ + Iterator it = configItemOption.keys(); + while(it.hasNext()){ + String key = String.valueOf(it.next()); + Object value = configItemOption.get(key); + if(StringUtils.equals(key.split("_")[0], "configItemOptionSterName")){ + // 质量监测记录的炉号(如果抽检器械扫的第一个包实例id为空时,炉号就取这个值) + tempMap.put("sterilizerName", (String)value); + tempMap.put("configItemOptionSterName", (String)value); + } else if (StringUtils.equals(key.split("_")[0], "configItemOptionSterFre")){ + // 质量监测记录的炉次(如果抽检器械扫的第一个包实例id为空时,炉次就取这个值) + tempMap.put("sterilizerFre", (String)value); + tempMap.put("configItemOptionSterFre", (String)value); + } else if(value instanceof String){ + tempMap.put(key.split("_")[0], (String) value); + } else if(value instanceof Number){ + Number number = (Number)value; + tempMap.put(key.split("_")[0], number.toString()); + } else { + tempMap.put(key.split("_")[0], null); } } - this.save(tempInstance, tempMap); } - } catch (Exception e) { - success = false; - message = e.getMessage().toString(); + this.save(tempInstance, tempMap); } JSONObject result = new JSONObject(); result.put("success", success);