Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java =================================================================== diff -u -r19824 -r20716 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 19824) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 20716) @@ -21,6 +21,7 @@ import org.apache.commons.collections4.Transformer; import org.apache.commons.lang3.StringUtils; + import com.fasterxml.jackson.databind.ObjectMapper; import com.forgon.component.grid.GridManager; import com.forgon.databaseadapter.service.DateQueryAdapter; @@ -134,7 +135,7 @@ @SuppressWarnings("unchecked") public String findTousseInstanceTableList( Map> parameterMap) { - + Map sqlWhereParamMap = gridManager .getParamFromView(parameterMap); StringBuilder sqlBuilder = new StringBuilder(" WHERE 1=1 "); @@ -363,8 +364,13 @@ sqlBuilder.append(" AND (po.unTraceableTousse = 0 or po.tousseFixedBarcode = 0) "); - sqlBuilder.append(" AND po.comboTousseInstanceId is null "); //聚合包里面的包实例 不显示 + sqlBuilder.append(" AND po.comboTousseInstanceId is null "); //聚合包里面的包实例 不显示 + String isExamine = sqlWhereParamMap.get("isExamine"); + //对应器械包干预审核时间页面,不显示审核时间为空的数据项 + if(null!=isExamine){ + sqlBuilder.append(" AND po.reviewTime is not null "); + } String sql = sqlBuilder.toString(); if(StringUtils.isNotBlank(orderStr)){ orderStr += ", id desc "; @@ -893,4 +899,5 @@ } return obj.toString(); } + } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r20391 -r20716 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 20391) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 20716) @@ -2948,4 +2948,13 @@ } } } + + @Override + public void updateTousseExamineDate(String ids[], Date examineDate) { + for (String id : ids) { + TousseInstance tousseInstance = get(id); + tousseInstance.setReviewTime(examineDate); + saveOrUpdate(tousseInstance); + } + } } Index: ssts-web/src/main/webapp/disinfectsystem/interfere/interfereExamineView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/interfere/interfereExamineView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/interfere/interfereExamineView.jsp (revision 20716) @@ -0,0 +1,120 @@ +<%@ page contentType="text/html; charset=UTF-8"%> +<%@ include file="/common/taglibs.jsp"%> +<%@page import="com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager"%> +<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig,com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance"%> + + + + <%@ include file="/common/includeExtJsAndCss.jsp"%> +<%@ include file="/common/includeExtJs4_2.jsp"%> +<% + SupplyRoomConfigManager supplyRoomConfigManager = (SupplyRoomConfigManager)SpringBeanManger.getBean("supplyRoomConfigManager"); + LoginUserData loginUser = AcegiHelper.getLoginUser(); + SupplyRoomConfig syscfg = supplyRoomConfigManager.getSystemParamsObj(); + + request.setAttribute("hospitalName", loginUser.getHospitalName()); + request.setAttribute("foreignDefaultLabelpaper", syscfg.getBarcodePaperType()); +%> + + + + + + + + + + + + + + + + + + + +<%@ include file="/disinfectsystem/print/print.jsp"%> + + + + + + + + + + +器械包实体信息 + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + +
+ + \ No newline at end of file Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r20391 -r20716 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 20391) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 20716) @@ -627,5 +627,13 @@ * @param mode 入库或出库,对应增加或减少 */ public void adjustTousseGoodsStockByTousseInstanceList(String orgUnitCode , List tousseInstanceList, String mode); + + /** + * 更新包的审核时间. + * @param ids ID数组 + * @param examineDate 审核日期 + * + */ + public void updateTousseExamineDate(String ids[], Date examineDate); } Index: ssts-web/src/main/webapp/disinfectsystem/interfere/interfereExamineView.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/interfere/interfereExamineView.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/interfere/interfereExamineView.js (revision 20716) @@ -0,0 +1,730 @@ +var grid; +var currentSelectedTousseName; //物品名称选择下拉框的当前所选中的值 +var barcodes = ''; +var singleScanLabel = '单次扫描'; +var repeatScanLabel = '多次扫描'; + +var problemWin = null; +var formPanel = null; +function cancel() { + problemWin.close(); +} + +function addProblemReport(){ + showWindow(); + //top.Ext.getCmp('answerArea').disable(); +} +function showWindow(){ + formPanel = new top.Ext.FormPanel({ + id : 'addProblemForm', + frame : true, + labelSeparator : ':', + bodyStyle : 'padding:5px 5px 0px 5px', + width : document.body.clientWidth*0.7, + height : document.body.clientWidth*0.1, + labelAlign : 'right', + buttonAlign : 'center', + autoScroll : true, + items : [{ + layout : 'column', + xtype:"fieldset", //定义类别为fieldset + title:"审核时间修改", + autoHeight:true, + items : [{ + xtype : 'hidden', + name : 'id', + id : 'id' + },{ + xtype : 'hidden', + name : 'orgUnitCoding', + id : 'orgUnitCoding' + //value : $Id('orgUnitCoding').value + },{ + xtype : 'hidden', + name : 'actionType', + id : 'actionType' + }, { + layout : 'form', + columnWidth : .5, + labelWidth : 90, + items : [{ + xtype : 'datefieldWithMin', + fieldLabel : '审核时间', + id : 'reportTime', + name : 'reportTime', + //value : new Date(), + editable : false, + readOnly : true, + format : 'Y-m-d H:i', + allowBlank : false, + anchor : '95%', + listeners : { + render : function() { + setStartDate(top.Ext, 'yyyy/MM/dd HH:mm', 'reportTime'); //(设置报告日期,取服务器时间 cjr) + } + } + },{ + xtype : 'hidden', + name : 'datetime', + id : 'datetime' + //value : $Id('reportTime').value + },{ + xtype : 'hidden', + name : 'answer_Time', + id : 'answer_Time' + //value : $Id('today').value + },{ + xtype : 'hidden', + name : 'status', + id : 'status' + }] + }] + }], + buttons : [{ + id : 'saveBtn', + text : '保存', + handler : function(){ + var selectionModel = grid.getSelectionModel(); + var selections = []; + selectionModel.each(function(row){ + selections.push(row.data.id); + }); + var ids = selections.join(','); + var examineDate = formPanel.getForm().findField("reportTime").getValue(); + updateExamineDate(ids, examineDate); + } + }, { + text : '取消', + id : 'saveAndNewBtn', + handler : cancel + }] + }); + problemWin = new top.Ext.Window({ + id : 'problemWin', + layout : 'fit', + title : '问题反馈信息', + width : 700, + modal : true, + autoHeight : true, + border : false, + plain : true, + items : [ formPanel ] + }); + problemWin.show(); +} +function initQueryValueAndReload() { + + $Id('parm_s_sterilizationDate').value = $Id('sterilizationDate').value; //灭菌开始时间 + $Id('parm_s_sterilizationEndDate').value = $Id('sterilizationEndDate').value; //灭菌结束时间 + $Id('parm_s_sterilizerName').value = $Id('sterilizerName').value; //灭菌炉名称 + $Id('parm_s_frequency').value = $Id('frequency').value; //炉次 + $Id('parm_s_tousseGroupName').value = $Id('tousseGroupName').value; //器械包分组 + $Id('parm_s_idNumberSearch').value = $Id('idNumberSearch').value; + //如果当前所选中值与下拉框的值相同时,则采用精确匹配.否则采用模糊匹配 + if(currentSelectedTousseName == Ext.getCmp('tousseName').getRawValue()){ + $Id('parm_s_tousseName').value = Ext.getCmp('tousseName').getRawValue(); + }else{ + $Id('parm_s_tousseName').value = ''; + $Id('parm_s_tousseNameFuzzy').value = Ext.getCmp('tousseName').getRawValue(); + } + + + var barcode = $Id('barcodeSearch').value; //条码字符串 + //var barcodeReg = /(\d){9}/; + //if (barcode.length == 9 && barcodeReg.test(barcode)) { //条码字符串为9数字,扫描码才有意义,否则清空 + if (barcode) { //条码字符串为9数字,扫描码才有意义,否则清空 + if (repeatScanLabel == $Id('scanPattern').value) { //启用多次扫描模式 + if (barcodes) { + barcodes += ';' + barcode ; + } else { //启用多次扫描模式的第一次扫描 + barcodes = barcode; + } + } else { + barcodes = ''; + } + } else { + barcode = ''; + barcodes = ''; + } + + $Id('parm_s_barcodeSearch').value = barcode; + //$Id('parm_s_barcodes').value = (barcodes.length == 9 ? '' : barcodes); //barcodes长度为9说明用户启用多次扫描模式,并且是第一次扫描 + $Id('parm_s_barcodes').value = (barcodes); + + Ext.getCmp('barcodeSearch').setValue(''); + grid.getStore().lastOptions.params['start'] = 0; + grid.dwrReload(); + +} + +/** + * 显示申请单终止原因 + */ +function showSelectTousseDiscardCauseWin(){ + return openModalWindow(WWWROOT+"/disinfectsystem/recyclingApplication/selectTousseDiscardCause.jsp?time="+new Date(), "选择回收员", "760", "400"); +} + +function compareDate(DateOne,DateTwo) { + var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ("-")); + var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ("-")+1); + var OneYear = DateOne.substring(0,DateOne.indexOf ("-")); + var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ("-")); + var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ("-")+1); + var TwoYear = DateTwo.substring(0,DateTwo.indexOf ("-")); + if (Date.parse(OneMonth+"/"+OneDay+"/"+OneYear) >= Date.parse(TwoMonth+"/"+TwoDay+"/"+TwoYear)) { + return true;//dataone>datetwo + } else { + return false; + } +} + +//验证器械包预警期、失效期 +function checkDate(v, p, record,rowIndex,columnIndex,store){ + var validUntil = record.data.validUntil; + var warningUntil = record.data.warningUntil; + var date = new Date(); + var currentDate = ""; + currentDate = date.getFullYear()+"-"; + currentDate += (date.getMonth()+1)+"-"; + currentDate += date.getDate(); + var b = compareDate(myDateFormat(warningUntil,p,record),currentDate);//预警期 + var f = compareDate(myDateFormat(validUntil,p,record),currentDate);//失效期 + var color = ""; + if(!b){ + color = "yellow"; + } + if(!f){ + color = "#FF7575"; + } + if(v != null){ + return "

" + myDateFormat(v) + "

"; + }else{ + return ""; + } +} +/** + * 渲染“状态”属性时触发的函数(响应中大附一提出的需求,使用标识牌的回收的,需要把上一个器械包实例的状态从“已回收”回滚到上一个状态,这里只是显示效果回滚了,但是数据库保存的还是“已回收”) + * @param v + * @param p + * @param record + * @param rowIndex + * @param columnIndex + * @param store + */ +function statusFun(v, p, record, rowIndex, columnIndex, store){ + if (sstsConfig.enableRecyclingStatusOfTousseInstance) { + var tousseInstance = record.data; + var useRecord_id = tousseInstance.useRecord_id; + var signedUser = tousseInstance.signedUser; + var invoice_id = tousseInstance.invoice_id; + var tousseTransitionItemId = tousseInstance.tousseTransitionItemId; + + if (statusRecycled == v) { + if(tousseTransitionItemId){ + return statusPrerecycled; + }else if (useRecord_id) { + return statusUsed; + } else if (signedUser) { + return statusSigned; + } else if (invoice_id) { + return statusShipped; + } + } + } + return v; +} + +/** + * 渲染“回收状态”属性时触发的函数,(响应中大附一提出的需求,使用标识牌的回收的,需要把上一个器械包实例的回收状态设置成“已回收”) + * @param v + * @param p + * @param record + * @param rowIndex + * @param columnIndex + * @param store + */ +function recyclingStatusFun(v, p, record, rowIndex, columnIndex, store){ + if (sstsConfig.enableRecyclingStatusOfTousseInstance) { + var tousseInstance = record.data; + var status = tousseInstance.status; + if (statusRecycled == status) { + return statusRecycled; + } else { + return ''; + } + } +} + +function renderCallTousseInstanceInfoShowFun(v, p, record){ + var isComboTousse = (record.data['tousseDefinition.tousseType'] == '聚合包'); + return "" + record.data['showTousseName'] + ""; +} + +function nameAndFrequency(v, p, record){ + var name = record.data['sterilizerName']; + if(name!="" && (v!="" && v!=null)){ + return record.data['sterilizerName']+ ",第" + v+"炉"; + } + return ""; +} + + +/** + * 提交表单 + * 修改审核时间(可批量) + */ +function updateExamineDate(ids, examineDate){ + formPanel.getForm().submit( { + url : WWWROOT + '/disinfectSystem/tousseInstanceAction!updateExamineDate.do', + method : 'POST', + waitMsg : '正在保存数据,请稍候', + waitTitle : '提交表单', + params : {ids : ids , examineDate : Ext.util.Format.date(examineDate, 'Y-m-d H:i:s')}, + success : function(form, action) { + //var result = Ext.decode(action.response.responseText); + showResult("保存成功"); + problemWin.close(); + grid.dwrReload(); + }, + failure : function(form, action) { + showResult('failure = ' + action.failureType); + } + }); +} + + +Ext.onReady(function() { + var columns = new Array(); + columns.push( + {header : "器械包名称",width : 180,dataIndex : 'tousseDefinition.name',renderer : renderCallTousseInstanceInfoShowFun}, + {header : "科室",width : 80,dataIndex : 'depart'}, + {header : "条码",width : 70,dataIndex : 'barcode'}, + {header : "标识牌条码",width : 70,dataIndex : 'idCardInstanceBarcode'}, + {header : "状态",width : 80,dataIndex : 'status',renderer : statusFun}, + {header : "回收状态",width : 80,dataIndex : 'recyclingStatus',sortable: false,renderer : recyclingStatusFun, hidden : !sstsConfig.enableRecyclingStatusOfTousseInstance}, + {header : "使用次数",width : 70,dataIndex : 'useAmount',hidden : sstsConfig.disableIdCard}, + {header : "标识牌编号",width : 70,dataIndex : 'idNumber',hidden : sstsConfig.disableIdCard}, + {header : "位置",width : 80,dataIndex : 'locationForDisplay'}, + {header : "所属仓库",width : 80,dataIndex : 'wareHouseName'}, + + {header : "流转科室",width : 80,dataIndex : 'depart2'}, + {header : "流转位置",width : 80,dataIndex : 'location2'}, + {header : "流转状态",width : 80,dataIndex : 'status2'}, + + {header : "回收人",width : 80,dataIndex : 'recyclingUser',sortable: false}, + {header : "回收清点人",width : 80,dataIndex : 'recyclingOperator',sortable: false}, + {header : "清洗人",width : 60,dataIndex : 'washOperator',sortable: false}, + {header : "清洗时间",width : 125,dataIndex : 'washStartTime',sortable: false}, + {header : "失效日期",width : 80,dataIndex : 'validUntil',renderer : checkDate}, + {header : "预警日期",hidden : true,width : 80,dataIndex : 'warningUntil',renderer : myDateFormat}, + {header : "任务组",width : 100,dataIndex : 'taskGroup'}, + {header : "装配人",width : 60,dataIndex : 'operator',sortable: false}, + {header : "装配时间",width : 125,dataIndex : 'operationTime',renderer : myDateFormatBySecond}, + {header : "审核人",width : 60,dataIndex : 'reviewer',sortable: false}, + {header : "审核时间",width : 125,dataIndex : 'reviewTime',renderer : myDateFormatBySecond}, + {header : "包装类型",width : 70,dataIndex : 'packageType'}, + {header : "灭菌篮筐",width : 80,dataIndex : 'sterilizationBasket',sortable: false}, + {header : "灭菌员",width : 60,dataIndex : 'sterilizationUser',sortable: false}, + {header : "灭菌完成时间",width : 125,dataIndex : 'sterileEndTime',sortable: false,menuDisabled : true,renderer : myDateFormatBySecond}, + {header : "灭菌程序",width : 70,sortable: false,menuDisabled : true,dataIndex : 'sterilingType'}, + {header : "灭菌批号",width : 150,dataIndex : 'sterileFrequency',sortable: false,menuDisabled : true,renderer:nameAndFrequency}, + {header : "发货人",width : 60,dataIndex : 'invoiceSender',sortable: false,menuDisabled : true}, + {header : "发货时间",width : 125,dataIndex : 'invoiceSendTime',menuDisabled : false,renderer:myDateFormatBySecond,sortable: false}, + {header : "签收人",width : 60,dataIndex : 'signedUser', hidden:sstsConfig.notSignedItemsCanRegistUseRecord!=false, sortable: false,menuDisabled : true}, + {header : "签收时间",width : 125,dataIndex : 'signedDate', hidden:sstsConfig.notSignedItemsCanRegistUseRecord!=false, menuDisabled : false,renderer:myDateFormatBySecond,sortable: false}, + {header : "废弃时间",width : 125,dataIndex : 'wasteDate',menuDisabled : false,renderer:myDateFormatBySecond,sortable: false}, + {header : "废弃原因",width : 150,dataIndex : 'wasteReason',menuDisabled : false}, + {header : "废弃操作人",width : 70,dataIndex : 'operateUser',menuDisabled : false} + ); + + var readerDetail = [ + {name : 'id'}, + {name : 'showTousseName'}, + {name : 'tousseDefinition.name'}, + {name : 'tousseDefinition.tousseType'}, //器械包类型 + {name : 'barcode'}, + {name : 'depart'}, + {name : 'idCardInstanceBarcode'}, + {name : 'idCardUseAmount'}, + {name : 'taskGroup'}, + {name : 'operator'}, + {name : 'operationTime'}, + {name : 'status'}, + {name : 'recyclingStatus'}, + {name : 'useAmount'}, + {name : 'idNumber'}, + {name : 'useRecord_id'}, + {name : 'invoice_id'}, + {name : 'tousseTransitionItemId'}, + {name : 'sterilingType'}, + {name : 'validUntil'}, + {name : 'recyclingUser'}, + {name : 'recyclingOperator'}, + {name : 'washOperator'}, + {name : 'washStartTime'}, + {name : 'packageType'}, + {name : 'reviewTime'}, + {name : 'reviewer'}, + {name : 'invoiceSender'}, + {name : 'invoiceSendTime'}, + {name : 'signedUser'}, + {name : 'signedDate'}, + {name : 'locationForDisplay'}, + {name : 'wareHouseName'}, + {name : 'depart2'}, + {name : 'status2'}, + {name : 'location2'}, + {name : 'orgUnitName'}, + {name : 'warningUntil'}, + {name : 'wasteDate'}, + {name : 'wasteReason'}, + {name : 'operateUser'}, + {name : 'sterilizationUser'}, + {name : 'sterilizationBasket'}, + {name : 'sterileEndTime'}, + {name : 'sterileFrequency'}, + {name : 'sterilizerName'} + ]; + + var filters = new Ext.grid.GridFilters({ + filters : [ + {type : 'string',dataIndex : 'tousseDefinition.name'}, + {type : 'string',dataIndex : 'barcode'}, + {type : 'string',dataIndex : 'idCardInstanceBarcode'}, + {type : 'string',dataIndex : 'taskGroup'}, + {type : 'string',dataIndex : 'operator'}, + {type : 'date',dataIndex : 'operationTime'}, + {type : 'list',dataIndex : 'status',options : [statusPacked, statusReviewed, statusSterileding,statusSteriled, statusShipped,statusSigned, statusUsed,statusPrerecycled, statusDiscard, statusDisinfected,statusDelayConfirm],phpMode : true}, //增加一个已消毒的过滤条件(陈家儒改) + {type : 'string',dataIndex : 'sterilingType'}, + {type : 'numeric',dataIndex : 'useAmount'}, +// {type : 'string',dataIndex : 'idNumber'}, + {type : 'date',dataIndex : 'validUntil'}, + {type : 'date',dataIndex : 'reviewTime'}, + {type : 'string',dataIndex : 'packageType'}, + {type : 'string',dataIndex : 'recyclingUser'}, + {type : 'string',dataIndex : 'recyclingOperator'}, + {type : 'string',dataIndex : 'washOperator'}, + {type : 'string',dataIndex : 'reviewer'}, + {type : 'string',dataIndex : 'sterilizationBasket'}, + {type : 'string',dataIndex : 'locationForDisplay'}, + {type : 'string',dataIndex : 'orgUnitName'}, + {type : 'date',dataIndex : 'invoiceSendTime'} + ] + }); + var dt = new Date(); + var v = dt.getMonth()+1; + if(v<10){ + v = "0" + v; + } + + var form = new Ext.Panel({ + title : '器械包实体信息列表', + layout : 'table', + frame : true, + region : 'north', + border : false, + bodyBorder : false, + layoutConfig : {columns : 2}, + autoScroll : true, + height : fontSize == 12 ? 80 : 110, + // height : fontSize == 12 ? 88 : 130, + items : [{ + width : fontSize == 12 ? 840 : 980, + layout : 'column', + items:[{ + columnWidth : .25, + layout : 'form', + labelWidth : fontSize == 12 ? 70 : 90, + labelAlign:"right", + hidden:true, + items : [{ + xtype : 'combo', + id : 'scanPattern', + name : 'scanPattern', + valueField : 'scanPatternValue', + displayField : 'scanPatternValue', + anchor : '95%', + fieldLabel : '扫描模式', + mode : 'local', + readOnly : true, + value : singleScanLabel, + triggerAction : 'all', + forceSelection : true, + store : new Ext.data.SimpleStore({ + fields : ['scanPatternValue'], + data : [[singleScanLabel],[repeatScanLabel]] + }) + }] + },{ + columnWidth : .25, + layout : 'form', + labelWidth : fontSize == 12 ? 70 : 90, + labelAlign:"right", + items : [{ + xtype : 'textfield', + fieldLabel : '条码', + name : 'barcodeSearch', + id : 'barcodeSearch', + anchor : '95%', + listeners : { + specialkey : function(field, ee) { + if (ee.getKey() == Ext.EventObject.ENTER) { + initQueryValueAndReload(); + } + } + } + }] + },{ + columnWidth : .25, + layout : 'form', + labelWidth : fontSize == 12 ? 70 : 90, + labelAlign:"right", + items : [{ + xtype : 'textfield', + fieldLabel : '标识牌编号', + name : 'idNumberSearch', + id : 'idNumberSearch', + anchor : '95%', + listeners : { + specialkey : function(field, ee) { + if (ee.getKey() == Ext.EventObject.ENTER) { + initQueryValueAndReload(); + } + } + } + }] + },{ + columnWidth : .27, + layout : 'form', + hidden:true, + labelWidth : fontSize == 12 ? 81 : 110, + labelAlign:"right", + items : [{ + xtype : 'datefield', + fieldLabel : '灭菌开始日期', + name : 'sterilizationDate', + id : 'sterilizationDate', + readOnly : false, + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + editable : false, + format : 'Y-m-d', + anchor : '95%' + }] + },{ + columnWidth : .23, + layout : 'form', + labelWidth : fontSize == 12 ? 45 : 65, + labelAlign:"right", + hidden:true, + items : [{ + xtype : 'combo', + fieldLabel : '灭菌炉', + id : 'sterilizerName', + name : 'sterilizerName', + valueField : 'sterilizerName', + displayField : 'sterilizerName', + store : new Ext.data.SimpleStore({ + fields : [ 'sterilizerName' ], + url : WWWROOT + '/disinfectSystem/baseData/sterilizerAction!getAllSterilizer.do' + }), + triggerAction : 'all', + mode : 'remote', + forceSelection : true, + allowBlank : true, + editable : false, + anchor : '95%' + }] + },{ + columnWidth : .25, + layout : 'form', + labelWidth : fontSize == 12 ? 70 : 90, + labelAlign: "right", + hidden:true, + items : [{ + xtype : 'multiSelect', + id : 'tousseGroupName', + name : 'tousseGroupName', + valueField : 'tousseGroupName', + displayField : 'tousseGroupName', + allowBlank : true, + editable : false, + fieldLabel:'器械包分组', + triggerAction : 'all', + //--------------------// + store : new Ext.data.JsonStore({ + url : WWWROOT + '/disinfectSystem/baseData/tousseGroupAction!getAllTousseGroup.do', + fields : ['tousseGroupName'], + listeners : { + beforeload : function(_this, options) { + _this.baseParams.needAll = '是'; + } + } + }), + //---------------------------// + anchor : '95%' + }] + },{ + columnWidth : .25, + layout : 'form', + labelWidth : fontSize == 12 ? 70 : 90, + labelAlign:"right", + items : [{ + xtype : 'combo', + id : 'tousseName', + name : 'tousseName', + fieldLabel : '器械包名称', + queryParam : 'spell', + minChars : 0, + valueField : 'name', + displayField : 'displayName', + listWidth:300, + store : new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getAllTousseDefinitionData.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + totalProperty : 'totalCount', + root : 'data' + }, [ + {name : 'id',mapping : 'id'}, + {name : 'spelling',mapping : 'spelling'}, + {name : 'name',mapping : 'name'}, + {name : 'displayName',mapping : 'displayName'}, + {name : 'amount',mapping : 'amount'}] + ) + }), + forceSelection : false, + lazyInit : true, + triggerAction : 'all', + hideTrigger : true, + typeAhead : false, + anchor : '95%', + listeners : { + select : function(combo, record, index) { + combo.setValue(record.data.name); + //存储当前所选中的值 + currentSelectedTousseName = record.data.name; + } + } + }] + },{ + columnWidth : .27, + layout : 'form', + labelWidth : fontSize == 12 ? 81 : 110, + hidden:true, + labelAlign:"right", + items : [{ + xtype : 'datefield', + fieldLabel : '灭菌结束日期', + name : 'sterilizationEndDate', + id : 'sterilizationEndDate', + readOnly : false, + altFormats:'Y-m-d|Y-n-j|y-n-j|y-m-j|y-m-d|y-n-d|Y-n-d|Y-m-j|Ymd|Ynj|ynj|ymj|ymd|ynd|Ynd|Ymj|Y/m/d|Y/n/j|y/n/j|y/m/j|y/m/d|y/n/d|Y/n/d|Y/m/j', + editable : false, + format : 'Y-m-d', + anchor : '95%' + }] + },{ + columnWidth : .23, + layout : 'form', + labelAlign:"right", + labelWidth : fontSize == 12 ? 45 : 65, + hidden:true, + items : [{ + xtype : 'numberfield', + fieldLabel : '炉次', + name : 'frequency', + id : 'frequency', + anchor : '95%' + }] + }] + },{ + width : fontSize == 12 ? 120 : 150, + layout : 'column', + + items : [{ + columnWidth : .5, + layout :'form', + items : [{ + xtype : 'button', + text : '查询', + minWidth : 50, + iconCls : 'icon_search', + handler : function() { + initQueryValueAndReload(); + } + }] + },{ + columnWidth : .5, + layout :'form', + items : [{ + xtype : 'button', + text : '重置', + minWidth : 50, + iconCls : 'icon_set', + handler : function() { //查询条件全部重置 + $Id('barcodeSearch').value = ""; + $Id('sterilizationDate').value = ""; + $Id('sterilizationEndDate').value = ""; + $Id('sterilizerName').value = ""; + $Id('frequency').value = ""; + $Id('tousseName').value = ""; + $Id('tousseGroupName').value = ""; + $Id('scanPattern').value = singleScanLabel; + $Id('idNumberSearch').value = ""; + barcodes = ''; + } + }] + }] + }] + }); + + var tbar = [{ + text : '修改审核时间', + //hidden : SSTS_ProblemReport_Create, + iconCls : 'btn_ext_application_add', + handler : function() { + var selectionModel = grid.getSelectionModel(); + if(!selectionModel.hasSelection()){ + showResult("未选中任何记录!"); + return; + }else{ + addProblemReport(); + } + + } + }]; + + + grid = new Ext.ux.ForgonPageGrid({ + id : 'tousseInstanceGrid', + pageSize : 20, + renderTo : 'gridDiv', + showLoadMask : true, + tbar : tbar, + defaultSortField : 'operationTime', + defaultSortDirection : 'DESC', + isCheckboxSelectionModel : true, + rememberSelected : false, + isShowSearchField : false, + columns : columns, + plugins : filters, + frame : false, + border : false + }, + readerDetail, + TousseInstanceTableManager.findTousseInstanceTableList, + null + ); + + new Ext.Viewport({ + layout : 'border', + items : [form, { + region : 'center', + margins : '0 0 0 0', + layout : 'fit', + items : grid + }] + }); +}); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r19683 -r20716 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 19683) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 20716) @@ -1598,6 +1598,26 @@ success = false; } } - StrutsResponseUtils.output(success , success ? "保存成功" : "保存失败!"); + StrutsResponseUtils.output(success , success ? "保存成功" : "保存失败!"); } + + /** + * 器械包干预修改审核时间(批量) + * + */ + public void updateExamineDate(){ + JSONObject result = JSONUtil.buildJsonObject(false, "修改失败"); + String ids = StrutsParamUtils.getPraramValue("ids", null); + String examineDate = StrutsParamUtils.getPraramValue("examineDate", null); + if(StringTools.isNotBlank(ids) && StringTools.isNotBlank(examineDate)){ + try { + tousseInstanceManager.updateTousseExamineDate(ids.split(","), ForgonDateUtils.safelyParseDate(examineDate)); + result = JSONUtil.buildJsonObject(true, "修改成功"); + } catch (Exception e) { + e.printStackTrace(); + } + StrutsResponseUtils.output(result); + } + StrutsResponseUtils.output(result); + } } \ No newline at end of file Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r20710 -r20716 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 20710) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 20716) @@ -401,7 +401,8 @@ {hidden :SSTS_InterfereForeigntousseApplication_ViewMenu,text:"外来器械干预管理",href:WWWROOT+'/disinfectsystem/interfere/interfereForeignTousseApplicationView.jsp',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_InterfereOrgUnit_ViewMenu,text:"科室干预管理",href:WWWROOT+'/disinfectsystem/interfere/processSameOrgunitName/processSameOrgunitNameData.mhtml',hrefTarget:linkTarget,leaf:true}, {hidden :SSTS_InterfereTerminateInvoicePlan_ViewMenu,text:"批量终止申请单管理",href:WWWROOT+'/disinfectsystem/interfere/interfereTerminateInvoicePlanView.jsp',hrefTarget:linkTarget,leaf:true}, - {hidden :SSTS_InterfereUeserRecord_ViewMenu,text:"使用记录干预管理",href:WWWROOT+'/disinfectsystem/interfere/interfereUseRecordView.jsp',hrefTarget:linkTarget,leaf:true} + {hidden :SSTS_InterfereUeserRecord_ViewMenu,text:"使用记录干预管理",href:WWWROOT+'/disinfectsystem/interfere/interfereUseRecordView.jsp',hrefTarget:linkTarget,leaf:true}, + {hidden :SSTS_InterfereReviewRecord_ViewMenu,text:"审核器械包干预管理",href:WWWROOT+'/disinfectsystem/interfere/interfereExamineView.jsp',hrefTarget:linkTarget,leaf:true} ] },{ text:"消毒供应中心物品领用",