Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/action/QualityMonitoringWithNoLogonAction.java =================================================================== diff -u -r18497 -r18560 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/action/QualityMonitoringWithNoLogonAction.java (.../QualityMonitoringWithNoLogonAction.java) (revision 18497) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/action/QualityMonitoringWithNoLogonAction.java (.../QualityMonitoringWithNoLogonAction.java) (revision 18560) @@ -275,9 +275,20 @@ if(TousseDefinition.PACKAGE_TYPE_COMBO.equals(td.getTousseType())){ obj = JSONUtil.buildJsonObject(false, "暂时不支持录入聚合包."); }else{ + //所选供应室的编码与名称(未登录系统填写质量监测记录扫描包条码时需要传入这两个参数) + String cssdOrgUnitCode = StrutsParamUtils.getPraramValue( + "cssdOrgUnitCode", ""); + String cssdOrgUnitName = StrutsParamUtils.getPraramValue( + "cssdOrgUnitName", ""); + if(StringUtils.isBlank(cssdOrgUnitCode)){ + cssdOrgUnitCode = AcegiHelper.getCurrentOrgUnitCode(); + } + if(StringUtils.isBlank(cssdOrgUnitName)){ + cssdOrgUnitName = AcegiHelper.getCurrentOrgUnitName(); + } //验证当前科室是否有配置处理对应器械包 - tousseDefinitionManager.validateCssdHandleTousses(AcegiHelper.getCurrentOrgUnitCode(), - AcegiHelper.getCurrentOrgUnitName(), td.getTousseType(), + tousseDefinitionManager.validateCssdHandleTousses(cssdOrgUnitCode, + cssdOrgUnitName, td.getTousseType(), tousseInstance.getTousseName()); QualityMonitoringDefinition qualityMonitoringConfig = qualityMonitoringDefinitionManager Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java =================================================================== diff -u -r18462 -r18560 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 18462) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManager.java (.../RecyclingApplicationManager.java) (revision 18560) @@ -11,6 +11,7 @@ import org.apache.commons.collections4.map.MultiValueMap; +import com.forgon.directory.model.OrgUnit; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; @@ -181,20 +182,30 @@ /** * 质量监测不合格器械包回收 * @param tousseInstanceId 器械包id + * @param orgUnit 供应室 */ - public String recycleTousseInstance(String tousseInstanceId); + public String recycleTousseInstance(String tousseInstanceId , OrgUnit orgUnit); /** * 批量回收器械包,生成质量监测回收申请单 * @param tousseInstances 器械包实例的集合 + * @param orgUnit 供应室 * @return */ - public String recycleTousseInstance(Collection tousseInstances); + public String recycleTousseInstance(Collection tousseInstances , OrgUnit orgUnit); /** * 创建质量监测回收申请单 * @return */ public RecyclingApplication createQualityMonitorRecyclingApplication(Collection srcTousseItemVoList); + /** + * 创建质量监测回收申请单 + * @param srcTousseItemVoList 回收项集合 + * @param cssdOrgUnit 供应室 + * @return + */ + public RecyclingApplication createQualityMonitorRecyclingApplication(Collection srcTousseItemVoList , OrgUnit cssdOrgUnit); + /** * 获取指定使用记录对应的回收申请单 * @param useRecordId 使用记录id * @return Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java =================================================================== diff -u -r18541 -r18560 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 18541) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 18560) @@ -19,6 +19,7 @@ import com.forgon.Constants; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; +import com.forgon.directory.model.OrgUnit; import com.forgon.directory.vo.LoginUserData; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; import com.forgon.disinfectsystem.basedata.becleanitem.service.BeCleanItemManager; @@ -576,6 +577,22 @@ String tousseInstanceInfo = requestParams.get("tousseInstanceInfo"); //灭菌记录的状态,灭菌失败或者灭菌中断 String sterilizationStatus = requestParams.get("sterilizationStatus"); + + //不需要登录系统录质量监测时所选的供应室 + OrgUnit cssdOrgUnit = new OrgUnit(); + String cssdOrgUnitCode = requestParams.get("cssdOrgUnitCode"); + String cssdOrgUnitName = requestParams.get("cssdOrgUnitName"); + if(StringUtils.isBlank(cssdOrgUnitCode)){ + cssdOrgUnit.setOrgUnitCoding(AcegiHelper.getCurrentOrgUnitCode()); + }else{ + cssdOrgUnit.setOrgUnitCoding(cssdOrgUnitCode); + } + if(StringUtils.isBlank(cssdOrgUnitName)){ + cssdOrgUnit.setName(AcegiHelper.getCurrentOrgUnitName()); + }else{ + cssdOrgUnit.setName(cssdOrgUnitName); + } + boolean saved = qmInstance != null && DatabaseUtil.isPoIdValid(qmInstance.getId()); //记录原来是否已经保存过 String ret = ""; saveQualityMonitoringInstance_internal(qmInstance,requestParams); @@ -586,7 +603,7 @@ List recycleTousse = new LinkedList(); List repackingTousse = new LinkedList(); spliteRecycleTousseAndRepackingTousse(tousseInstances,recycleTousse,repackingTousse); - recyclingApplicationManager.recycleTousseInstance(recycleTousse); + recyclingApplicationManager.recycleTousseInstance(recycleTousse , cssdOrgUnit); packingManager.createPackingTaskForRepacking(repackingTousse); if(CollectionUtils.isNotEmpty(recycleTousse) && CollectionUtils.isNotEmpty(repackingTousse)){ ret = "已生成申请单,敷料包或者不回收器械包已生成装配任务"; @@ -596,7 +613,7 @@ ret = "已生成装配任务"; } }else{ - ret = recyclingApplicationManager.recycleTousseInstance(tousseInstanceId); + ret = recyclingApplicationManager.recycleTousseInstance(tousseInstanceId , cssdOrgUnit); } }else if(isRepacking && !saved){//已经保存过都不处理 if(isAll){ @@ -619,7 +636,7 @@ // 顺序为1的第一个器械包,已经处理 if("是".equals(qmgProperty[4])){ // 重新回收 - ret = recyclingApplicationManager.recycleTousseInstance(tId); + ret = recyclingApplicationManager.recycleTousseInstance(tId , cssdOrgUnit); }else if("是".equals(qmgProperty[5])){ // 重新装配 packingManager.createPackingTaskForRepacking(tId); Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r18462 -r18560 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 18462) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 18560) @@ -4905,7 +4905,7 @@ return vos; } @Override - public String recycleTousseInstance(Collection tousseInstances){ + public String recycleTousseInstance(Collection tousseInstances , OrgUnit orgUnit){ if(CollectionUtils.isEmpty(tousseInstances)){ return ""; } @@ -4927,14 +4927,15 @@ }).collect(Collectors.toList()); List itemvos = tousseInstanceToTousseItemVo(processTousseInstances); if(CollectionUtils.isNotEmpty(itemvos)){ - createQualityMonitorRecyclingApplication(itemvos); + createQualityMonitorRecyclingApplication(itemvos , orgUnit); } //源器械包废弃 tousseInstanceManager.discardTousseInstance(processTousseInstances, "质量监测重新回收"); return ""; } + @Override - public String recycleTousseInstance(String tousseInstanceId) { + public String recycleTousseInstance(String tousseInstanceId , OrgUnit orgUnit) { if(!DatabaseUtil.isPoIdValid(tousseInstanceId)){ return ""; } @@ -4955,7 +4956,7 @@ List itemvos = tousseInstanceToTousseItemVo(tousseInstance); - createQualityMonitorRecyclingApplication(itemvos); + createQualityMonitorRecyclingApplication(itemvos , orgUnit); //源器械包废弃 tousseInstanceManager.discardTousseInstance(tousseInstance, "质量监测重新回收"); return ""; @@ -5026,6 +5027,20 @@ } @Override public RecyclingApplication createQualityMonitorRecyclingApplication(Collection tousseItemVoList) { + OrgUnit orgUnit = new OrgUnit(); + orgUnit.setOrgUnitCoding(AcegiHelper.getCurrentOrgUnitCode()); + orgUnit.setName(AcegiHelper.getCurrentOrgUnitName()); + return createQualityMonitorRecyclingApplication(tousseItemVoList , orgUnit); + } + + /** + * 创建质量监测回收申请单 + * @param srcTousseItemVoList 回收项集合 + * @param cssdOrgUnit 供应室 + * @return + */ + @Override + public RecyclingApplication createQualityMonitorRecyclingApplication(Collection tousseItemVoList , OrgUnit cssdOrgUnit){ //遍历提交的数据,如果加急数量大于申请数量则提示失败 for (TousseItemVo tousseItemVo : tousseItemVoList) { JSONObject jsonObject = tousseDefinitionManager.handleUrgentAmountAndAmount(tousseItemVo); @@ -5039,15 +5054,15 @@ recyclingApplication.setId(null); recyclingApplication.setSerialNumber(serialNumManager.getSerialNumberStr(SerialNum.TYPE_RECYCLINGAPPLICATION)); recyclingApplication.setApplicationItems(null); - recyclingApplication.setHandleDepart(AcegiHelper.getCurrentOrgUnitName()); - recyclingApplication.setHandleDepartCoding(AcegiHelper.getCurrentOrgUnitCode()); + recyclingApplication.setHandleDepart(cssdOrgUnit.getName()); + recyclingApplication.setHandleDepartCoding(cssdOrgUnit.getOrgUnitCoding()); recyclingApplication.setInvoice(null); recyclingApplication.setRecyclingApplications(null); - recyclingApplication.setDepart(AcegiHelper.getCurrentOrgUnitName()); - recyclingApplication.setDepartCoding(AcegiHelper.getCurrentOrgUnitCode()); + recyclingApplication.setDepart(cssdOrgUnit.getName()); + recyclingApplication.setDepartCoding(cssdOrgUnit.getOrgUnitCoding()); recyclingApplication.setApplicant(AcegiHelper.getLoginUserFullName()); - recyclingApplication.setSettleAccountsDepartCoding(AcegiHelper.getCurrentOrgUnitCode()); - recyclingApplication.setSettleAccountsDepart(AcegiHelper.getCurrentOrgUnitName()); + recyclingApplication.setSettleAccountsDepartCoding(cssdOrgUnit.getOrgUnitCoding()); + recyclingApplication.setSettleAccountsDepart(cssdOrgUnit.getName()); //验证该申请单的处理科室能否服务该单的申请物品 JSONObject resultObj = tousseDefinitionManager Index: ssts-web/src/main/webapp/disinfectsystem/qualitymonitoringWithNoLogon/qualitymonitoringInstanceForm.js =================================================================== diff -u -r18529 -r18560 --- ssts-web/src/main/webapp/disinfectsystem/qualitymonitoringWithNoLogon/qualitymonitoringInstanceForm.js (.../qualitymonitoringInstanceForm.js) (revision 18529) +++ ssts-web/src/main/webapp/disinfectsystem/qualitymonitoringWithNoLogon/qualitymonitoringInstanceForm.js (.../qualitymonitoringInstanceForm.js) (revision 18560) @@ -406,14 +406,20 @@ var info = barcode + "@" + tousseInstanceId + "@" + tousseName + "@" + amount + "@" + isRecycle+ "@" + isRepacking+ "@" + 1 +";"; tousseInstanceInfo = info + tousseInstanceInfo; } + + //所选供应室的编码与名称(未登录系统填写质量监测记录扫描包条码时需要传入这两个参数) + var cssdOrgUnitCode = Ext.getCmp("orgUnitCoding").getValue(); + var cssdOrgUnitName = Ext.getCmp("orgUnit").getValue(); Ext.getCmp('addQualityMonitoringForm').form.submit( { url : WWWROOT + '/disinfectsystem/qualitymonitoringWithNoLogon/qualityMonitoringAction!saveQualityMonitoringInstance.do', params : { materialInfo : materialInfo, sterilizationStatus:sterilizationStatus, qualityMonitoringSterilizationID : qualityMonitoringSterilizationID, qualityMonitoringWRRecordID : qualityMonitoringWRRecordID, - tousseInstanceInfo : tousseInstanceInfo + tousseInstanceInfo : tousseInstanceInfo, + cssdOrgUnitCode:cssdOrgUnitCode, + cssdOrgUnitName:cssdOrgUnitName }, method : 'POST', waitMsg : '正在保存数据,请稍候', @@ -712,9 +718,16 @@ } function getTousseInstanceNameAndResponsiblePerson(tempBarcode, qmDefinitionId, materialDefinitionStore){ if(tempBarcode){ + //所选供应室的编码与名称(未登录系统填写质量监测记录扫描包条码时需要传入这两个参数) + var cssdOrgUnitCode = Ext.getCmp("orgUnitCoding").getValue(); + var cssdOrgUnitName = Ext.getCmp("orgUnit").getValue(); + if(!cssdOrgUnitCode){ + showResult("请先选择供应室!"); + return false; + } Ext.Ajax.request({ url : WWWROOT + '/disinfectsystem/qualitymonitoringWithNoLogon/qualityMonitoringAction!getTousseInstanceNameAndResponsiblePerson.do', - params : {barcode : tempBarcode,qmDefinitionId : qmDefinitionId}, + params : {barcode : tempBarcode,qmDefinitionId : qmDefinitionId,cssdOrgUnitCode : cssdOrgUnitCode,cssdOrgUnitName : cssdOrgUnitName}, success : function(response,options){ var result = Ext.decode(response.responseText); if(result.success){