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