Index: ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView.js =================================================================== diff -u -r22651 -r25037 --- ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView.js (.../comboToussePackingView.js) (revision 22651) +++ ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView.js (.../comboToussePackingView.js) (revision 25037) @@ -4,6 +4,7 @@ var continuePacking = false; var packing = false; var waitAmount = {}; +var fromPortal = false; /** * 聚合包装配界面 */ @@ -143,6 +144,105 @@ resetComboTousseTotolAmount(); } +// 聚合 +function combo_confirm(){ + var waitComboTousseGrid = top.Ext4.getCmp("waitComboTousseGrid"); + var waitComboTousseStore = waitComboTousseGrid.getStore(); + var comboGridStore = top.Ext4.getCmp("comboGrid").getStore(); + + var records = waitComboTousseGrid.getSelectionModel().getSelection(); + if (records.length == 0) { + showResult("请选择!" , null , sstsConfig.messagePauseTimeOnPackingPage); + return false; + } + var items = []; + for(var i = 0 ; i < records.length ; i++){ + var id = records[i].data["id"]; + var tousseName = records[i].data["tousseName"]; + var amount = records[i].data['amount'];//拆分数量 + var maxAmount = records[i].data["maxAmount"];//总数量 + var packageType = records[i].data["packageType"]; + + if(amount > maxAmount){ + showResult("聚合数量不能大于总数量!" , null , sstsConfig.messagePauseTimeOnPackingPage); + return false; + } + var isExist = isExistErrorOrDamage(records[i]); + if(!isExist){ +// addTousseToTousseGrid(comboGridStore,id,tousseName,amount,packageType); + var addItem = { + id : id, + tousseName : tousseName, + amount : amount, + packageType : packageType + }; + items.push(addItem); + if(amount == maxAmount){ + waitComboTousseStore.remove(records[i]); + }else{ + var num = Number(maxAmount) - Number(amount); + records[i].set('amount', num); + records[i].set('maxAmount', num); + } + } + } + addToComboTousseGrid(items); + +// resetComboTousseTotolAmount(); +} + +function addToComboTousseGrid(items){ + if(items.length == 0){ + return; + } + var comboTousse_name = top.Ext4.getCmp('comboTousseName').getRawValue(); + var comboTousse_id = top.Ext4.getCmp('comboTousseName').getValue(); + + var tousseDetail = ""; + var tousseJsonArray = []; + + for ( var i = 0; i < items.length; i++) { + var record = items[i]; + var id = record.id; + var tousseName = record.tousseName; + var amount = record.amount; + var packageType = record.packageType; + + var temp = tousseName + "x" +amount; + if (tousseDetail == null || tousseDetail.length <= 0) { + tousseDetail = temp; + } else { + tousseDetail = tousseDetail + ";" + temp; + } + + var tousseObj = {}; + tousseObj.id = id; + tousseObj.tousseName = tousseName; + tousseObj.amount = amount; + tousseObj.packageType = packageType; + tousseJsonArray.push(tousseObj); + } + var type = top.Ext4.getCmp("comboToussePackageType").getValue(); + + var comboTousseDataGridStore = top.Ext4.getCmp("comboTousseDataGrid").getStore(); + + + if(tousseDetail != ""){ + var item = [{ + comboId : comboTousse_id, + tousseName : comboTousse_name, + printAmount: 1, + amount: 1, + includeTousseDetail : tousseDetail, + includeTousseJsonArray : tousseJsonArray, + packageType : type + }]; + comboTousseDataGridStore.add(item); + }else{ + showResult("请选择聚合的器械包!" , null , sstsConfig.messagePauseTimeOnPackingPage); + } +} + /** *<< 或 <<<< */ @@ -358,6 +458,28 @@ ] }) + comboTousseStore.on("beforeload", function(thiz, options) { + comboTousseStore.proxy.extraParams["comboTousseOrgUnitCoding"] = top.Ext4.getCmp("comboToussePacking_orgUnit").getValue(); + + }); + + //申请科室Store + var allComboTousseDefinitionDepartStoreExt2 = new Ext4.data.Store({ + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getAllComboTousseDefinitionDepart.do', + reader : { + type : 'json', + totalProperty : 'totalCount', + root : 'data' + } + }, + fields : [ + {name : 'id',mapping : 'id'}, + {name : 'name',mapping : 'name'} + ] + }) + var tbar = [{ text:'聚合包名称:' },{ @@ -466,7 +588,7 @@ var waitComboTousseGrid = top.Ext4.create('cellEditingGrid', { id : 'waitComboTousseGrid', title : '器械包列表', - height: 250, + height: 328, selModel: selModel, border : false, tbar : tbar, @@ -548,8 +670,8 @@ var comboTousseDataGrid = top.Ext4.create('cellEditingGrid', { id : 'comboTousseDataGrid', title : '聚合包列表', - width:300, - height: 300, +// width:300, + height: 328, border : false, store: new Ext4.data.Store({ fields : [ @@ -588,7 +710,7 @@ header : "聚合包名称", dataIndex : 'tousseName', sortable:false, - width : 280 + width : 200 }, { header : "打印数量", dataIndex : 'printAmount', @@ -622,7 +744,7 @@ },{ header : "包装类型", dataIndex : 'packageType', - width : 170, + width : 100, sortable:false, editor : new top.Ext4.form.field.ComboBox({ typeAhead: true, @@ -638,6 +760,25 @@ dataIndex : 'includeTousseDetail', sortable:false, width : 380 + }], + tbar:[{ + xtype:'button', + text : '删除', + handler: function(){ + var records = comboTousseDataGrid.getSelectionModel().getSelection(); + if (records.length == 0) { + showResult("请选择要删除的聚合包!" , null , sstsConfig.messagePauseTimeOnPackingPage); + return false; + } + for(var i = 0 ; i < records.length ; i++){ + var record = records[i]; + var amount = record.data['amount']; + + addRestAmount(record,amount); + + comboTousseDataGrid.getStore().remove(record); + } + } }] }); @@ -884,11 +1025,13 @@ var comboTousseDataGrid = top.Ext4.getCmp("comboTousseDataGrid").getStore(); comboTousseDataGrid.removeAll(); + comboTousseStore.reload(); } } }], buttons : [{ text : packingBtnText, + hidden :fromPortal, handler : function() { continuePacking = false; onPackingBtnClick(this); @@ -905,8 +1048,8 @@ var comboTousseWin = new top.Ext4.window.Window( { id : 'comboTousseWin', title : '装配聚合包', - width : 850, - height: 630, + width : 1000, + height: 500, resizable :false, modal : true, border : false, @@ -924,46 +1067,51 @@ items : [ { layout : 'form', - columnWidth : 0.47, + columnWidth : 0.4, items : [ waitComboTousseGrid ] },{ layout : 'form', - columnWidth : 0.06, + columnWidth : 0.05, buttonAlign:'center', - height : 250, + height : 328, items : [ { height :60, border:false }, { xtype :'button', + hidden: true, text : '>>', minWidth:48, handler : function(){ toComboTousseGrid(false); } }, { xtype :'button', + hidden: true, text : '<<', minWidth:48, handler : function(){ toTousseGrid(false); } }, { xtype :'button', + hidden: true, text : '>>>>', minWidth:48, handler : function(){ toComboTousseGrid(true); } }, { xtype :'button', + hidden: true, text : '<<<<', minWidth:48, handler : function(){ toTousseGrid(true); } },{ xtype :'button', + hidden: true, text:'确定', border:false, minWidth:48, @@ -972,17 +1120,20 @@ var id = top.Ext4.getCmp('comboTousseName').getValue(); comboTousseGrid(id,tousseName); } + },{ + xtype :'button', + text:'聚合', + border:false, + minWidth:48, + handler : function(){ + combo_confirm(); + } } ] }, { layout : 'form', - columnWidth : 0.47, - items : [ comboGrid ] + columnWidth : 0.55, + items : [ comboTousseDataGrid ] } ] - }, { - region : 'south', - height : 220, - layout : 'fit', - items : [ comboTousseDataGrid ] }] }); Index: ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView.jsp (revision 25037) @@ -0,0 +1,438 @@ +<%@page import="com.forgon.disinfectsystem.entity.customform.formdefinition.FormDefinition"%> +<%@page import="com.forgon.disinfectsystem.entity.recyclingdamagerecord.RecyclingDamageItem"%> +<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier,com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig"%> +<%@page import="com.forgon.disinfectsystem.entity.packing.PackingTask"%> +<%@page import="java.util.Map"%> +<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.imagefilemanager.ImageFile"%> +<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.container.Container"%> +<%@page import="com.forgon.disinfectsystem.entity.recyclingerror.RecyclingError"%> +<%@page import="com.forgon.disinfectsystem.common.Constants"%> +<%@page import="java.util.Date"%> +<%@page import="java.text.SimpleDateFormat"%> +<%@page import="java.util.List"%> +<%@page import="com.forgon.disinfectsystem.common.*"%> +<%@page import="com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager"%> +<%@page import="com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoringconfig.QualityMonitoringDefinition" %> +<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition" %> +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> + +<%@ include file="/common/include_Ext2_Css.jsp"%> +<%@ include file="/common/include_Ext42_Css.jsp"%> + + +<% + LoginUserData loginUser = AcegiHelper.getLoginUser(); + SupplyRoomConfigManager supplyRoomConfigManager = (SupplyRoomConfigManager)SpringBeanManger.getBean("supplyRoomConfigManager"); + String orgUnitCoding = loginUser.getOrgUnitCodingFromSupplyRoomConfig(); + String orgUnitName = loginUser.getOrgUnitNameCodingFromSupplyRoomConfig(); + double toussePriceFluctuation = supplyRoomConfigManager.getSystemParamsObj().getToussePriceFluctuation(); + SupplyRoomConfig syscfg = supplyRoomConfigManager.getSystemParamsObj(); + + request.setAttribute("toussePriceFluctuation",toussePriceFluctuation); + request.setAttribute("orgUnitName",orgUnitName); + request.setAttribute("orgUnitCoding",orgUnitCoding); + request.setAttribute("userName",loginUser.getUserFullName()); + request.setAttribute("userLoginName",loginUser.getUserName()); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + request.setAttribute("today", dateFormat.format(new Date())); + request.setAttribute("hospitalName", loginUser.getHospitalName()); + request.setAttribute("foreignDefaultLabelpaper", syscfg.getBarcodePaperType()); + + String projectName = CssdUtils.getConfigProperty("project"); + request.setAttribute("projectName", projectName); +%> + + + + + +装配管理 + + + + + + + + + + + + + + + + + + +
+ + + + + + +<%@ include file="/common/include_Ext2_Js.jsp"%> +<%@ include file="/common/include_Ext42_Js.jsp"%> +<%@include file="/common/include_UseForgonGrid4_Js.jsp"%> + + + + + + + + + + + + + + + + + + + + + + + + + +<%@ include file="/disinfectsystem/print/print.jsp"%> + + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView0.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView0.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/packing/comboToussePackingView0.js (revision 25037) @@ -0,0 +1,64 @@ + + +//记住最后选择的器械包图片名称、类型、视频名称、包定义id;用于查看材料图片后再次查询器械包 +var lastSelectTousseName; +var lastSelectimageTypeTousse; +var lastSelectVedioName; +var lastSelectTdId; + +var packingToussesArray = []; // 装配的器械包数组,用于Selenium自动化测试 +var packedToussesArray = [];// 用于一次打印所有装配的包 +var tousseesToPrint = []; +var formPanel; +var deletePackingTask; +var showTousseDamageMaterial; +var idCardBarcode = ''; +var idCardInstanceID = ''; +var idCardInfo = null; + +var currentIDCardInfo = null; +var idCardTaskNode = null; +var MATERIAL_NAME_IDCARD = "器械包标识牌"; +var packingBtnText = "装配并打印标签"; +if (sstsConfig.printLabelWhenReviewing == true){ + packingBtnText = "装配无菌物品"; +} +var packingPageAutoSetSterilizationProgramAfterSelectTousse = true; +var allowForeignToussePartiallyPacking = false; +var taskGroupObj = null; +//丢失报损按钮响应函数 +var onErrorDamageBtnClick = null; +var curSelMaterialName = null; +var curSelMaterialId = null; + +//判断是否ie和ie7 +var isIE6OrIE7 = top.Ext4.isIE6 || top.Ext4.isIE7; +var appDepartJsonStore = new Ext4.data.Store({ + //limit参数,每页显示条数,默认为25 + pageSize: isIE6OrIE7 ? 15 : 50, + autoLoad:false, + proxy : { + type : 'ajax', + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!getApplicationDepartJson.do', + reader : { + type : 'json', + totalProperty : 'totalCount', + root : 'data' + } + }, + fields : [ + {name : 'id',mapping : 'id'}, + {name : 'name',mapping : 'name'} + ] +}); + + +Ext4.onReady(function() { + fromPortal = true; + taskGroupObj = getTaskGroupObjByName(taskGroup); + packingPageAutoSetSterilizationProgramAfterSelectTousse = getBoolValueFromJs('sstsConfig.packingPageAutoSetSterilizationProgramAfterSelectTousse',true); + allowForeignToussePartiallyPacking = getBoolValueFromJs('sstsConfig.allowForeignToussePartiallyPacking',false); + + packingComboTousse(); +}); + Index: ssts-web/src/main/resources/systemset/portalPage.xml =================================================================== diff -u -r24805 -r25037 --- ssts-web/src/main/resources/systemset/portalPage.xml (.../portalPage.xml) (revision 24805) +++ ssts-web/src/main/resources/systemset/portalPage.xml (.../portalPage.xml) (revision 25037) @@ -12,6 +12,7 @@ + Index: ssts-web/src/main/webapp/disinfectsystem/config/gzykdxfskqyy/config.js =================================================================== diff -u -r24913 -r25037 --- ssts-web/src/main/webapp/disinfectsystem/config/gzykdxfskqyy/config.js (.../config.js) (revision 24913) +++ ssts-web/src/main/webapp/disinfectsystem/config/gzykdxfskqyy/config.js (.../config.js) (revision 25037) @@ -137,5 +137,7 @@ //发货单是否合并打印,如果为true,则把一次性物品、消毒物品、器械包打印到一张单,false或者不配置,都是分三张单打印 mergePrintInvoiceGoods : false, //审核器械包是否必须入篮筐(一级供应室用户进行审核时) - mustScanBasketForTousseReview : true + mustScanBasketForTousseReview : true, + //首页是否显示装配聚合包 + portal_showComboToussePackingIcon: true } \ No newline at end of file