Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/dwr/table/RecyclingApplicationTableManager.java =================================================================== diff -u -r19486 -r19627 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/dwr/table/RecyclingApplicationTableManager.java (.../RecyclingApplicationTableManager.java) (revision 19486) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/dwr/table/RecyclingApplicationTableManager.java (.../RecyclingApplicationTableManager.java) (revision 19627) @@ -332,6 +332,32 @@ config).toString(); return json; } + + /** + * 根据申请单申请科室的科室编码(此方法为了完成DGZYY-120 科室申请增加提示和限制的问题(目前只限制“通用申请单”)) + * @param departmentCode 申请科室的科室编码 + * @return + */ + public String getRecyclingApplicationByDepartmentCode(String departmentCode) { + String json = ""; + JsonConfig config = new JsonConfig(); + PropertyFilter propertyFilter = new JsonPropertyFilter(new String[] { + "applicationItems", "invoice", + "recyclingRecord", "recyclingApplications", "parent", + "recyclingRecords" }); + config.setJsonPropertyFilter(propertyFilter); + //设置hibernate延时加载器句柄,以防申请单的submitTime值为空时调用JSONObject.fromObject报错 + config.setExcludes(new String[]{"handler","hibernateLazyInitializer"}); + + String hqlWhere = String.format("where type='%s' and departCoding='%s' and po.useRecord is null " + + "and ((recyclingStatus='%s') or (recyclingStatus is null and deliverStatus<>'%s' and deliverStatus<>'%s' and deliverStatus<>'%s')) " + + "order by po.id desc", + InvoicePlan.TYPE_COMBO_FORM, departmentCode, InvoicePlan.RECYCLINGSTATUS_AWAITRECYCLE, + InvoicePlan.STATUS_END, InvoicePlan.DELIVERSTATUS_PARTDELIVERED, InvoicePlan.DELIVERSTATUS_DELIVERED); + RecyclingApplication recyclingApplication = recyclingApplicationManager.findRecyclingApplicationBySql(hqlWhere); + json = JSONObject.fromObject(recyclingApplication, config).toString(); + return json; + } public boolean isSaveSterileGoods(String id){ boolean isrecycle = isHasRecyclingRecordByRecyclingAppId(id); boolean isInvoice = isHasInvoiceByRecyclingAppId(id); Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp =================================================================== diff -u -r19526 -r19627 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp (.../goodsApplicationView.jsp) (revision 19526) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.jsp (.../goodsApplicationView.jsp) (revision 19627) @@ -41,6 +41,7 @@ } request.setAttribute("toussePriceFluctuation",toussePriceFluctuation); request.setAttribute("userName",userData.getUserFullName()); + request.setAttribute("isFirstSupplyRoomUser",supplyRoomConfigManager.isFirstSupplyRoomOrgUnit(currentOrgUnitCode)); request.setAttribute("isSupplyRoomUser",supplyRoomConfigManager.isSupplyRoomUser2(userData)); boolean isBeApplication = userData.isBeApplication(); request.setAttribute("isBeApplication",isBeApplication); @@ -207,8 +208,11 @@ var unPrint = '<%=InvoicePlan.PRINT_STATUS_UNPRINT%>'; +var supplyRoomCoding = '<%=request.getAttribute("supplyRoomCoding")%>'; //一级供应室的科室编码 var isCssdUser = '<%=request.getAttribute("isCssdUser")%>'; -var isSupplyRoomUser = ${isSupplyRoomUser}; +var isFirstSupplyRoomUser = ${isFirstSupplyRoomUser}; //判断登录用户的当前科室科室编码,是否为一级供应室 +var isSupplyRoomUser = ${isSupplyRoomUser}; //判断登录用户的当前科室科室编码,是否为供应室的科室编码(包括一级供应室和二级供应室) + //因为申请单有version2版本,全部申请单和科室申领引用同一个js,因此要加入这个listType来区分面前页面是科室申领还是全部申请单 var listType = '<%=request.getAttribute("listType")%>'; var sortFieldStr = 'committedStatus ASC, po.orderByFiled ASC, po.applicationTime'; @@ -364,7 +368,6 @@ var today = '<%=request.getAttribute("today")%>'; var toussePriceFluctuation = '<%=request.getAttribute("toussePriceFluctuation")%>'; -var supplyRoomCoding = '<%=request.getAttribute("supplyRoomCoding")%>'; var actionType_confirmReturn = '<%=ForeignTousseApplication.ACTION_TYPE_CONFIRM_RETURN%>'; Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js =================================================================== diff -u -r19615 -r19627 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js (.../goodsApplicationForm.js) (revision 19615) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js (.../goodsApplicationForm.js) (revision 19627) @@ -11,8 +11,6 @@ * @param handleDepartCoding 处理科室的科室编码(修改才有值) */ function comboApplication(id,editable,hiddenCommitButton,hiddenSaveButton,hiddenReturnEditButton,type,originalCommittedStatus,handleDepartCoding) { - //登录用是否供应室用户 - var isSupplyRoomUser = validateIsSupplyRoomUser(); //登录用户的当前科室编码 var departCoding = $Id('departCoding').value; @@ -202,7 +200,7 @@ if (btn != 'yes'){ return; } - if(!isSupplyRoomUser){ + if(!isFirstSupplyRoomUser){ top.Ext4.ComponentQuery.query("#recyclingApplicationForm #depart")[0].enable(); } submitRecyclingApplication('false'); @@ -228,7 +226,7 @@ msg : '您有'+tousseLeaseAmount+'张申请日期为'+borrowApplicationInfo+'的借物单含有该申请单中的同类物品未归还,是否申请归还?', buttons: top.Ext4.Msg.YESNOCANCEL, fn : function(btn){ - if(!isSupplyRoomUser){ + if(!isFirstSupplyRoomUser){ top.Ext4.ComponentQuery.query("#recyclingApplicationForm #depart")[0].enable(); } switch(btn){ @@ -295,7 +293,7 @@ } top.Ext4.MessageBox.confirm("请确认", "是否暂时保存" + entityName + "单信息?",function(btn) { if (btn == 'yes') { - if(!isSupplyRoomUser){ + if(!isFirstSupplyRoomUser){ top.Ext4.ComponentQuery.query("#recyclingApplicationForm #depart")[0].enable(); } if (!form.getForm().isValid()) { @@ -834,14 +832,14 @@ } },{ text : '选择模板:', - hidden:((type == comboApplicationForm || type == tousseApplicationForm ) ? true : (!isSupplyRoomUser)) + hidden:((type == comboApplicationForm || type == tousseApplicationForm ) ? true : (!isFirstSupplyRoomUser)) },{ xtype : 'combo', valueField : 'id', displayField : 'title', store : departmentTemplateTitleStore, forceSelection : true, - hidden:((type == comboApplicationForm || type == tousseApplicationForm ) ? true:(!isSupplyRoomUser)), + hidden:((type == comboApplicationForm || type == tousseApplicationForm ) ? true:(!isFirstSupplyRoomUser)), triggerAction : 'all', name : "departmentTemplate", id : "departmentTemplate", @@ -1221,7 +1219,7 @@ loadMask = new Ext4.LoadMask({msg:'数据处理中,请稍候......',target:applicationWindow}); } - if(!isSupplyRoomUser){ + if(!isFirstSupplyRoomUser){ var departComp = top.Ext4.ComponentQuery.query("#recyclingApplicationForm #depart")[0]; departComp.forceSelection = false; departComp.setRawValue($Id('depart').value); @@ -1268,7 +1266,7 @@ //申请科室是否为结算科室 RecyclingApplicationTableManager.isSettleAccountsDepart($Id('departCoding').value,function(yes){ if(yes){ - if(!isSupplyRoomUser){ + if(!isFirstSupplyRoomUser){ var comp = top.Ext4.getCmp('settleAccountsDepart'); comp.forceSelection = false; comp.setValue($Id('depart').value); Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js =================================================================== diff -u -r19615 -r19627 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 19615) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 19627) @@ -51,10 +51,27 @@ var updateDetailObj = new UpdateDetailObj(); /** * 打开对应的表单 - * @param form 对应的表单 + * @param form 申请表单类型 * @param tousseType 器械包类型 */ -function openApplication(tousseType,form) { +function openApplication(tousseType, form) { + //限制同一个科室(供应室除外)只能申请一张申请单 + if (sstsConfig.limitApply && form == comboApplicationForm && !isSupplyRoomUser) { + var existRecyclingApplication = null; + DWREngine.setAsync(false); + RecyclingApplicationTableManager.getRecyclingApplicationByDepartmentCode($Id('departCoding').value, function(result) { + if (result && result != 'null') { + existRecyclingApplication = result; + } + }); + DWREngine.setAsync(true); + if (existRecyclingApplication) { + showResult('本科室已经申请过物品,请确认申请的物品!'); + setRecyclingApplicationForm(existRecyclingApplication); + return; + } + } + //新打开申请对话框时,相关参数调整及清除 handleDepartStore.proxy.extraParams.tousseType = tousseType; handleDepartStore.proxy.extraParams.applyDepartCode = ""; @@ -1665,7 +1682,7 @@ }; /** - * 根据返回的结果重置表单数据. + * 根据返回的结果重置表单数据,并且打开对应的申请表单. * @param tempRecyclingApplication 申请单对象 */ function setRecyclingApplicationForm(tempRecyclingApplication){ @@ -2079,15 +2096,15 @@ /** * 创建操作的工具栏. - * @param isSupplyRoomUser 是否供应室用户 + * @param isFirstSupplyRoomUser 是否为一级供应室用户 * @returns {[*,*,*,*,*]} */ -function createOperationTbar(isSupplyRoomUser) { +function createOperationTbar(isFirstSupplyRoomUser) { return [ { text: '借物', iconCls: 'btn_ext_add_tousse', - hidden: SSTS_borrow_Create || (sstsConfig.recyclingApplicationVersion == 2 && !isSupplyRoomUser), + hidden: SSTS_borrow_Create || (sstsConfig.recyclingApplicationVersion == 2 && !isFirstSupplyRoomUser), handler: function () { addAndEditTousseLease(''); } @@ -2114,7 +2131,7 @@ hidden: SSTS_PrintApplicationGoods, menu: new Ext.menu.Menu({ items: [ - {text: '批量打印' + invoicePlanPrintButtonName, hidden: !isSupplyRoomUser, handler: bathPrint}, + {text: '批量打印' + invoicePlanPrintButtonName, hidden: !isFirstSupplyRoomUser, handler: bathPrint}, { text: '打印一次性物品', handler: function () { var ids = getSelectedIds(); @@ -2234,6 +2251,7 @@ } ]; } + /** * 创建按科室分组下拉选项 * @returns @@ -2435,9 +2453,6 @@ }); top.Ext4.tip.QuickTipManager.init(); - //是否供应室用户 - var isSupplyRoomUser = validateIsSupplyRoomUser(); - var columns = [ {header : "流水号",width : 90 * fontSizeScale,dataIndex : 'serialNumber', renderer : renderModifyFun}, {header : "申请科室",width : 120 * fontSizeScale,dataIndex : 'depart',hidden:sstsConfig.hideApplyDepartColumn || isCssdUser != 'true'}, @@ -2484,7 +2499,7 @@ inoviceButton = ""; } } - if(sstsConfig.enableReturnGoodsByInvoicePlan && isSupplyRoomUser && (invoicePlanType != customTousseApplicationForm) && invoicePlanType != foreignTousseApplicationForm && invoicePlanType != foreignPorxyApplicationForm){ + if(sstsConfig.enableReturnGoodsByInvoicePlan && isFirstSupplyRoomUser && (invoicePlanType != customTousseApplicationForm) && invoicePlanType != foreignTousseApplicationForm && invoicePlanType != foreignPorxyApplicationForm){ if(deliverStatus == '已发货' || deliverStatus == '部分发货' || invoiceStatus == '部分签收' || invoiceStatus == '已签收'){ returnGoodsButton += ""; returnGoodsButton += ""; @@ -2634,9 +2649,6 @@ } }; - - var isSupplyRoomUser = validateIsSupplyRoomUser(); - //搜索的tbar var searchTbar = createSearchTbar({ quickScreenCombo : quickScreenCombo, @@ -2646,7 +2658,7 @@ }); //操作的tbar - var operationTbar = createOperationTbar(isSupplyRoomUser); + var operationTbar = createOperationTbar(isFirstSupplyRoomUser); var tbar = [{ text : '申请物品', @@ -2663,7 +2675,7 @@ id : 'applyTousse', iconCls : 'btn_ext_add_tousse', tooltip : sstsConfig.packageName || '申请器械包', - hidden : SSTS_PACKAGE_Create || sstsConfig.applicationFormType != 2 || (sstsConfig.recyclingApplicationVersion == 2 && !isSupplyRoomUser), + hidden : SSTS_PACKAGE_Create || sstsConfig.applicationFormType != 2 || (sstsConfig.recyclingApplicationVersion == 2 && !isFirstSupplyRoomUser), handler : function() { formPrinted = 1; openApplication(invoicePlanForTousseType_Tousse, tousseApplicationForm); @@ -2673,7 +2685,7 @@ id : 'applyDisposableGood', iconCls : 'btn_ext_add_tousse', tooltip : '申请一次性物品', - hidden : SSTS_DisposableGoods_Create || sstsConfig.applicationFormType != 2 || (sstsConfig.recyclingApplicationVersion == 2 && !isSupplyRoomUser), + hidden : SSTS_DisposableGoods_Create || sstsConfig.applicationFormType != 2 || (sstsConfig.recyclingApplicationVersion == 2 && !isFirstSupplyRoomUser), handler : function() { formPrinted = 1; openApplication(invoicePlanForTousseType_Diposable, diposableGoodsApplicationForm); @@ -2683,7 +2695,7 @@ id : 'applyDisinfection', tooltip : '申请内容物不固定的消毒物品', iconCls : 'btn_ext_add_foreignTousse', - hidden : SSTS_Disinfection_Create || sstsConfig.applicationFormType != 2 || (sstsConfig.recyclingApplicationVersion == 2 && !isSupplyRoomUser), + hidden : SSTS_Disinfection_Create || sstsConfig.applicationFormType != 2 || (sstsConfig.recyclingApplicationVersion == 2 && !isFirstSupplyRoomUser), handler : function() { formPrinted = 1; openApplication(invoicePlanForTousseType_Tousse, disinfectGoodsApplicationForm); Index: ssts-web/src/main/webapp/disinfectsystem/config/dgszyy/config.js =================================================================== diff -u -r19620 -r19627 --- ssts-web/src/main/webapp/disinfectsystem/config/dgszyy/config.js (.../config.js) (revision 19620) +++ ssts-web/src/main/webapp/disinfectsystem/config/dgszyy/config.js (.../config.js) (revision 19627) @@ -138,6 +138,8 @@ recycleAddQualityMonitoring : true, // 是否启用器械材料清洗不合格统计报表 enableMaterialWashUnUnqualifiedReport : true, + //是否限制同一个科室只能在科室申领那里申请一张申请单(为true需要限制,为false或者没配都不限制) + limitApply : true, // 清洗篮筐有顺序 haveWashOrder : true } \ No newline at end of file