Index: ssts-web/src/main/webapp/homepage/portalPage.js
===================================================================
diff -u -r32051 -r32157
--- ssts-web/src/main/webapp/homepage/portalPage.js (.../portalPage.js) (revision 32051)
+++ ssts-web/src/main/webapp/homepage/portalPage.js (.../portalPage.js) (revision 32157)
@@ -921,6 +921,11 @@
if (arr.indexOf('自定义表单') == -1 && itemId == 'customform'){
return returnContent;
}
+
+ //器械包库存图标
+ if (arr.indexOf('器械包库存') == -1 && itemId == 'tousseGoodsStockView'){
+ return returnContent;
+ }
}else {
if(itemId == 'cardinalNumManage' || itemId == 'sterilizerDelivery' || itemId == 'deviceMaintenance' || itemId == 'deviceMaintenanceCustom' || itemId == 'foreignProxySterilizationManage' || itemId == 'foreignTousseApplication' || itemId == 'customform'){
return returnContent;
@@ -1494,8 +1499,90 @@
}
});
}
+var tousseGoodsStockWarningWin;
+//FSSDERMYY-12:显示器械包库存告警
+function showTousseGoodsStockWarningWin(){
+ var gridPanel = new Ext.grid.GridPanel({
+ store: new Ext.data.SimpleStore({
+ fields : ['message','orgUnitCode','orgUnitName'],
+ data : []
+ }),
+ columns: [{
+ header: "告警类型", width: 360, dataIndex: 'message',
+ }, {
+ header: "操作", width: 70,dataIndex: 'warningItemType',renderer : function(v, p, record){
+ var orgUnitName = record.data.orgUnitName;
+ var orgUnitCode = record.data.orgUnitCode;
+ return "查看详细";
+ }
+ }],
+ stripeRows: true,
+ viewConfig: {
+ forceFit:true
+ },
+ hideHeaders: true,
+ height:200,
+ width:600
+ });
+ tousseGoodsStockWarningWin = new Ext.Window({
+ autoHeight:true,
+ title : '器械包库存告警',
+ width:615,
+ draggable:true,
+ modal:true,
+ closeAction:'close',
+ items:[gridPanel]
+ });
+ Ext4.Ajax.request({
+ async: true,
+ dataType:"json",
+ params:{
+ 'orgUnitCode':dirOrgCode
+ },
+ url: WWWROOT+"/system/systemWarningAction!getTousseGoodsStockAlarmWarning.do",
+ success: function(response) {
+ var result = Ext4.decode(response.responseText);
+ if(result.data.length > 0){
+ var record = Ext.data.Record.create([
+ {name : 'message'},
+ {name : 'orgUnitCode'},
+ {name : 'orgUnitName'}
+ ]);
+ for(var i=0;i"+v+"
";
+ }else {
+ return v;
+ }
+ }else {
+ return v;
+ }
+ }},
{ header: "所属科室/仓库", width: 180, dataIndex: 'orgUnitName' },
- { header: "数量", width: 60, dataIndex: 'amount', sortable: false, renderer: amountDetailsStock }
+ { header: "库存数量", width: 80, dataIndex: 'amount', sortable: false, renderer: amountDetailsStock },
+ { header: "最低库存", width: 80, dataIndex: 'minWarnStock' }
);
var readerDetail = [
{ name: 'name' },
{ name: 'orgUnitName' },
{ name: 'amount' },
+ { name: 'minWarnStock' },
{ name: 'orgUnitCode' }
];
+ //科室数据源
+ var departJsonStore = new Ext.data.Store({
+ proxy: new Ext.data.HttpProxy({
+ url: WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!getAllOrgUnitName.do',
+ method: 'POST'
+ }),
+ reader: new Ext.data.JsonReader({
+ root: 'data'
+ }, [{
+ name: 'id',
+ mapping: 'id'
+ },
+ {
+ name: 'name',
+ mapping: 'name'
+ }
+ ])
+ });
+
+ departJsonStore.load();
+
var form = new Ext.Panel({
title: '器械包库存列表',
region: 'north',
@@ -222,7 +259,7 @@
layout: 'column',
items: [{
layout: 'form',
- width: 400,
+ width: 300,
labelWidth: 90,
labelAlign: 'right',
items: [{
@@ -254,6 +291,67 @@
typeAhead: false,
anchor: '95%'
}]
+ },{
+ layout: 'form',
+ width: 350,
+ labelWidth: 90,
+ labelAlign: 'right',
+ items: [{
+ xtype: 'combo',
+ fieldLabel: "查询范围",
+ name: "stockFilter",
+ id: "stockFilter",
+ valueField: 'value',
+ displayField: 'value',
+ allowBlank: false,
+ editable: false,
+ store: new Ext.data.SimpleStore({
+ fields: ['value'],
+ data: [['全部器械包'], ['库存数量≤设置最低库存的器械包']]
+ }),
+ value: '全部器械包',
+ forceSelection: true,
+ mode: 'local',
+ anchor: '95%',
+ triggerAction: 'all'
+ }]
+ },{
+ xtype:'hidden',
+ id: 'departCode',
+ name: 'departCode',
+ value:orgUnitCoding
+ },{
+ layout: 'form',
+ width: 300,
+ labelWidth: 90,
+ labelAlign: 'right',
+ id:'departDom',
+ hidden:true,
+ items: [{
+ xtype: 'combo',
+ fieldLabel: "科室",
+ queryParam: 'spell',
+ id: 'departName',
+ name: 'departName',
+ minChars: 0,
+ valueField: 'name',
+ displayField: 'name',
+ anchor: '95%',
+ store: departJsonStore,
+ lazyInit: true,
+ value:orgUnitName,
+ triggerAction: 'all',
+ typeAhead: false,
+ allowBlank: true,
+ forceSelection : true,
+ editable: false,
+ listeners : {
+ select : function(thiz, record, index, eOpts){
+ var id = record.data.id;
+ Ext.getCmp('departCode').setValue(id);
+ }
+ }
+ }]
}]
}],
buttons: [{
@@ -269,13 +367,16 @@
iconCls: 'icon_set',
handler: function () {
$Id('tousseName').value = "";
+ Ext.getCmp('departCode').setValue(orgUnitCoding);
+ Ext.getCmp('departName').setValue(orgUnitName);
}
}, {
text: '设置统计的器械包',
minWidth: 50,
iconCls: 'icon_set',
handler: function () {
- setNeedStatisticsTousse(model, top.dirOrgCode, null);
+ var dirOrgCode = Ext.getCmp('departCode').getValue() || top.dirOrgCode;
+ setNeedStatisticsTousse(model, dirOrgCode, null);
}
}, {
text: '校正库存',
@@ -295,6 +396,25 @@
});
DWREngine.setAsync(true);
}
+ }, {
+ text: '最低库存设置',
+ minWidth: 50,
+ iconCls: 'icon_set',
+ handler: function () {
+ var dirOrgCode = Ext.getCmp('departCode').getValue() || top.dirOrgCode;
+ setGoodsWarnStock(dirOrgCode);
+ }
+ }, {
+ text: '导出',
+ minWidth: 50,
+ iconCls: 'btn_ext_download',
+ handler: function () {
+ var tousseName = Ext.getCmp('tousseName').getRawValue();
+ var stockFilter = Ext.getCmp('stockFilter').getRawValue();
+ var departCode = Ext.getCmp('departCode').getValue();
+ console.log(departCode)
+ location.href = WWWROOT + "/disinfectSystem/baseData/orgUnitGoodsWarnStockAction!exportOrgUnitGoodsStockInfo.do?tousseName="+encodeURI(tousseName)+'&stockFilter='+encodeURI(stockFilter)+'&orgUnitCode='+departCode;
+ }
}]
});
@@ -314,13 +434,41 @@
null
);
+ //是否一级供应室用户
+ var isFirstRoomPeople = false;
+ DWREngine.setAsync(false);
+ //验证当前登录用户属于一级供应室还是二级供应室
+ UserTableManager.checkForSupplyType(function(data){
+ var result = Ext.decode(data);
+ if(result.result){//一级供应室
+ Ext.getCmp('departDom').show();
+ }else{//二级供应室
+ Ext.getCmp('departDom').hide();
+ }
+ });
+ DWREngine.setAsync(true);
+
new Ext.Viewport({
layout: 'border',
items: [form, {
region: 'center',
margins: '0 0 0 0',
layout: 'fit',
- items: grid
+ items: grid,
+ listeners:{
+ render:function(){
+ if(newOrgUnitName !== undefined && newOrgUnitName !== ''){
+ if(Ext.getCmp('departName')){
+ Ext.getCmp('departName').setValue(newOrgUnitName);
+ }
+ Ext.getCmp('departCode').setValue(newOrgUnitCoding);
+ Ext.getCmp('stockFilter').setValue('库存数量≤设置最低库存的器械包');
+ setTimeout(function(){
+ initQueryValueAndReload();
+ }, 1000);
+ }
+ }
+ }
}]
});
});
Index: ssts-web/src/main/webapp/disinfectsystem/toussemanager/toussegoodsstock/tousseGoodsStockView.jsp
===================================================================
diff -u -r29513 -r32157
--- ssts-web/src/main/webapp/disinfectsystem/toussemanager/toussegoodsstock/tousseGoodsStockView.jsp (.../tousseGoodsStockView.jsp) (revision 29513)
+++ ssts-web/src/main/webapp/disinfectsystem/toussemanager/toussegoodsstock/tousseGoodsStockView.jsp (.../tousseGoodsStockView.jsp) (revision 32157)
@@ -1,7 +1,14 @@
<%@ page contentType="text/html; charset=UTF-8"%>
<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.reportoption.GoodsOption"%>
+<%@page import="com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager"%>
<%@ include file="/common/taglibs.jsp"%>
-
+<%
+ SupplyRoomConfigManager supplyRoomConfigManager = (SupplyRoomConfigManager)SpringBeanManger.getBean("supplyRoomConfigManager");
+ String orgUnitCoding = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig();
+ String orgUnitName = AcegiHelper.getLoginUser().getOrgUnitNameCodingFromSupplyRoomConfig();
+ request.setAttribute("orgUnitName",orgUnitName);
+ request.setAttribute("orgUnitCoding",orgUnitCoding);
+ %>
@@ -13,11 +20,16 @@
SSTS_TousseGoodsStockAdjust = false;
var model = '<%=GoodsOption.MODEL_TOUSSEGOODSSTOCK%>'; //设置的类型
+ var orgUnitName = '${orgUnitName}';
+ var orgUnitCoding = '${orgUnitCoding}';
+ var newOrgUnitName = '${param.orgUnitName}';
+ var newOrgUnitCoding = '${param.orgUnitCode}';
+
@@ -42,6 +54,8 @@
\ No newline at end of file
Index: ssts-web/src/main/webapp/themes/portalPage/img/tousseGoodsStock.png
===================================================================
diff -u
Binary files differ
Index: ssts-web/src/main/webapp/disinfectsystem/config/fssdermyy/menu/menuconfigure.js
===================================================================
diff -u -r31491 -r32157
--- ssts-web/src/main/webapp/disinfectsystem/config/fssdermyy/menu/menuconfigure.js (.../menuconfigure.js) (revision 31491)
+++ ssts-web/src/main/webapp/disinfectsystem/config/fssdermyy/menu/menuconfigure.js (.../menuconfigure.js) (revision 32157)
@@ -425,7 +425,7 @@
{hidden :SSTS_ForeignTousse_Manage,text:"停用的外来器械包",href:WWWROOT+'/disinfectsystem/basedatamanager/tousse/foreignTousseView.jsp?editMode=true&onlyShowDisable=yes',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_TousseInstanceManager_ViewMenu,text:"器械包信息",href:WWWROOT+'/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_TousseInstanceManager_ViewMenu,text:"标识牌信息",href:WWWROOT+'/disinfectsystem/basedatamanager/tousse/idCardInstanceView.jsp',hrefTarget:linkTarget,leaf:true},
- {hidden :SSTS_Tousse,text:"器械包库存",href:WWWROOT+'/disinfectsystem/toussemanager/toussegoodsstock/tousseGoodsStockView.jsp',hrefTarget:linkTarget,leaf:true},
+ {hidden :SSTS_TousseGoodsStock,text:"器械包库存",href:WWWROOT+'/disinfectsystem/toussemanager/toussegoodsstock/tousseGoodsStockView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_TousseMaintain_Manager,text:"器械包保养",href:WWWROOT+'/disinfectsystem/toussemanager/toussemaintain/tousseMaintainView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :!sstsConfig.hasOwnProperty('enableComboTousse') || sstsConfig.enableComboTousse == false || SSTS_ComboTousseManager,text:"聚合包定义管理",href:WWWROOT+'/disinfectsystem/basedatamanager/tousse/comboTousse.jsp?editMode=true',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_DepartMentTousseManager,text:"基数管理",href:WWWROOT+'/disinfectsystem/departmentStock/departmentStockInputView.jsp',hrefTarget:linkTarget,leaf:true},
Index: ssts-web/src/main/webapp/disinfectsystem/config/fssdermyy/config.js
===================================================================
diff -u -r32117 -r32157
--- ssts-web/src/main/webapp/disinfectsystem/config/fssdermyy/config.js (.../config.js) (revision 32117)
+++ ssts-web/src/main/webapp/disinfectsystem/config/fssdermyy/config.js (.../config.js) (revision 32157)
@@ -145,6 +145,8 @@
showCameraPhoto:true,
//是否启用回收拍摄功能
showCameraPhotoInRecyclingModule:true,
+ //器械包库存告警提醒时间间隔设置
+ setTheAlarmReminderTimeIntervalForTheEquipmentPackageInventor:30,
//提取住院号的正则表达式
regExpForExtractingHospitalNumber:"\"PatNO\":\"(.*?)\"}",
//提取诊疗号的正则表达式
Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/js/setGoodsOption.js
===================================================================
diff -u -r26060 -r32157
--- ssts-web/src/main/webapp/disinfectsystem/reportforms/js/setGoodsOption.js (.../setGoodsOption.js) (revision 26060)
+++ ssts-web/src/main/webapp/disinfectsystem/reportforms/js/setGoodsOption.js (.../setGoodsOption.js) (revision 32157)
@@ -29,6 +29,8 @@
*/
var formWindow;
+var stockWindow;
+
/**
* “grid”视图列表的数据储存器
*/
@@ -39,10 +41,11 @@
*/
var GoodsRecord = top.Ext.data.Record.create([{name : 'name'}]);
+//缓存最低库存设置
+var sessionGoodsWarnStock = new newMap();
+var lastEventEditRow = 0;
-
-
/**
* 设置需要统计的器械包
* @param model 设置的类型
@@ -177,7 +180,7 @@
},{
id : 'name',
header : "物品名称",
- width:240,
+ width:160,
dataIndex : 'name'
},{id : 'deleteItem',header:'删除',width :40,menuDisabled: true,
renderer: function(v,p,record){
@@ -375,3 +378,206 @@
}
+//保存最低库存设置
+function saveGoodsWarnStock(){
+ if(sessionGoodsWarnStock.size() > 0){
+ var arr = [];
+ sessionGoodsWarnStock.forEach(function(item){
+ arr.push(item);
+ });
+ Ext.Ajax.request({
+ url : WWWROOT + '/disinfectSystem/baseData/orgUnitGoodsWarnStockAction!batchSaveOrgUnitGoodsWarnStock.do',
+ async:false,
+ params : {goodsWarnStockArray : JSON.stringify(arr)},
+ success : function(response) {
+ var result = Ext.decode(response.responseText)
+ showResult(result.message);
+ stockWindow.close();
+ grid.dwrReload();
+ },
+ failure : function(response, options) {
+ showResult(response.responseText);
+ }
+ });
+ }
+}
+
+//最低库存设置
+function setGoodsWarnStock(orgUnitCode){
+ var store = new top.Ext.data.Store({
+ proxy : new Ext.data.HttpProxy({
+ url : WWWROOT + '/disinfectSystem/baseData/orgUnitGoodsWarnStockAction!loadTousseInfoByGoodsOption.do',
+ method : 'POST'
+ }),
+ baseParams : {
+ orgUnitCode : orgUnitCode
+ },
+ reader: new Ext.data.JsonReader({
+ totalProperty: 'totalCount',
+ root: 'data'
+ }, [
+ {name : 'tousseDefinitionID'},
+ {name : 'name'},
+ {name : 'warnStock'}
+ ])
+ });
+
+ store.load();
+
+ //“选择物品combo”的数据储存器
+ var tousseAndDiposableGoodsStore2 = new top.Ext.data.Store({
+ proxy : new Ext.data.HttpProxy({
+ url : WWWROOT + '/disinfectSystem/baseData/orgUnitGoodsWarnStockAction!loadTousseInfoByGoodsOption.do',
+ method : 'POST'
+ }),
+ baseParams : {
+ orgUnitCode : orgUnitCode
+ },
+ reader : new Ext.data.JsonReader({
+ totalProperty : 'totalCount',
+ root : 'data'
+ }, [
+ {name : 'tousseDefinitionID',mapping : 'tousseDefinitionID'},
+ {name : 'name',mapping : 'name'}]
+ )
+ });
+
+ var tbar = [{
+ text : '选择物品'
+ },{
+ xtype : 'combo',
+ id : 'goodsSearch2',
+ name : 'goodsSearch2',
+ queryParam : 'spell',
+ fieldLabel : '物品名称',
+ minChars : 0,
+ valueField : 'tousseDefinitionID',
+ displayField : 'name',
+ anchor : '100%',
+ width:300,
+ store : tousseAndDiposableGoodsStore2,
+ forceSelection : true,
+ lazyInit : true,
+ triggerAction : 'all',
+ hideTrigger : true,
+ typeAhead : false,
+ allowBlank : true
+ },{
+ text : '查询',
+ handler : function () {
+ var id = top.Ext.getCmp('goodsSearch2').getValue();
+ var name = top.Ext.getCmp('goodsSearch2').getRawValue();
+ if(name == ''){
+ store.baseParams.tousseDefinitionId = '';
+ }else {
+ store.baseParams.tousseDefinitionId = id;
+ }
+ store.load();
+ }
+ }]
+
+ var cm = new top.Ext.grid.ColumnModel([new top.Ext.grid.RowNumberer({header:"序号",width:40}),{
+ id:'id',
+ name:'id',
+ hidden :true,
+ dataIndex : 'id'
+ },{
+ id : 'name',
+ header : "物品名称",
+ width:160,
+ dataIndex : 'name'
+ },{
+ id : 'warnStock',
+ header : "最低库存",
+ width:80,
+ dataIndex : 'warnStock',
+ editor : new top.Ext.form.NumberField( {
+ allowBlank : false,
+ minValue:1,
+ listeners:{
+ change : function(field,newV,oldV){
+ var record = store.getAt(lastEventEditRow);
+ sessionGoodsWarnStock.set(record.data.id,{
+ "orgUnitCode":orgUnitCode,
+ "tousseDefinitionId":record.data.id,
+ "warningStock":newV
+ });
+ }
+ }
+ })
+ }]);
+ var formObj = new top.Ext.FormPanel({
+ id : 'goodsWarnStockForm',
+ frame : true,
+ labelAlign:'right',
+ labelSeparator : ':',
+ bodyStyle : 'padding:5px 5px 0px 5px',
+ autoWidth : true,
+ autoHeight : true,
+ autoScroll : true,
+ items:[{
+ layout : 'column',
+ items : [{
+ xtype : 'hidden',
+ name : 'id',
+ id : 'id'
+ },{
+ columnWidth : 1,
+ layout: 'form',
+ items : [
+ new top.Ext.grid.EditorGridPanel({
+ id : 'grid',
+ store : store,
+ cm : cm,
+ width : 240,
+ height: 240,
+ autoExpandColumn : 'name',
+ isCheckboxSelectionModel : true,
+ frame : false,
+ viewConfig: {
+ autoFit:true
+ },
+ tbar:tbar,
+ clicksToEdit : 1,
+ bodyStyle : 'border:1px solid #afd7af',
+ anchor : '100%',
+ selModel : new top.Ext.grid.RowSelectionModel({
+ singleSelect : false
+ }),
+ listeners: {
+ beforeedit: function(obj){
+ lastEventEditRow = obj.row;
+ }
+ }
+ })
+ ]
+ }]
+ }],
+ buttons : [{
+ id : 'saveBtn',
+ text : '保存',
+ handler : function(){
+ saveGoodsWarnStock();
+ }
+ },{
+ id : 'cancleBtn',
+ text : '取消',
+ handler : function() {
+ stockWindow.close();
+ }
+ }]
+ });
+ stockWindow = new top.Ext.Window({
+ id : 'deviceMaintenanceWin',
+ layout : 'fit',
+ title : '选择物品',
+ width : 620,
+ modal : true,
+ autoHeight : true,
+ border : false,
+ plain : true,
+ items : [formObj]
+ });
+ stockWindow.show();
+}
+
Index: ssts-web/src/main/webapp/homepage/menuconfigure.js
===================================================================
diff -u -r32051 -r32157
--- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 32051)
+++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 32157)
@@ -460,7 +460,7 @@
{hidden :SSTS_ForeignTousse_Manage,text:"停用的外来器械包",href:WWWROOT+'/disinfectsystem/basedatamanager/tousse/foreignTousseView.jsp?editMode=true&onlyShowDisable=yes',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_TousseInstanceManager_ViewMenu,text:"器械包信息",href:WWWROOT+'/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_TousseInstanceManager_ViewMenu,text:"标识牌信息",href:WWWROOT+'/disinfectsystem/basedatamanager/tousse/idCardInstanceView.jsp',hrefTarget:linkTarget,leaf:true},
- {hidden :SSTS_Tousse,text:"器械包库存",href:WWWROOT+'/disinfectsystem/toussemanager/toussegoodsstock/tousseGoodsStockView.jsp',hrefTarget:linkTarget,leaf:true},
+ {hidden :SSTS_TousseGoodsStock,text:"器械包库存",href:WWWROOT+'/disinfectsystem/toussemanager/toussegoodsstock/tousseGoodsStockView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_TousseMaintain_Manager,text:"器械包保养",href:WWWROOT+'/disinfectsystem/toussemanager/toussemaintain/tousseMaintainView.jsp',hrefTarget:linkTarget,leaf:true},
{hidden :!sstsConfig.hasOwnProperty('enableComboTousse') || sstsConfig.enableComboTousse == false || SSTS_ComboTousseManager,text:"聚合包定义管理",href:WWWROOT+'/disinfectsystem/basedatamanager/tousse/comboTousse.jsp?editMode=true',hrefTarget:linkTarget,leaf:true},
{hidden :SSTS_DepartMentTousseManager,text:"基数管理",href:WWWROOT+'/disinfectsystem/departmentStock/departmentStockInputView.jsp',hrefTarget:linkTarget,leaf:true},