Index: ssts-web/src/main/webapp/disinfectsystem/config/zsyy/config.js =================================================================== diff -u -r23503 -r26370 --- ssts-web/src/main/webapp/disinfectsystem/config/zsyy/config.js (.../config.js) (revision 23503) +++ ssts-web/src/main/webapp/disinfectsystem/config/zsyy/config.js (.../config.js) (revision 26370) @@ -109,8 +109,8 @@ enablePDATousseSign:true, //自定义装配后是否保留灭菌日期 disinfectionDateProcessTypeInDirectPackingView : true, - //加急数量 - isHideUrgentAmount : false, + //启用加急功能,true显示,false和未定义隐藏 + enableUrgentFunction:true, //是否启用清洗交接记录视图列表 enableWashTransitionRecordView : true, //器械交接的版本.1为有已扫和未扫两列的格式,2则没有此两列,只有回收数量一列.中山一院提出只有一列,3为预回收模式,只修改数量,没有扫描功能 @@ -152,8 +152,8 @@ packingView_autoSelectTousseWhenScanBasket: true, //是否启用手术仪器追溯查询报表(true为启用,false或者不配置都不启用) enableTousseTraceabilityInquiry : true, - //是否显示加急等级,默认为不显示。如果为true则显示,false和未定义都不显示 - showUrgentLevel:true, + //启用加急功能,true显示,false和未定义隐藏 + enableUrgentFunction:true, //是否显示按照时间查询 showTimeSearch : true, //是否显示科室分组选择框 Index: ssts-web/src/test/resources/test/forgon/disinfectsystem/selenium/config/all/config.js =================================================================== diff -u -r18289 -r26370 --- ssts-web/src/test/resources/test/forgon/disinfectsystem/selenium/config/all/config.js (.../config.js) (revision 18289) +++ ssts-web/src/test/resources/test/forgon/disinfectsystem/selenium/config/all/config.js (.../config.js) (revision 26370) @@ -84,8 +84,6 @@ isOpenLoadTemplateByUnit : true, //是否隐藏住院号 isHideHospitalNumber: true, - //是否隐藏加急数量 - isHideUrgentAmount: true, // 科室申请版本:1或者没有配置沿用之前的版本,2:独立出科室申领的几个申请功能 recyclingApplicationVersion : 2, //隐藏外部代理灭菌的部分元素(页面属性),为true时部分隐藏,未配置或配置为其它值时与原来保持一致 Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/urgentLevel/urgentLevelView.js =================================================================== diff -u -r18491 -r26370 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/urgentLevel/urgentLevelView.js (.../urgentLevelView.js) (revision 18491) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/urgentLevel/urgentLevelView.js (.../urgentLevelView.js) (revision 26370) @@ -17,7 +17,9 @@ {name : 'name'}, {name : 'grade'}, {name : 'urgent'}, - {name : 'newGrade'} + {name : 'newGrade'}, + {name : 'colorCode'}, + {name : 'urgentDefaultValue'} ] }); @@ -76,10 +78,54 @@ function refreshData(){ urgentStore.reload(); } +//删除 +function deleteUrgentLevel(grid){ + var records = grid.getSelectionModel().getSelections(); + + if (records.length == 0) { + showResult("请选择要删除的容器!"); + return false; + } + var id = null; + for ( var i = 0, len = records.length; i < len; i++) { + if (id == null) { + id = records[i].data['id']; + } else { + //ids = ids + ';' + records[i].data['id']; + id = records[i].data['id']; + } + } + top.Ext.MessageBox + .confirm("请确认", + "是否确定要删除选中的容器信息?", + function(button, text) { + if ("yes" == button){ + Ext.Ajax.request({ + url : WWWROOT + '/disinfectSystem/baseData/urgentLevelAction!delUrgentLevel.do', + params : { + id : id + }, + success : function(response, options) { + var result = Ext.decode(response.responseText); + var success = result.success; + if(success){ + showResult(result.message); + refreshData(); + }else{ + showResult(result.message); + } + }, + failure : function(response, options) { + var result = Ext.decode(response.responseText); + showResult(result.message); + } + }) + } + }); +} Ext.onReady(function() { Ext.QuickTips.init(); - // 记录cookie(3步) - + // 记录cookie(3步) var sign = true; var tbar = [ { text : '添加', @@ -96,14 +142,25 @@ handler : function() { loadFormData(grid); } + },'-', { + text : '删除', + //hidden : SSTS_Container_Delete, + iconCls : 'btn_ext_application_del', + handler : function() { + deleteUrgentLevel(grid); + } }]; var dwrCallParams = null; Ext.ux.ForgonPageGrid.prototype.getGridParameterMap = function() { }; - - var cm = new Ext.grid.ColumnModel( [ { + var smCheckbox = new Ext.grid.CheckboxSelectionModel({ + singleSelect : false + }); + var cm = new Ext.grid.ColumnModel( [ + smCheckbox, + { id : 'id', dataIndex : 'id', hidden :true @@ -131,6 +188,46 @@ width : 200, hidden :false },{ + header : "是否默认", + id : 'urgentDefaultValue', + dataIndex :'urgentDefaultValue', + width : 150, + hidden :false + },{ + header : "加急颜色", + id : 'colorCode', + dataIndex : 'colorCode', + width : 70, + hidden :false, + renderer: function(v,p,record){ + var urgentColorVal = record.get("colorCode"); + if(urgentColorVal == "#ff0000"){ + p.css = 'urgent_red_color'; + }else if(urgentColorVal == "#ff3300"){ + p.css = 'urgent_orange_red_color'; + }else if(urgentColorVal == "#ff6600"){ + p.css = 'urgent_orange_color'; + }else if(urgentColorVal == "#ff9900"){ + p.css = 'urgent_orange_yellow_color'; + }else if(urgentColorVal == "#ffff00"){ + p.css = 'urgent_yellow_color'; + }else if(urgentColorVal == "#99ff00"){ + p.css = 'urgent_yellow_green_color'; + }else if(urgentColorVal == "#00ff00"){ + p.css = 'urgent_green_color'; + }else if(urgentColorVal == "#00ffff"){ + p.css = 'urgent_blue_green_color'; + }else if(urgentColorVal == "#0000ff"){ + p.css = 'urgent_blue_color'; + }else if(urgentColorVal == "#6600ff"){ + p.css = 'urgent_blue_purple_color'; + }else if(urgentColorVal == "#ff00ff"){ + p.css = 'urgent_purple_color'; + }else if(urgentColorVal == "#ff0066"){ + p.css = 'urgent_purple_red_color'; + } + } + },{ id : 'deleteItem3', header:'操作', width : 200, @@ -146,23 +243,17 @@ } ]); initUrgentStore(); - grid = new Ext.grid.EditorGridPanel({ + grid = new Ext.grid.EditorGridPanel({ id : 'grid', store : urgentStore, cm : cm, autoScroll:true, frame : false, -// viewConfig: { -// forceFit:true, -// getRowClass: function(record, rowIndex){ -// return record.get("isFind") ? "resultList" : ""; -// } -// }, width:document.body.offsetWidth-12, height:document.body.offsetHeight-94, bodyStyle : 'border:1px solid #9cbaef', clicksToEdit : 1, - selModel : new Ext.grid.RowSelectionModel({ + sm : new Ext.grid.RowSelectionModel({ singleSelect : false }), tbar : tbar Index: ssts-web/src/main/webapp/disinfectsystem/config/dgskhyy/config.js =================================================================== diff -u -r25824 -r26370 --- ssts-web/src/main/webapp/disinfectsystem/config/dgskhyy/config.js (.../config.js) (revision 25824) +++ ssts-web/src/main/webapp/disinfectsystem/config/dgskhyy/config.js (.../config.js) (revision 26370) @@ -81,8 +81,8 @@ "recycleClassifyBasketAfterPacked" : false, //条码腕带住院号前缀(PDA录使用记录时扫到的住院号前辍) "1,ZY01" "wristBandHospitalNumberPrefix":"R", - //是否隐藏加急数量,默认为隐藏,未配置或配置不为false时则隐藏,配置为false才不隐藏 true:隐藏 false:不隐藏 - "isHideUrgentAmount":false, + //启用加急功能,true显示,false和未定义隐藏 + "enableUrgentFunction":true, //回收一键入筐 true:不隐藏 false:隐藏 "recycleAllTousseIntoBasket":true, //自定义入筐界面,材料的一键入筐功能 true为显示一键入筐按钮,false为不显示,默认为false 广东省医设置为true Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js =================================================================== diff -u -r26343 -r26370 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 26343) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 26370) @@ -8,11 +8,7 @@ if(isHideHospitalNumber != false){ isHideHospitalNumber = true; } -//是否隐藏加急数量(只有config.js的配置为false时才不隐藏,否则都隐藏) -var isHideUrgentAmount = sstsConfig.isHideUrgentAmount; -if(isHideUrgentAmount != false){ - isHideUrgentAmount = true; -} + //器械包申请单的物品视图是否分成两个grid var tousseApplicationFormGridSplit = false; var grid; @@ -60,6 +56,7 @@ * @param specifyDisposableTypes是否包含指定的一次性物品类型,格式:{include:是否包含,disposableTypes:'一次性物品类型集合'} */ function openApplication(form, tousseGroups, specifyDisposableTypes) { + if (!isUndefinedOrNullOrEmpty(form)){ //1、限制同一个科室(供应室除外)只能申请一张申请单 if (sstsConfig.limitApply && form == comboApplicationForm && !isSupplyRoomUser) { @@ -470,6 +467,7 @@ {name : 'middlePackageAmount',mapping : 'middlePackageAmount'}, {name : 'transferScale',mapping : 'transferScale'}, {name : 'urgentAmount',mapping : 'urgentAmount'}, + {name : 'urgentLevel',mapping : 'urgentLevel'}, {name : 'materials',mapping : 'materials'}, {name : 'minApplyAmount',mapping : 'minApplyAmount'}, {name : 'expressInvoice',mapping : 'expressInvoice'}, //是否快速发货 @@ -547,6 +545,7 @@ {name : 'minApplyAmount',mapping : 'minApplyAmount'}, {name : 'maxApplyAmount',mapping : 'maxApplyAmount'}, {name : 'urgentAmount',mapping : 'urgentAmount'}, + {name : 'urgentLevel',mapping : 'urgentLevel'}, {name : 'unit',mapping : 'unit'}, {name : 'price',mapping : 'price'}, {name : 'amount',mapping : 'amount'}] @@ -560,6 +559,7 @@ {name : 'name'}, {name : 'count'}, {name : 'urgentAmount'}, + {name : 'urgentLevel'}, {name : 'minApplyAmount'}, {name : 'maxApplyAmount'}, {name : 'diposable'}, @@ -587,6 +587,7 @@ {name : 'name'}, {name : 'count'}, {name : 'urgentAmount'}, + {name : 'urgentLevel'}, {name : 'price'}, {name : 'status'}, {name : 'hasReturnedNum'}, @@ -653,6 +654,7 @@ {name : 'materials'}, //消毒物品的材料信息 {name : 'materialDefinitionId'},//材料id {name : 'urgentAmount'}, //加急数量 + {name : 'urgentLevel'}, //加急级别 {name : 'children'} //消毒物品的材料信息 ]}); @@ -785,12 +787,15 @@ * @param count 数量 * @param price 价格 * @param urgentAmount 加急数量 + * @param urgentLevel 加急级别 + * @param urgentLevelId 加急级别id * @param para 追加的参数,是一个对象,里面可以有多种属性,方便以后扩展用(目前只有{behavior:操作类型(添加或者提交或者绑定物品),transferScale:中包装单位装换单位系数,middlePackageUnit:申领单位(原来叫中包装单位)}) */ -function updateNode(treegrid, foundNode, count, price, urgentAmount, para){ +function updateNode(treegrid, foundNode, count, price, urgentAmount,urgentLevel,urgentLevelId,para){ var targetNode = foundNode; targetNode.set('urgentAmount', urgentAmount); - + targetNode.set('urgentLevel', urgentLevel); + targetNode.set('urgentLevelId', urgentLevelId); // 如果节点是消毒物品,并且不是整包清洗,则更新其子节点(材料)的数量 if (!targetNode.get('leaf') && targetNode.get('isApplyEntireTousse') != '是'){ //在父节点被子节点覆盖前先把urgentAmount清空 @@ -799,6 +804,8 @@ targetNode = childNodes[0]; //保留父节点的值,清空子节点的值 targetNode.set('urgentAmount', ''); + targetNode.set('urgentLevel', ''); + targetNode.set('urgentLevelId', ''); //传入的价格对拆包的消毒物品来说,是材料的平均价,而这里计算的是材料节点的总价,需要用材料节点的价格 price = targetNode.get('price'); } @@ -858,19 +865,21 @@ * @param minApplyAmount 最小申请数量(只用于一次性物品) * @param maxApplyAmount 最大申请数量(只用于一次性物品) * @param urgentAmount 加急数量 + * @param urgentLevel 加急级别 + * @param urgentLevelId 加急级别id * @param para 追加的参数,是一个对象,里面可以有多种属性,方便以后扩展用(目前只有{behavior:操作类型(添加或者提交或者绑定物品),transferScale:中包装单位装换单位系数,middlePackageUnit:申领单位(原来叫中包装单位)}) * @param expressInvoice 是否快速发货 */ function addItems(tousseDefinitionID,name,count,diposable,isApplyEntireTousse,originalPrice,price,externalCode, - storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,para,expressInvoice){ + storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,urgentLevel,urgentLevelId,para,expressInvoice){ //1、处理从模板里面找到的(因为前面过滤已经添加的物品,所以剩下的只是模板的物品了) var foundNode = null; var needToCheckNode = {tousseDefinitionID : tousseDefinitionID,name : name,tousseType : tousseType}; var goodsAppDomObj = GoodsAppHelper.getGoodsAppDomObj(); if('是' == diposable){ foundNode = goodsAppDomObj.getExitsNodeByNode(rightTemplateStore, needToCheckNode); if (foundNode != null){ - updateNode('diposableTreeGrid', foundNode, count, price, urgentAmount, para); + updateNode('diposableTreeGrid', foundNode, count, price, urgentAmount,urgentLevel,urgentLevelId, para); } }else{ var tempGrid = 'tousseTreeGrid'; @@ -881,7 +890,7 @@ } if (foundNode != null){ - updateNode(tempGrid, foundNode, count, price,urgentAmount); + updateNode(tempGrid, foundNode, count, price,urgentAmount,urgentLevel,urgentLevelId); if(tousseType == tousseType_disinfectGoods){ updateDisinfectParentNode(foundNode, para); } @@ -909,6 +918,8 @@ name : name, count : pacakgeCount, urgentAmount : urgentAmount, + urgentLevel : urgentLevel, + urgentLevelId:urgentLevelId, diposable : diposable, tousseType : tousseType, isApplyEntireTousse : isApplyEntireTousse, @@ -954,6 +965,8 @@ minApplyAmount : minApplyAmount, maxApplyAmount : maxApplyAmount, urgentAmount : urgentAmount, + urgentLevel : urgentLevel, + urgentLevelId:urgentLevelId, totalPrice: isUndefinedOrNullOrEmpty(transferScale) ? roundValue(price*count) : roundValue(price*count*transferScale), packageSpec:packageSpec }); @@ -973,7 +986,7 @@ tempGrid = 'diposableTreeGrid'; } - updateNode(tempGrid, appendNode, count, price, urgentAmount); + updateNode(tempGrid, appendNode, count, price, urgentAmount,urgentLevel,urgentLevelId); if(tousseType == tousseType_disinfectGoods){ updateDisinfectParentNode(appendNode, para); } @@ -1020,6 +1033,8 @@ var tousseType = top.Ext4.getCmp('tousseType').getValue(); var materials = top.Ext4.getCmp('materials').getValue(); var urgentAmount = top.Ext4.getCmp('urgentAmount').getValue(); + var urgentLevel = top.Ext4.getCmp('urgentLevel').getRawValue(); + var urgentLevelId = top.Ext4.getCmp('urgentLevel').getValue(); var transferScale = top.Ext4.getCmp('transferScale').getValue(); var middlePackageUnit = top.Ext4.getCmp('middlePackageUnit').getValue(); @@ -1061,6 +1076,12 @@ top.Ext4.getCmp('count1').setValue(""); top.Ext4.getCmp('count1').focus(); return false; + }else if(sstsConfig.enableUrgentFunction && !Ext4.isEmpty(urgentAmount) && Ext4.isEmpty(urgentLevel)){ + showResult("加急级别不能为空!"); + return false; + }else if(sstsConfig.enableUrgentFunction && !Ext4.isEmpty(urgentLevel) && Ext4.isEmpty(urgentAmount)){ + showResult("加急数量不能为空!"); + return false; }else{ //库存数量(说明:如果storageUseStorageSubtractWaitDeliver配置成true则:库存=现有的库存-待发货数量) var storageAmount = sstsConfig.storageUseStorageSubtractWaitDeliver ? findStorageByDisposeIdAndHandleDepartCode(id) : parseInt(top.Ext4.getCmp('diposableGoodsAmount').getValue(),10); @@ -1085,16 +1106,16 @@ if (btn != 'yes') { return false; }else{ - addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,originalPrice,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,para,expressInvoice); + addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,originalPrice,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,urgentLevel,urgentLevelId,para,expressInvoice); afterAddItem(true); } }); }else{ - addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,originalPrice,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,para,expressInvoice); + addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,originalPrice,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,urgentLevel,urgentLevelId,para,expressInvoice); afterAddItem(true); } }else{ - addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,originalPrice,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,para,expressInvoice); + addItems(id,name,count,isDiposableGoods,isApplyEntireTousse,originalPrice,price,externalCode,storageAmount,tousseType,materials,unit,packageSpec,minApplyAmount,maxApplyAmount,urgentAmount,urgentLevel,urgentLevelId,para,expressInvoice); afterAddItem(true); } } @@ -1122,6 +1143,7 @@ goodsBindHandler.handleBindGood(); } top.Ext4.getCmp('urgentAmount').setValue(''); + top.Ext4.getCmp('urgentLevel').setValue(''); top.Ext4.getCmp('diposableGoodsAmount').setValue(''); top.Ext4.getCmp('minApplyAmount').setValue(''); top.Ext4.getCmp('maxApplyAmount').setValue(''); @@ -1273,6 +1295,8 @@ obj.tousseType = node.get("tousseType"); obj.externalCode = node.get("externalCode"); obj.urgentAmount = node.get("urgentAmount"); + obj.urgentLevel = node.get("urgentLevel"); + obj.urgentLevelId = node.get("urgentLevelId"); obj.storage = node.get("storage"); obj.transferScale = node.get("transferScale"); obj.minUnit = node.get("minUnit"); @@ -1317,6 +1341,7 @@ tr += "
" + v + "
"; - }*/ - return "" + v + "
"; + var urgentAmountColor = ""; + if(sstsConfig.enableUrgentFunction){ + if(record.get("leaf")){//子级 + var colorCode = record.get("urgentLevelObj").colorCode; + if(colorCode != ""){//有加急的 + urgentAmountColor = "" + v + "
"; + } + }else{//父级 + var parentColor = record.get("colorCode"); + urgentAmountColor = "" +v + "
"; + } + } + return urgentAmountColor; }else{ return null; } } },{ - header: '加急等级', + header: '加急级别', width: 60, align: 'center', sortable: true, - dataIndex: 'urgentLevel' + hidden:!sstsConfig.enableUrgentFunction, + dataIndex: 'urgentLevel', + renderer: function(v,p,record,rowIndex, columnIndex, store,view){ + if(sstsConfig.enableUrgentFunction){ + var urgentLevel = ""; + if(record.get("leaf")){ + var colorCode = record.get("urgentLevelObj").colorCode; + var name = record.get("urgentLevelObj").name; + if(colorCode != ""){ + urgentLevel = "" +name + "
"; + } + }else{ + var parentColor = record.get("colorCode"); + var urgentLevelName = record.get("urgentLevelName"); + urgentLevel = "" + urgentLevelName + "
"; + } + return urgentLevel; + }else{ + return null; + } + } },{ header: '清洗篮筐', width : 110, @@ -2392,7 +2424,7 @@ taskStatus,department,tousseType, packageType, packageSize, sterilingMethod,recyclingTime,isTraceable,isPrint,isReview,errors, damages,replenishMaterils,taskType,supplierName,haveIDCard,urgentAmount,idCardBarcode, - allowModifyPackageType,errorRemark,damageRemark,urgentLevel,serialNum,recyclingItemRemark,cleaned,note){ + allowModifyPackageType,errorRemark,damageRemark,urgentLevel,serialNum,recyclingItemRemark,cleaned,note,urgentLevelObj,colorCode,urgentLevelName){ var leaf = false; if(taskId != ''){ leaf = true; @@ -2434,7 +2466,10 @@ serialNumber:serialNum, recyclingItemRemark:recyclingItemRemark, cleaned: cleaned, - note: note + note: note, + urgentLevelObj:urgentLevelObj, + colorCode:colorCode, + urgentLevelName:urgentLevelName }); if(!leaf){ node.set("checked" ,false); @@ -3961,6 +3996,7 @@ showResult('该篮筐在'+taskGroup+'内无装配任务!' , null , sstsConfig.messagePauseTimeOnPackingPage); } var speakBasket = new SpeakBasket(); + for(var n = 0;n < nLength; n++){ var taskVO = taskList[n]; var td_id = taskVO.tousseID; @@ -3997,7 +4033,7 @@ parentNode = addTaskNode('',td_id,'',videoNames,tousseName,0,'','','', '','',tousseType, packageType, "", sterilingMethod,'',isTraceable,isPrint,isReview,'','',rMaterils,'','',haveIDCard,urgentAmount, - taskVO.idCardBarcode,taskVO.allowModifyPackageType,taskVO.errorRemark,taskVO.damageRemark,taskVO.urgentLevel,'','',taskVO.cleaned,taskVO.note); + taskVO.idCardBarcode,taskVO.allowModifyPackageType,taskVO.errorRemark,taskVO.damageRemark,taskVO.urgentLevel,'','',taskVO.cleaned,taskVO.note,'',taskVO.colorCode,taskVO.urgentLevelName); newParentNode = true; }else{ var uamountStr = parentNode.get('urgentAmount'); @@ -4070,7 +4106,7 @@ var childNode = addTaskNode(taskId,td_id,invoicePlanId,videoNames,tousseName,amount,washTime,basketBarcode,basketName, taskStatus,department,tousseType, packageType,packageSize,sterilingMethod,dateTime,isTraceable,isPrint,isReview, errors,damages,replenishMaterils,taskType,supplierName,task.haveIDCard,childUrgentAmount,task.idCardBarcode, - task.allowModifyPackageType,task.errorRemark,task.damageRemark,task.urgentLevel,task.serialNumber,task.recyclingItemRemark,task.cleaned,task.note); + task.allowModifyPackageType,task.errorRemark,task.damageRemark,task.urgentLevel,task.serialNumber,task.recyclingItemRemark,task.cleaned,task.note,task.urgentLevelObj,task.colorCode,task.urgentLevelName); parentNode.appendChild(childNode); var pNewAmount = parentNode.get('amount') + amount; parentNode.set('amount',pNewAmount);