Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java =================================================================== diff -u -r16085 -r16247 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 16085) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 16247) @@ -214,85 +214,93 @@ String wrRecordId = requestParams.get("qualityMonitoringWRRecordID"); String uploadImgIds = requestParams.get("uploadImgIds"); String formDefinitionId = requestParams.get("formDefinitionId"); - //定期监测不合格添加的质量监测 - setUnionQualityMonitoringForRoutine(qmInstance, requestParams); - - String srInfo = sterilizationRecordManager.getSterilizationRecordInfo(sterilizationID); - - //设置质量监测属性 - String positionMsg = setQualityMonitoringInstanceProperty(qmInstance, - requestParams, tousseInstanceId, sterilizationID, wrRecordId, - uploadImgIds, srInfo); - //监测项是【无】 - if("0".equals(formDefinitionId)){ - objectDao.saveOrUpdate(qmInstance); - return; - } - - if(!DatabaseUtil.isPoIdValid(formDefinitionId)){ - throw new RuntimeException("监测项不能为空!"); - } - FormDefinition formDefinition = formDefinitionManager.getFormDefinitionById(formDefinitionId); - if(formDefinition == null){ - throw new RuntimeException("id="+formDefinitionId+"的质量监测定义已不存在!"); - } - qmInstance.setFormDefinition(formDefinition); - - String[] material = StringUtils.isNotBlank(materialInfo) ? materialInfo.split(";") : null; - if (FormDefinition.FOMRTYPE_QUALITYMONITORING.equals(formDefinition.getFormType())) { - if (StringUtils.isNotBlank(materialInfo)) { - - // 清洗不干净物品入筐 - String containerBarcode = StrutsParamUtils.getPraramValue("containerBarcode", null); - ClassifyBasket basket = null; - if(material != null && material.length > 0){ - basket = getUnWashClassifyBasket(containerBarcode); - } - QualityMonitoringInstance copyQMInstance = null; - for (int i = 0; material != null && i < material.length; i++) { - String[] nameAndAmount = material[i].split("@"); - String name = nameAndAmount[0]; - String amount = nameAndAmount[1]; - String position = ""; - if(nameAndAmount.length > 2){ - position = nameAndAmount[2]; - } - //器械入筐 - if(qmInstance.getId() == null || material.length > 1){ - materialIntoBasket(basket, name, amount); - } + try{ + //定期监测不合格添加的质量监测 + setUnionQualityMonitoringForRoutine(qmInstance, requestParams); + + String srInfo = sterilizationRecordManager.getSterilizationRecordInfo(sterilizationID); + + //设置质量监测属性 + String positionMsg = setQualityMonitoringInstanceProperty(qmInstance, + requestParams, tousseInstanceId, sterilizationID, wrRecordId, + uploadImgIds, srInfo); + //监测项是【无】 + if("0".equals(formDefinitionId)){ + objectDao.saveOrUpdate(qmInstance); + return; + } + + if(!DatabaseUtil.isPoIdValid(formDefinitionId)){ + throw new RuntimeException("监测项不能为空!"); + } + FormDefinition formDefinition = formDefinitionManager.getFormDefinitionById(formDefinitionId); + if(formDefinition == null){ + throw new RuntimeException("id="+formDefinitionId+"的质量监测定义已不存在!"); + } + qmInstance.setFormDefinition(formDefinition); + + String[] material = StringUtils.isNotBlank(materialInfo) ? materialInfo.split(";") : null; + if (FormDefinition.FOMRTYPE_QUALITYMONITORING.equals(formDefinition.getFormType())) { + if (StringUtils.isNotBlank(materialInfo)) { - if(copyQMInstance == null){ - setPositionMsg(qmInstance, positionMsg, position); - qmInstance.setMaterial(name); - qmInstance.setAmount(Integer.parseInt(amount)); - if (basket != null) { - qmInstance.setBasketBarcode(containerBarcode); - qmInstance.setBasketName(basket.getContainerName()); + // 清洗不干净物品入筐 + String containerBarcode = StrutsParamUtils.getPraramValue("containerBarcode", null); + ClassifyBasket basket = null; + if(material != null && material.length > 0){ + basket = getUnWashClassifyBasket(containerBarcode); + } + QualityMonitoringInstance copyQMInstance = null; + for (int i = 0; material != null && i < material.length; i++) { + String[] nameAndAmount = material[i].split("@"); + String name = ""; + String amount = "0"; + if(nameAndAmount.length > 1){ + name = nameAndAmount[0]; + amount = nameAndAmount[1]; } - formInstanceManager.saveFormInstance(qmInstance, requestParams); - copyQMInstance = qmInstance; - continue; + String position = ""; + if(nameAndAmount.length > 2){ + position = nameAndAmount[2]; + } + //器械入筐 + if(qmInstance.getId() == null || material.length > 1){ + materialIntoBasket(basket, name, amount); + } + + if(copyQMInstance == null){ + setPositionMsg(qmInstance, positionMsg, position); + qmInstance.setMaterial(name); + qmInstance.setAmount(Integer.parseInt(amount)); + if (basket != null) { + qmInstance.setBasketBarcode(containerBarcode); + qmInstance.setBasketName(basket.getContainerName()); + } + formInstanceManager.saveFormInstance(qmInstance, requestParams); + copyQMInstance = qmInstance; + continue; + } + QualityMonitoringInstance newMonitoring = new QualityMonitoringInstance(); + copyQualityMonitoringProperty(newMonitoring,copyQMInstance); + newMonitoring.setMaterial(name); + newMonitoring.setAmount(Integer.parseInt(amount)); + setPositionMsg(newMonitoring, positionMsg, position); + saveOrUpdate(newMonitoring); } - QualityMonitoringInstance newMonitoring = new QualityMonitoringInstance(); - copyQualityMonitoringProperty(newMonitoring,copyQMInstance); - newMonitoring.setMaterial(name); - newMonitoring.setAmount(Integer.parseInt(amount)); - setPositionMsg(newMonitoring, positionMsg, position); - saveOrUpdate(newMonitoring); + if (basket != null) { + beCleanItemManager.saveOrUpdate(basket); + } + } else { + // 没有录入材料名字,只有器械包名字 + if(qmInstance.getAmount() == null || qmInstance.getAmount() == 0){ + qmInstance.setAmount(1); + } + formInstanceManager.saveFormInstance(qmInstance, requestParams); } - if (basket != null) { - beCleanItemManager.saveOrUpdate(basket); - } } else { - // 没有录入材料名字,只有器械包名字 - if(qmInstance.getAmount() == null || qmInstance.getAmount() == 0){ - qmInstance.setAmount(1); - } formInstanceManager.saveFormInstance(qmInstance, requestParams); } - } else { - formInstanceManager.saveFormInstance(qmInstance, requestParams); + }catch(Exception ex){ + ex.printStackTrace(); } } Index: ssts-web/src/main/webapp/disinfectsystem/routineMonitoring/routineMonitoringView.js =================================================================== diff -u -r16244 -r16247 --- ssts-web/src/main/webapp/disinfectsystem/routineMonitoring/routineMonitoringView.js (.../routineMonitoringView.js) (revision 16244) +++ ssts-web/src/main/webapp/disinfectsystem/routineMonitoring/routineMonitoringView.js (.../routineMonitoringView.js) (revision 16247) @@ -665,7 +665,7 @@ beforeselect : function(combo, record, index) { if(record.data.name != combo.getValue()){ if(top.Ext.getCmp('barcode2').getValue()){ - getTousseInstanceNameAndResponsiblePerson(top.Ext.getCmp('tempBarcode2').getValue(), combo.getValue(), null); + getTousseInstanceNameAndResponsiblePerson(top.Ext.getCmp('tempBarcode2').getValue(), combo.getValue(), null,true); } } }, @@ -703,7 +703,7 @@ listeners : { specialkey : function(field,e){ if(e.getKey() == 13){ - getTousseInstanceNameAndResponsiblePerson(field.getValue(), top.Ext.getCmp('formDefinitionId2').getValue(), materialDefinitionStore); + getTousseInstanceNameAndResponsiblePerson(field.getValue(), top.Ext.getCmp('formDefinitionId2').getValue(), materialDefinitionStore,true); field.setValue(''); } } @@ -1267,7 +1267,7 @@ listeners : { specialkey : function(field,e){ if(e.getKey() == 13){ - getTousseInstanceNameAndResponsiblePerson(field.getValue(), top.Ext.getCmp('formDefinitionId').getValue(), materialDefinitionStore); + getTousseInstanceNameAndResponsiblePerson(field.getValue(), top.Ext.getCmp('formDefinitionId').getValue(), materialDefinitionStore,false); field.setValue(''); } } @@ -1620,29 +1620,44 @@ top.Ext.getCmp('repacking').enable(); } -function getTousseInstanceNameAndResponsiblePerson(tempBarcode, qmDefinitionId, materialDefinitionStore){ +function getTousseInstanceNameAndResponsiblePerson(tempBarcode, qmDefinitionId, materialDefinitionStore,isQMView){ if(tempBarcode){ Ext.Ajax.request({ url : WWWROOT + '/disinfectSystem/qualityMonitoringDefinitionAction!getTousseInstanceNameAndResponsiblePerson.do', params : {barcode : tempBarcode,qmDefinitionId : qmDefinitionId}, success : function(response,options){ var result = Ext.decode(response.responseText); if(result.success){ - top.Ext.getCmp('tousseName').setValue(result.tousseName); - top.Ext.getCmp('barcode').setValue(tempBarcode); - top.Ext.getCmp('tousseInstanceId').setValue(result.tousseInstanceId); - top.Ext.getCmp('tousseType').setValue(result.tousseType); - top.Ext.getCmp('tousseDefRecycling').setValue(result.isRecycle); -// top.Ext.getCmp('responsiblePerson').setValue(result.responsiblePerson); - if(result.tousseDefinitionId){ - top.Ext.getCmp('tousseDefinitionId').setValue(result.tousseDefinitionId); - if(materialDefinitionStore){ - materialDefinitionStore.reload(); + if(isQMView == true){ + top.Ext.getCmp('tousseName2').setValue(result.tousseName); + top.Ext.getCmp('barcode2').setValue(tempBarcode); + top.Ext.getCmp('tousseInstanceId2').setValue(result.tousseInstanceId); + if(result.tousseDefinitionId){ + top.Ext.getCmp('tousseDefinitionId2').setValue(result.tousseDefinitionId); + if(materialDefinitionStore){ + materialDefinitionStore.reload(); + } + }else if(materialDefinitionStore){ + top.Ext.getCmp('tousseDefinitionId2').setValue(''); } - }else if(materialDefinitionStore){ - top.Ext.getCmp('tousseDefinitionId').setValue(''); + }else{ + top.Ext.getCmp('tousseName').setValue(result.tousseName); + top.Ext.getCmp('barcode').setValue(tempBarcode); + top.Ext.getCmp('tousseInstanceId').setValue(result.tousseInstanceId); + top.Ext.getCmp('tousseType').setValue(result.tousseType); + top.Ext.getCmp('tousseDefRecycling').setValue(result.isRecycle); +// top.Ext.getCmp('responsiblePerson').setValue(result.responsiblePerson); + if(result.tousseDefinitionId){ + top.Ext.getCmp('tousseDefinitionId').setValue(result.tousseDefinitionId); + if(materialDefinitionStore){ + materialDefinitionStore.reload(); + } + }else if(materialDefinitionStore){ + top.Ext.getCmp('tousseDefinitionId').setValue(''); + } + updateControlStatus(); } - updateControlStatus(); + }else{ // showResult("找不到该条码所对应的器械包实例"); showResult(result.message); @@ -1716,14 +1731,14 @@ checkIsUniqueWithBarcodeAndInspectItemAndConvertToJson(thiz,top.Ext.getCmp('id2').getValue(),barcode,top.Ext.getCmp('formDefinitionId2').getValue()); } -function checkIsUniqueWithBarcodeAndInspectItemAndConvertToJson(thiz,id,barcode,inspectItem){ - if(barcode && inspectItem){ +function checkIsUniqueWithBarcodeAndInspectItemAndConvertToJson(thiz,id,barcode,formDefinitionId){ + if(barcode && formDefinitionId){ Ext.Ajax.request({ - url : WWWROOT + '/disinfectSystem/qualityMonitoringAction!checkIsUniqueWithBarcodeAndInspectItem.do', + url : WWWROOT + '/disinfectSystem/qualityMonitoringInstanceAction!checkIsUniqueWithBarcodeAndInspectItem.do', params : { id : id, barcode : barcode, - inspectItem : inspectItem + formDefinitionId : formDefinitionId }, success : function(response,options){ var result = Ext.decode(response.responseText);