Index: ssts-web/src/main/webapp/disinfectsystem/config/gysdermyy/config.js
===================================================================
diff -u -r27538 -r38577
--- ssts-web/src/main/webapp/disinfectsystem/config/gysdermyy/config.js (.../config.js) (revision 27538)
+++ ssts-web/src/main/webapp/disinfectsystem/config/gysdermyy/config.js (.../config.js) (revision 38577)
@@ -52,6 +52,8 @@
confirmRecyclingAmount:false,
//只有装配完成才能使用清洗篮筐回收
recycleClassifyBasketAfterPacked:false,
+ //是否启用第三方器械包管理功能
+ enbaleThirdPartyTousseManagementFunction:true,
//禁用基数限制
disableCardinalNumLimit:true
Index: ssts-web/src/main/webapp/disinfectsystem/thirdPartyTousse/thirdPartyTousseView.jsp
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/thirdPartyTousse/thirdPartyTousseView.jsp (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/thirdPartyTousse/thirdPartyTousseView.jsp (revision 38577)
@@ -0,0 +1,38 @@
+<%@ page contentType="text/html; charset=UTF-8"%>
+<%@ include file="/common/taglibs.jsp"%>
+<%@page import="com.forgon.disinfectsystem.common.CssdUtils"%>
+
+
+
+<%@ include file="/common/includeExtJsAndCss.jsp"%>
+<%@ include file="/common/includeExtJs4_2.jsp"%>
+
+第三方器械包管理
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-web/src/main/webapp/disinfectsystem/thirdPartyTousse/thirdPartyTousseView.js
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/thirdPartyTousse/thirdPartyTousseView.js (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/thirdPartyTousse/thirdPartyTousseView.js (revision 38577)
@@ -0,0 +1,83 @@
+var listStore;
+var thirdPartyTousseGrid;
+
+Ext4.onReady(function () {
+ Ext4.QuickTips.init();
+ var columns = [
+ { header: "流水号", dataIndex: 'serialNumber', width: 150 },
+ { header: "接收时间", dataIndex: 'receiveTime', width: 150 },
+ { header: "接收人", dataIndex: 'receiver', width: 150 },
+ { header: "送货人", dataIndex: 'sender', width: 150 },
+ { header: "数量(包)", dataIndex: 'tousseAmount', width: 150 },
+ { header: "备注", dataIndex: 'remark', width: 300 }
+ ];
+ var tbar = [{
+ text: '接收',
+ hidden: SSTS_ThirdPartyTousse_Receive,
+ iconCls: 'btn_ext_application_add',
+ handler: function () {
+ showAddOrEditWindow('');
+ }
+ }, '-', {
+ text: '批量打印',
+ iconCls: 'icon_print',
+ handler: function () {
+ deleteConfig(thirdPartyTousseGrid);
+ }
+ }];
+
+ listStore = new Ext4.data.JsonStore({
+ proxy: {
+ type: 'ajax',
+ url: WWWROOT + '/disinfectSystem/baseData/thirdPartyTousseReceiveRecordController/loadThirdPartyTousseReceiveRecord.mhtml',
+ reader: {
+ root: 'data.list'
+ },
+ extraParams: {}
+ },
+ fields: [
+ { name: 'id' },
+ { name: 'serialNumber' },
+ { name: 'receiveTime' },
+ { name: 'receiver' },
+ { name: 'receiverId' },
+ { name: 'sender' },
+ { name: 'tousseAmount' },
+ { name: 'remark' },
+ { name: 'thirdPartyTousseInstances' },
+ { name: 'wareHouseName' },
+ { name: 'wareHouseId' }
+ ]
+ });
+
+ listStore.loadPage(1);
+
+ thirdPartyTousseGrid = new Ext4.grid.GridPanel({
+ title: '第三方器械包接收列表',
+ columns: columns,
+ frame: false,
+ autoScroll: false,
+ store: listStore,
+ tbar: tbar,
+ dockedItems: [{
+ xtype: 'pagingtoolbar',
+ store: listStore, // same store GridPanel is using
+ dock: 'bottom',
+ displayInfo: true
+ }],
+ viewConfig: {
+ autoFill: true
+ },
+ selModel: new Ext4.selection.CheckboxModel()
+ });
+
+ new Ext4.container.Viewport({
+ layout: 'border',
+ items: [{
+ region: 'center',
+ layout: 'fit',
+ items: [thirdPartyTousseGrid]
+ }]
+ });
+
+});
\ No newline at end of file
Index: ssts-web/src/main/webapp/homepage/menu.jsp
===================================================================
diff -u -r38547 -r38577
--- ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 38547)
+++ ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 38577)
@@ -1093,6 +1093,16 @@
}
+ /**
+ * 《GYSDERMYY-24:第三方器械包管理》权限
+ */
+ var SSTS_ThirdPartyTousse_Select = true;
+
+ if (!notInWhiteList(sstsConfig, 'enbaleThirdPartyTousseManagementFunction')) {
+ SSTS_ThirdPartyTousse_Select = false
+ }
+
+
/**
* 《手术预约管理》菜单
*/
Index: ssts-web/src/main/webapp/disinfectsystem/thirdPartyTousse/thirdPartyTousseForm.js
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/thirdPartyTousse/thirdPartyTousseForm.js (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/thirdPartyTousse/thirdPartyTousseForm.js (revision 38577)
@@ -0,0 +1,445 @@
+var configWin;
+var formPanel;
+
+function cancel() {
+ configWin.close();
+}
+
+//保存器械包接收信息
+function saveConfig(id) {
+ var mask = new Ext4.LoadMask({
+ msg: '正在保存,请稍候...',
+ target: formPanel
+ });
+ mask.show();
+ var receiverId = top.Ext4.getCmp('receiverId').getValue();
+ var sender = top.Ext4.getCmp('sender').getValue();
+ var remark = top.Ext4.getCmp('remark').getValue();
+ var wareHouseId = top.Ext4.getCmp('wareHouseId').getValue();
+ var thirdPartyTousseInstances = [];
+ var leftGrid = top.Ext4.getCmp('leftGrid').getStore();
+ for (var i = 0; i < leftGrid.getCount(); i++) {
+ var item = leftGrid.getAt(i);
+ thirdPartyTousseInstances.push({
+ barcode:item.data.barcode,
+ tousseName:item.data.tousseName,
+ orgUnitId:item.data.orgUnitId,
+ orgUnitName:item.data.OrgUnitName
+ })
+ }
+ var params = {
+ receiverId:receiverId,
+ sender:sender,
+ remark:remark,
+ wareHouseId:wareHouseId,
+ id:id,
+ thirdPartyTousseInstances:thirdPartyTousseInstances
+ }
+ Ext4.Ajax.request({
+ url: WWWROOT + '/disinfectSystem/baseData/thirdPartyTousseReceiveRecordController/receiveThirdPartyTousse.mhtml',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ jsonData: params,
+ success: function (response, options) {
+ var result = Ext4.decode(response.responseText);
+ if (result.success) {
+ configWin.close();
+ listStore.load();
+ showResult('保存成功');
+ } else {
+ showResult(result.message);
+ }
+ mask.hide();
+ },
+ failure: function (response, options) {
+ mask.hide();
+ showResult('保存失败!');
+ }
+ });
+}
+
+function updateTousseSumAmount(sumAmount,tousseName) {
+ var rightGrid = top.Ext4.getCmp('rightGrid').getStore();
+ for (var i = 0; i < rightGrid.getCount(); i++) {
+ var item = rightGrid.getAt(i);
+ var amount = item.data.amount;
+ if (item.data.tousseName == tousseName) {
+ rightGrid.getAt(i).set('amount',parseInt(amount)+1)
+ }
+ }
+ top.Ext4.getCmp('totalAmount').setText("总数量(包):" + sumAmount);
+}
+
+//显示窗口
+function showAddOrEditWindow(id) {
+ Ext4.define('Teams', {
+ extend: 'Ext4.data.Model',
+ fields: ['barcode', 'tousseName', 'sterileStartDate', 'expDate', 'packer', 'reviewer', 'orgUnitName']
+ });
+
+ var wareHouseStore = new Ext4.data.Store({
+ proxy: {
+ type: 'ajax',
+ url: WWWROOT + '/disinfectSystem/baseData/wareHouseAction!getWareHouseData.do',
+ reader: {
+ type: 'json',
+ root: 'data'
+ }
+ },
+ fields: [
+ { name: 'id', mapping: 'id' },
+ { name: 'name', mapping: 'name' },
+ { name: 'orgUnitCode', mapping: 'orgUnitCode' }
+ ],
+ listeners: {
+ load: function (store, options) {
+ if (store.data.items.length > 0) {
+ var record = store.data.items[0];
+ top.Ext4.getCmp('wareHouseId').setValue(record.data.id);
+ top.Ext4.getCmp('wareHouseName').setValue(record.data.name);
+ }
+ }
+ }
+ });
+
+ wareHouseStore.load();
+
+ var leftData = new Ext4.data.Store({
+ fields: [
+ { name: 'barcode' },
+ { name: 'tousseName' },
+ { name: 'sterileStartDate' },
+ { name: 'expDate' },
+ { name: 'packer' },
+ { name: 'reviewer' },
+ { name: 'orgUnitName' }
+ ],
+ data: []
+ });
+
+ var rightData = new Ext4.data.Store({
+ fields: [
+ { name: 'tousseName' },
+ { name: 'amount' }
+ ],
+ data: []
+ });
+ var leftGrid = new top.Ext4.grid.Panel({
+ id: 'leftGrid',
+ store: leftData,
+ height: 420,
+ tbar: [{
+ text: '扫描条码:'
+ }, {
+ xtype: 'textfield',
+ id: 'scanBarcode',
+ name: 'scanBarcode',
+ width: 200,
+ anchor: '99%',
+ enableKeyEvents: true,
+ listeners: {
+ render: function (c) {
+ c.getEl().on('keypress', function (e) {
+ if (e.getKey() == 13) {
+ var res = top.Ext4.getCmp('scanBarcode').getValue(); // '011985628@@水管接头@@2024-04-03 18:12:48@@2024-09-30@@肖宝松@@陈妙玲@@手术室';
+ var barcode = res.split('@@')[0];
+ var tousseName = res.split('@@')[1];
+ if (res == '' || res.indexOf('@@') == -1) {
+ showResult('请扫描正确的二维码!');
+ return
+ }
+ if (barcode == '') {
+ showResult('条码不能为空!');
+ return
+ }
+ if (tousseName == '') {
+ showResult('器械包不能为空!');
+ return
+ }
+ var leftGrid = top.Ext4.getCmp('leftGrid').getStore();
+ var isHas = false;
+ var sumAmount = 0;
+ if (leftGrid.getCount() == 0) {
+ sumAmount = 1;
+ var record = [{
+ tousseName: tousseName,
+ amount: 0
+ }];
+ rightData.add(record);
+ } else {
+ sumAmount = 1;
+ for (var i = 0; i < leftGrid.getCount(); i++) {
+ var item = leftGrid.getAt(i);
+ if (item.data.barcode == barcode) {
+ isHas = true;
+ break;
+ }
+ sumAmount++;
+ }
+ }
+ if (isHas) {
+ showResult('条码已存在!');
+ top.Ext4.getCmp('scanBarcode').setValue('');
+ return false;
+ }
+ var record = [{
+ barcode: barcode,
+ tousseName: tousseName,
+ sterileStartDate: res.split('@@')[2],
+ expDate: res.split('@@')[3],
+ packer: res.split('@@')[4],
+ reviewer: res.split('@@')[5],
+ orgUnitName: res.split('@@')[6]
+ }];
+ leftData.add(record);
+ top.Ext4.getCmp('scanBarcode').setValue('');
+ updateTousseSumAmount(sumAmount, tousseName);
+ }
+ });
+ }
+ }
+ }],
+ columns: [{
+ text: '条码',
+ width: 80,
+ menuDisabled: true,
+ sortable: false,
+ dataIndex: 'barcode'
+ }, {
+ text: '物品名称',
+ width: 130,
+ menuDisabled: true,
+ sortable: false,
+ dataIndex: 'tousseName'
+ }, {
+ text: '灭菌日期',
+ width: 130,
+ menuDisabled: true,
+ sortable: false,
+ dataIndex: 'sterileStartDate'
+ }, {
+ text: '失效日期',
+ width: 100,
+ menuDisabled: true,
+ sortable: false,
+ dataIndex: 'expDate'
+ }, {
+ text: '申请科室',
+ width: 80,
+ menuDisabled: true,
+ sortable: false,
+ dataIndex: 'orgUnitName'
+ }, {
+ text: '配包人',
+ width: 80,
+ menuDisabled: true,
+ sortable: false,
+ dataIndex: 'packer'
+ }, {
+ text: '审核人',
+ width: 80,
+ menuDisabled: true,
+ sortable: false,
+ dataIndex: 'reviewer'
+ }]
+ })
+
+ var rightGrid = new top.Ext4.grid.Panel({
+ title: '物品汇总',
+ store: rightData,
+ id: 'rightGrid',
+ height: 420,
+ tbar: [{
+ xtype: 'button',
+ id: 'totalAmount',
+ hidden: false
+ }],
+ columns: [{
+ text: '物品名称',
+ width: 140,
+ menuDisabled: true,
+ sortable: false,
+ dataIndex: 'tousseName'
+ }, {
+ text: '数量(包)',
+ width: 100,
+ menuDisabled: true,
+ sortable: false,
+ dataIndex: 'amount'
+ }]
+ })
+
+ formPanel = new top.Ext4.form.Panel({
+ frame: true,
+ bodyPadding: '5 5 0',
+ width: 990,
+ autoHeight: true,
+ autoScroll: true,
+ layout: 'column',
+ fieldDefaults: {
+ labelAlign: 'right',
+ labelWidth: 80
+ },
+ border: false,
+ items: [{
+ xtype: "fieldset",
+ title: '基础数据',
+ layout: 'column',
+ width: 970,
+ id: 'formPanel',
+ style: 'height:auto',
+ items: [{
+ layout: 'form',
+ columnWidth: .33,
+ items: [{
+ xtype: 'textfield',
+ fieldLabel: '送货员',
+ id: 'sender',
+ name: 'sender',
+ anchor: '100%',
+ allowBlank: true
+ }]
+ }, {
+ layout: 'form',
+ columnWidth: .33,
+ items: [{
+ xtype: 'textfield',
+ fieldLabel: '接收人条码',
+ id: 'receiverBarcode',
+ name: 'receiverBarcode',
+ anchor: '100%',
+ allowBlank: true,
+ listeners: {
+ specialkey: function (thiz, e) {
+ if (e.getKey() == 13) {
+ var text = thiz.getValue();
+ UserTableManager.getUserByBarcode(text, function (responseText) {
+ var result = Ext4.decode(responseText);
+ if (result.success) {
+ var result = Ext4.decode(responseText);
+ top.Ext4.getCmp('receiverId').setValue(result.id);
+ top.Ext4.getCmp('receiver').setValue(result.fullName);
+ top.Ext4.getCmp('receiverBarcode').setValue('');
+ } else {
+ showResult('找不到该条码所对应的人员信息');
+ }
+ });
+ }
+ }
+ }
+ }]
+ }, {
+ layout: 'form',
+ columnWidth: .33,
+ items: [{
+ xtype: 'hidden',
+ id: 'receiverId',
+ name: 'receiverId'
+ }, {
+ xtype: 'textfield',
+ fieldLabel: '接收人',
+ id: 'receiver',
+ name: 'receiver',
+ anchor: '100%',
+ allowBlank: true,
+ cls: 'fieldReadOnlyNoRemove',
+ readOnly: true
+ }]
+ }, {
+ layout: 'form',
+ columnWidth: .33,
+ items: [{
+ xtype: 'textfield',
+ fieldLabel: '签收时间',
+ id: 'signDate',
+ name: 'signDate',
+ anchor: '100%',
+ allowBlank: true,
+ cls: 'fieldReadOnlyNoRemove',
+ readOnly: true
+ }]
+ }, {
+ layout: 'form',
+ columnWidth: .33,
+ items: [{
+ xtype: 'hidden',
+ id: 'wareHouseId',
+ name: 'wareHouseId'
+ }, {
+ xtype: 'textfield',
+ fieldLabel: '仓库',
+ id: 'wareHouseName',
+ name: 'wareHouseName',
+ anchor: '100%',
+ allowBlank: true,
+ cls: 'fieldReadOnlyNoRemove',
+ readOnly: true
+ }]
+ }, {
+ layout: 'form',
+ columnWidth: .99,
+ items: [{
+ xtype: 'textarea',
+ fieldLabel: '备注',
+ height: 50,
+ id: 'remark',
+ name: 'remark',
+ maxLength: 200,
+ anchor: '100%',
+ allowBlank: true
+ }]
+ }]
+ }, {
+ layout: 'column',
+ width: 970,
+ border: false,
+ id: 'gridPanel',
+ items: [{
+ layout: 'form',
+ columnWidth: .74,
+ border: false,
+ items: leftGrid
+ }, {
+ layout: 'form',
+ columnWidth: .26,
+ border: false,
+ items: rightGrid
+ }]
+ }]
+ });
+ configWin = new top.Ext4.window.Window({
+ id: 'configWin',
+ layout: 'column',
+ title: '器械包接收信息',
+ width: 1000,
+ height: 650,
+ border: false,
+ plain: true,
+ modal: true,
+ items: [{
+ region: 'center',
+ layout: 'fit',
+ border: false,
+ items: [formPanel]
+ }],
+ buttonAlign: 'center',
+ buttons: [{
+ id: 'saveBtn',
+ text: '保存',
+ handler: function () {
+ if (formPanel.getForm().isValid()) {
+ saveConfig(id);
+ } else {
+ showResult('请填写表单!');
+ return false;
+ }
+ }
+ }, {
+ text: '取消',
+ handler: cancel
+ }]
+ });
+ configWin.show();
+}
+
Index: ssts-web/src/main/webapp/homepage/menuconfigure.js
===================================================================
diff -u -r38547 -r38577
--- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 38547)
+++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 38577)
@@ -195,6 +195,15 @@
})
DisinfectsystemTreeData.push({
+ text:"第三方器械包管理",
+ singleClickExpand:singleClickExpandTree,
+ hidden:SSTS_ThirdPartyTousse_Select,
+ children:[
+ {hidden :SSTS_ThirdPartyTousse_Select,text:"器械包接收",href:WWWROOT+'/disinfectsystem/thirdPartyTousse/thirdPartyTousseView.jsp',hrefTarget:linkTarget,leaf:true}
+ ]
+})
+
+DisinfectsystemTreeData.push({
text:"运作监控管理",
singleClickExpand:singleClickExpandTree,
hidden:SSTS_supplyRoomOperate_View,
Index: ssts-web/src/main/resources/systemset/operationDefine.xml
===================================================================
diff -u -r38547 -r38577
--- ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 38547)
+++ ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 38577)
@@ -160,6 +160,11 @@
+
+
+
+
+