Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r16717 -r16754 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 16717) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 16754) @@ -65,6 +65,7 @@ import com.forgon.disinfectsystem.tousse.materialdefinition.service.MaterialDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.tousseitem.service.TousseItemManager; +import com.forgon.disinfectsystem.vo.TousseItemVo; import com.forgon.disinfectsystem.washanddisinfectmanager.washanddisinfectrecord.service.WashAndDisinfectRecordManager; import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; @@ -1588,6 +1589,24 @@ basketItemJson, urgentTousseItems,itemMap); } application.setApplicationItems(tousseItems); + //验证器械包处理科室 + List vos = new ArrayList(); + for (TousseItem item : tousseItems) { + if(item.getRecyclingAmount() == null || item.getRecyclingAmount() == 0){ + continue; + } + TousseItemVo vo = new TousseItemVo(); + vo.setTousseType(item.getTousseType()); + vo.setTousseName(item.getTousseName()); + vos.add(vo); + } + //验证该申请单的处理科室能否服务该单的申请物品 + JSONObject resultObj = tousseDefinitionManager + .validateRecyclingApplicationCssdPrivilege((RecyclingApplication)application, vos); + if (!resultObj.optBoolean("success")) { + throw new RuntimeException( + resultObj.optString("message")); + } invoicePlanManager.computeAndSetStatus(application); } }else{ Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js =================================================================== diff -u -r16744 -r16754 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 16744) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 16754) @@ -1686,7 +1686,6 @@ function submitCheck(){ var isThereTousseItems = false; var isAllTousseInTheBasket = true; - var isThereRecycleAmountEmpty = false; if($('#depart').val()== ''){ alertDiv('请先扫描科室条码。'); return false; @@ -1712,11 +1711,6 @@ var recyclingAmount = parseInt($('#recycleAmount'+index).val(),10); var loadedAmount = parseInt($('#loadedAmount'+index).val(),10); - if(recyclingAmount == '' || recyclingAmount == 0){ - isThereRecycleAmountEmpty = true; - return false; - } - if(loadedAmount > 0 && recyclingAmount > loadedAmount){ isAllTousseInTheBasket = false; return false; @@ -1748,11 +1742,6 @@ } }); - if(isThereRecycleAmountEmpty){ - alertDiv('回收数量不能为空。'); - return false; - } - if(!isAllTousseInTheBasket){ alertDiv('部分器械包回收数量大于装载数量,不能保存。'); return false; @@ -2169,8 +2158,42 @@ }); } function selectDepart(departName,departCode){ + var oldValue = document.getElementById('departCode').value; document.getElementById('depart').value = departName; document.getElementById('departCode').value = departCode; + //加载科室申领模板 + if(params_id == '' && params_appId == '' && sstsConfig.isLoadApplyTemplateForAddRecycleRecord == true){ + if(oldValue != departCode){ + $.ajax({ + type:'get', + url:WWWROOT + '/disinfectSystem/recyclingRecordAction!loadDepartmentAppTemplateForRecycle.do', + data:'orgUnitCoding=' + departCode, + dataType:'json', + success:function(dataArray){ + $("#tousseItemTable").empty(); + if(dataArray.length > 0){ + for(var i = (dataArray.length -1) ; i >= 0; i--){ + var toussItem = { + row: i, + tousseItemId: '', + tousseName: dataArray[i].tousseName, + tousseDefinitionID: dataArray[i].tousseDefinitionID, + applicationAmount: 0, + recycleAmount: 0, + loadedAmount: 0, + isCleanedEntirely: dataArray[i].isCleanedEntirely, + tousseType: dataArray[i].tousseType, + isThereIdentificationCard: dataArray[i].isThereIdentificationCard, + isApplyEntireTousse: dataArray[i].isApplyEntireTousse, + urgentAmount : 0 + }; + addToussItem(toussItem); + } + } + } + }); + } + } } var originalTousseItemIds = []; Index: ssts-web/src/main/webapp/disinfectsystem/config/dysyy/config.js =================================================================== diff -u -r16692 -r16754 --- ssts-web/src/main/webapp/disinfectsystem/config/dysyy/config.js (.../config.js) (revision 16692) +++ ssts-web/src/main/webapp/disinfectsystem/config/dysyy/config.js (.../config.js) (revision 16754) @@ -67,5 +67,7 @@ //自定义装配后是否保留灭菌日期 directPackingRetainDisinfectionDate : true, //装配是否显示灭菌炉与炉次 - showSterilizer:false + showSterilizer:false, + //添加回收申请单是否加载申领模板 + isLoadApplyTemplateForAddRecycleRecord : true } \ No newline at end of file Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r16679 -r16754 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 16679) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 16754) @@ -47,8 +47,11 @@ import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.basedatamanager.toussedefinition.service.TousseDefinitionUtils; import com.forgon.disinfectsystem.common.CssdUtils; +import com.forgon.disinfectsystem.departmentapplicationtemplate.service.DepartmentAppTemplateManager; import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.basedatamanager.departmentapplicationtemplate.DepartmentAppTemplate; +import com.forgon.disinfectsystem.entity.basedatamanager.departmentapplicationtemplate.TousseDefinitionTemplateItem; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.reportoption.GoodsOption; @@ -143,6 +146,13 @@ private GoodsOptionManager goodsOptionManager; + private DepartmentAppTemplateManager departmentAppTemplateManager; + + public void setDepartmentAppTemplateManager( + DepartmentAppTemplateManager departmentAppTemplateManager) { + this.departmentAppTemplateManager = departmentAppTemplateManager; + } + public void setGoodsOptionManager(GoodsOptionManager goodsOptionManager) { this.goodsOptionManager = goodsOptionManager; } @@ -235,6 +245,64 @@ return recyclingRecord; } + /** + * 触摸屏回收选择科室后加载该科室模板 + */ + public void loadDepartmentAppTemplateForRecycle(){ + String orgUnitCoding = StrutsParamUtils.getPraramValue("orgUnitCoding", ""); + JSONArray array = new JSONArray(); + if(StringUtils.isNotBlank(orgUnitCoding)){ + List list = departmentAppTemplateManager.getDepartmentAppTemplates(orgUnitCoding); + Map resultMap = new HashMap(); + List resultList = new ArrayList(); + if(list != null){ + for (DepartmentAppTemplate departmentAppTemplate : list) { + if(DepartmentAppTemplate.TEMPLATE_TYPE_DIPOSABLEGOODS.equals(departmentAppTemplate.getTemplateType())){ + continue; + } + List tousseItems = departmentAppTemplate.getTousseDefinitionTemplateItems(); + departmentAppTemplateManager.sortTousseTemplateItems(tousseItems); + if(tousseItems != null){ + for (TousseDefinitionTemplateItem templateItem : tousseItems) { + TousseDefinition tousseDefinition = templateItem.getTousseDefinition(); + if(tousseDefinition != null){ + if(Constants.STR_YES.equals(tousseDefinition.getIsDisable())){ + continue; + } + if(Constants.STR_NO.equals(tousseDefinition.getIsRecycling())){ + continue; + } + String tousseType = tousseDefinition.getTousseType(); + if (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType) + || TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseType)) { + //多个模板器械包查重复 + if(resultMap.get(tousseDefinition.getId()) == null){ + resultMap.put(tousseDefinition.getId(), templateItem); + resultList.add(templateItem); + } + } + } + } + } + } + } + for (TousseDefinitionTemplateItem templateItem : resultList) { + TousseDefinition td = templateItem.getTousseDefinition(); + JSONObject itemJson = new JSONObject(); + itemJson.put("tousseName", td.getName()); + itemJson.put("isCleanedEntirely", td.getIsCleanedEntirely()); + itemJson.put("isApplyEntireTousse", td.getIsApplyEntireTousse()); + itemJson.put("tousseType", td.getTousseType()); + itemJson.put("isThereIdentificationCard", Constants.STR_YES + .equals(td.getIsDisableIDCard()) ? Constants.STR_NO + : Constants.STR_YES); + itemJson.put("tousseDefinitionID", td.getId()); + array.add(itemJson); + } + } + StrutsResponseUtils.output(array); + } + public void getRecyclingApplicationByUsedTousseBarcode(){ String message = "没有找到该条码所对应的待回收申请单";