Index: forgon-core/src/main/java/com/forgon/Constants.java =================================================================== diff -u -r22373 -r22471 --- forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 22373) +++ forgon-core/src/main/java/com/forgon/Constants.java (.../Constants.java) (revision 22471) @@ -22,7 +22,7 @@ "4.4.0","4.4.1","4.4.2","4.4.3","4.4.4","4.4.5","4.4.6","4.4.7","4.4.8","4.4.9","4.5.0","4.5.1","4.5.2","4.5.3","4.5.4","4.5.5","4.5.6","4.5.7","4.5.8", "4.5.9","4.6.0","4.6.1","4.6.2","4.6.3","4.6.4","4.6.5","4.6.6","4.6.7","4.6.8","4.6.9","4.7.0","4.7.1","4.7.2","4.7.3","4.7.4","4.7.5","4.7.6","4.7.7", "4.7.8","4.7.9","4.8.0","4.8.1","4.8.2","4.8.3","4.8.4","4.8.5","4.8.6","4.8.7","4.8.8","4.8.9","4.9.0","4.9.1","4.9.2","4.9.3","4.9.4","4.9.5","4.9.6", - "4.9.7","4.9.8","4.9.9","4.9.10"};// 版本列表 + "4.9.7","4.9.8","4.9.9","4.9.10","4.9.11"};// 版本列表 public final static List SOFTWARE_VERSION_LIST = Arrays .asList(SOFTWARE_VERSION_ARRAY); public final static String SOFTWARE_VERSION = SOFTWARE_VERSION_ARRAY[SOFTWARE_VERSION_ARRAY.length - 1];// 软件最新版本 Index: ssts-web/src/main/webapp/disinfectsystem/config/cszxyy/config.js =================================================================== diff -u -r16115 -r22471 --- ssts-web/src/main/webapp/disinfectsystem/config/cszxyy/config.js (.../config.js) (revision 16115) +++ ssts-web/src/main/webapp/disinfectsystem/config/cszxyy/config.js (.../config.js) (revision 22471) @@ -16,6 +16,8 @@ hideEnterReviewListButton : true, // 已发货但是未签收的物品是否允许登记使用记录 notSignedItemsCanRegistUseRecord : false, + //在器械包信息列表中,是否显示签收项(签收人、签收时间) + showSignedItems : true, // 是否自动补全用户名 autoFillUserName:false, // 自动补全用户名的长度 Index: ssts-web/src/main/webapp/disinfectsystem/config/zsszyy/config.js =================================================================== diff -u -r19021 -r22471 --- ssts-web/src/main/webapp/disinfectsystem/config/zsszyy/config.js (.../config.js) (revision 19021) +++ ssts-web/src/main/webapp/disinfectsystem/config/zsszyy/config.js (.../config.js) (revision 22471) @@ -40,6 +40,8 @@ hideTreatmentNumOfUseRecord : true, // 已发货但是未签收的物品是否允许登记使用记录 notSignedItemsCanRegistUseRecord : false, + //在器械包信息列表中,是否显示签收项(签收人、签收时间) + showSignedItems : true, // 使用记录审核方式, 1: 审核和转换按钮分开; 2:审核和转换按钮合并为1个 useRecordAuditMode : 2, // 隐藏申请科室 Index: ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.jsp =================================================================== diff -u -r22222 -r22471 --- ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.jsp (.../tousseInstanceView.jsp) (revision 22222) +++ ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.jsp (.../tousseInstanceView.jsp) (revision 22471) @@ -104,26 +104,33 @@
- - + + - - - + + + + + + + + + + - + - + - + - + - +
Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java =================================================================== diff -u -r21804 -r22471 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 21804) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/basic/service/MaintainManagerImpl.java (.../MaintainManagerImpl.java) (revision 22471) @@ -76,6 +76,7 @@ import com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoringconfig.QualityMonitoringDefinition; import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsItem; +import com.forgon.disinfectsystem.entity.sterilizationTransition.SterilizationTransitionItem; import com.forgon.disinfectsystem.entity.sterilizationmanager.foreignproxydisinfection.ForeignProxyDisinfection; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecordPic; @@ -1056,6 +1057,9 @@ case "4.9.4_4.9.5": UpdateData_4_9_4_4_9_5_new(updateDataContext); break; + case "4.9.10_4.9.11": + UpdateData_4_9_10_4_9_11(updateDataContext); + break; } return false; } @@ -2069,6 +2073,70 @@ } dataUpdater.logInfo(msg); } + + // 器械包实例字段冗余--增加使用病人、使用医生、使用时间、灭菌交接人、灭菌接受人、灭菌交接时间(ZSYY-220) + private void UpdateData_4_9_10_4_9_11(UpdateDataContext updateDataContext) { + DataUpdater dataUpdater = updateDataContext.getDataUpdater(); + String msg = null; + msg = String + .format("已执行方法(%s.%s)!", MaintainManagerImpl.class.getName(), + "UpdateData_4_9_10_4_9_11()"); + //从灭菌交接记录里获取灭菌交接人、灭菌接受人、灭菌交接时间三个字段值,然后赋值给关联的器械包 + try { + int start = 0; + int pageSize = 100; + while(true){ + String sql = " where 1=1 "; + List sterilizationTransitionItemList = objectDao.findBySql(SterilizationTransitionItem.class.getSimpleName(), sql, start, pageSize, "po.id asc "); + if(CollectionUtils.isEmpty(sterilizationTransitionItemList)){ + break; + } + for (SterilizationTransitionItem sterilizationTransitionItem : sterilizationTransitionItemList) { + Long tousseInstanceId = sterilizationTransitionItem.getTousseInstanceId(); + if(!DatabaseUtil.isPoIdValid(tousseInstanceId)){ + continue; + } + TousseInstance tousseInstance = tousseInstanceManager.get(tousseInstanceId); + if(tousseInstance == null){ + continue; + } + tousseInstance.setHandover(sterilizationTransitionItem.getSterilizationTransition().getHandover()); + tousseInstance.setTakeover(sterilizationTransitionItem.getSterilizationTransition().getTakeover()); + tousseInstance.setTransitionTime(sterilizationTransitionItem.getSterilizationTransition().getTransitionTime()); + objectDao.update(tousseInstance); + } + objectDao.clearCache(); + start += pageSize; + } + + //从使用记录里获取使用病人、使用医生、使用时间三个字段值,然后赋值给关联的器械包 + start = 0; + while(true){ + String sql = " where po.useRecord_id is not null "; + List tousseInstanceList = objectDao.findBySql(TousseInstance.class.getSimpleName(), sql, start, pageSize, "po.id asc "); + if(CollectionUtils.isEmpty(tousseInstanceList)){ + break; + } + for (TousseInstance tousseInstance : tousseInstanceList) { + UseRecord useRecord = tousseInstance.getUseRecord(objectDao); + if(useRecord == null){ + continue; + } + tousseInstance.setPatientName(useRecord.getPatientName()); + tousseInstance.setDoctorName(useRecord.getDoctorName()); + tousseInstance.setUseTime(useRecord.getEnteringDate()); + objectDao.update(tousseInstance); + } + objectDao.clearCache(); + start += pageSize; + } + + } catch (Exception e) { + e.printStackTrace(); + } + dataUpdater.logInfo(msg); + } + @Override public void updateForeignTousseInfo() { //外来器械材料定义 Index: ssts-web/src/main/webapp/disinfectsystem/useRecord/tabs/tousseInstanceInfoTab.js =================================================================== diff -u -r22217 -r22471 --- ssts-web/src/main/webapp/disinfectsystem/useRecord/tabs/tousseInstanceInfoTab.js (.../tousseInstanceInfoTab.js) (revision 22217) +++ ssts-web/src/main/webapp/disinfectsystem/useRecord/tabs/tousseInstanceInfoTab.js (.../tousseInstanceInfoTab.js) (revision 22471) @@ -21,6 +21,11 @@ this.enableSurgicalInstrumentsManagement = sstsConfig.enableSurgicalInstrumentsManagement; /** + * 是否启用灭菌交接 + */ + this.enableSterilizationTransition = sstsConfig.enableSterilizationTransition; + + /** * 打开清洗记录的清洗参数 * * @param id 清洗记录的id @@ -372,7 +377,7 @@ }); } - //装配记录、审核记录、灭菌记录 + //装配记录、审核记录 tabsItemArr.push({ title: '装配记录', layout : 'fit', @@ -510,7 +515,70 @@ buttons : [this.cancelButton] }) ] - },{ + }); + + + //灭菌交接记录 + if(this.enableSterilizationTransition){ + tabsItemArr.push({ + title: '灭菌交接记录', + layout : 'fit', + items:[new top.Ext.FormPanel({ + frame : true, + bodyStyle : 'padding:5px 5px 0px 50px', + labelSeparator : ':', + labelAlign : 'right', + items : [{ + layout : 'column', + autoHeight : true, + items : [{ + layout : 'form', + columnWidth : .5, + cls:'edit-part2-labelwidth', + items : [{ + id : 'sterilizatonTransitionHandover', + name : 'sterilizatonTransitionHandover', + xtype : 'textfield', + fieldLabel : '灭菌交接人', + anchor : '100%', + readOnly : true, + cls : 'fieldReadOnlyNoRemove' + }] + }, { + layout : 'form', + columnWidth : .5, + cls:'edit-part2-labelwidth', + items : [{ + id : 'sterilizatonTransitionTakeover', + name : 'sterilizatonTransitionTakeover', + xtype : 'textfield', + fieldLabel : '灭菌接收人', + anchor : '100%', + readOnly : true, + cls : 'fieldReadOnlyNoRemove' + }] + }, { + layout : 'form', + columnWidth : .5, + cls:'edit-part2-labelwidth', + items : [{ + id : 'sterilizatonTransitionTime', + name : 'sterilizatonTransitionTime', + xtype : 'textfield', + fieldLabel : '灭菌交接时间', + anchor : '100%', + readOnly : true, + cls : 'fieldReadOnlyNoRemove' + }] + }] + }], + buttons : [this.cancelButton] + })] + }); + }; + + //灭菌记录 + tabsItemArr.push({ title: '灭菌记录', layout : 'fit', items:[new top.Ext.FormPanel({ @@ -1444,6 +1512,16 @@ } + //灭菌交接记录 + if(this.enableSterilizationTransition){ + top.Ext.getCmp('sterilizatonTransitionHandover').setValue(instance.handover); //灭菌交接记录_交接人 + top.Ext.getCmp('sterilizatonTransitionTakeover').setValue(instance.takeover); //灭菌交接记录_接收人 + if(instance.transitionTime != null){ + top.Ext.getCmp('sterilizatonTransitionTime').setValue(Ext.util.Format.date(new Date(instance.transitionTime.time),'Y-m-d H:i:s')); //灭菌交接记录_交接时间 + } + } + + //灭菌记录 top.Ext.getCmp('sterilizationRecordID').setValue(result.sterilizationRecordID); //灭菌记录_灭菌记录id(隐藏域) if(result.sterilizationRecordID != 0){ @@ -1494,6 +1572,9 @@ if (this.enableSurgicalInstrumentsManagement) { width += 80; } + if(this.enableSterilizationTransition){ //灭菌交接tab + width += 90; + } return width; } Index: ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.js =================================================================== diff -u -r22230 -r22471 --- ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.js (.../tousseInstanceView.js) (revision 22230) +++ ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.js (.../tousseInstanceView.js) (revision 22471) @@ -76,54 +76,10 @@ {name : 'name',mapping : 'name'} ] ) -// , -// listeners : { -// load : function(st) { -// var TopicRecord = Ext.data.Record.create([ -// {name : 'id',mapping : 'id'}, -// {name : 'departCode',mapping : 'departCode'}, -// {name : 'name',mapping : 'name'} -// ]); -// var myNewRecord = new TopicRecord({ -// id: 'all', -// departCode: '全部', -// name: '全部' -// }); -// st.insert(0,myNewRecord); -// } -// } }); + 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(preciseQuery == Ext.getCmp('queryMode').getRawValue()){ - $Id('parm_s_tousseName').value = Ext.getCmp('tousseName').getRawValue(); - $Id('parm_s_tousseNameFuzzy').value = ''; - }else{ - $Id('parm_s_tousseNameFuzzy').value = Ext.getCmp('tousseName').getRawValue(); - $Id('parm_s_tousseName').value = ''; - } - - $Id('parm_s_operationTime').value = $Id('operationTime').value; - $Id('parm_s_sterilizerGroup').value = $Id('sterilizerGroup').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数字,扫描码才有意义,否则清空 @@ -142,19 +98,37 @@ barcodes = ''; } - $Id('parm_s_barcodeSearch').value = barcode; - //$Id('parm_s_barcodes').value = (barcodes.length == 9 ? '' : barcodes); //barcodes长度为9说明用户启用多次扫描模式,并且是第一次扫描 - $Id('parm_s_barcodes').value = (barcodes); - - if( '' == $Id('department').value){ //科室 - $Id('parm_s_department').value = ''; + $Id('parm_s_barcodeSearch').value = barcode; //条码 + //$Id('parm_s_barcodes').value = (barcodes.length == 9 ? '' : barcodes); //barcodes长度为9说明用户启用多次扫描模式,并且是第一次扫描 + $Id('parm_s_barcodes').value = (barcodes); //多次扫描模式下的条码 + $Id('parm_s_idNumberSearch').value = $Id('idNumberSearch').value; //标识牌编号 + $Id('parm_s_sterilizationTransitionStart').value = $Id('sterilizationTransitionStart').value; //灭菌交接开始时间 + $Id('parm_s_sterilizationTransitionEnd').value = $Id('sterilizationTransitionEnd').value; //灭菌交接结束时间 + + $Id('parm_s_taskGroup').value = $Id('taskGroup').value; //装配任务组 + $Id('parm_s_operationStart').value = $Id('operationStart').value; //装配开始时间 + $Id('parm_s_operationEnd').value = $Id('operationEnd').value; //装配结束时间 + $Id('parm_s_invoiceStart').value = $Id('invoiceStart').value; //发货开始时间 + $Id('parm_s_invoiceEnd').value = $Id('invoiceEnd').value; //发货结束时间 + + $Id('parm_s_department').value = Ext.getCmp('department').getValue(); //科室编号 + $Id('parm_s_tousseStatus').value = $Id('tousseStatus').value; //器械包状态 + $Id('parm_s_tousseGroupName').value = $Id('tousseGroupName').value; //器械包分组 + if(preciseQuery == Ext.getCmp('queryMode').getRawValue()){ //器械包名称(根据查询模式设置不同) + $Id('parm_s_tousseName').value = Ext.getCmp('tousseName').getRawValue(); + $Id('parm_s_tousseNameFuzzy').value = ''; }else{ - $Id('parm_s_department').value = Ext.getCmp('department').getValue(); + $Id('parm_s_tousseNameFuzzy').value = Ext.getCmp('tousseName').getRawValue(); + $Id('parm_s_tousseName').value = ''; } - $Id('parm_s_tousseStatus').value = $Id('tousseStatus').value; //器械包状态 - $Id('parm_s_taskGroup').value = $Id('taskGroup').value; //装配任务组 + $Id('parm_s_sterilizationStart').value = $Id('sterilizationStart').value; //灭菌开始时间 + $Id('parm_s_sterilizationEnd').value = $Id('sterilizationEnd').value; //灭菌结束时间 + $Id('parm_s_sterilizerGroup').value = $Id('sterilizerGroup').value; //灭菌炉分组 + $Id('parm_s_sterilizerName').value = $Id('sterilizerName').value; //灭菌炉 + $Id('parm_s_frequency').value = $Id('frequency').value; //炉次 + Ext.getCmp('barcodeSearch').setValue(''); grid.getStore().lastOptions.params['start'] = 0; grid.dwrReload(); @@ -400,15 +374,21 @@ {header : "审核人",width : 60,dataIndex : 'reviewer',sortable: false}, {header : "审核时间",width : 125,dataIndex : 'reviewTime',renderer : myDateFormatBySecond}, {header : "包装类型",width : 70,dataIndex : 'packageType'}, + {header : "灭菌交接人",width : 80,dataIndex : 'handover',hidden:!sstsConfig.enableSterilizationTransition}, + {header : "灭菌接收人",width : 80,dataIndex : 'takeover',hidden:!sstsConfig.enableSterilizationTransition}, + {header : "灭菌交接时间",width : 125,dataIndex : 'transitionTime',hidden:!sstsConfig.enableSterilizationTransition,renderer : myDateFormatBySecond}, {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 : 125,dataIndex : 'sterileEndTime',menuDisabled : true,renderer : myDateFormatBySecond}, {header : "灭菌程序",width : 70,sortable: false,menuDisabled : true,dataIndex : 'sterilingType',renderer : showOrHideBySterilizationRecord}, {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 : 'invoiceSendTime',menuDisabled : false,renderer:myDateFormatBySecond,sortable: true}, + {header : "签收人",width : 60,dataIndex : 'signedUser', hidden:!sstsConfig.showSignedItems, sortable: false,menuDisabled : true}, + {header : "签收时间",width : 125,dataIndex : 'signedDate', hidden:!sstsConfig.showSignedItems, menuDisabled : false,renderer:myDateFormatBySecond,sortable: true}, + {header : "使用病人",width : 60,dataIndex : 'patientName',hidden:!sstsConfig.showUseRecordItems,sortable: false}, + {header : "使用医生",width : 60,dataIndex : 'doctorName',hidden:!sstsConfig.showUseRecordItems,sortable: false}, + {header : "使用时间",width : 125,dataIndex : 'useTime',hidden:!sstsConfig.showUseRecordItems,renderer : myDateFormatBySecond}, {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} @@ -464,7 +444,13 @@ // {name : 'validStatus'}, {name : 'sterilizerName'}, {name : 'sterilizationRecord_id'}, - {name : 'tousseDefinition.isSterile'} + {name : 'tousseDefinition.isSterile'}, + {name : 'handover'}, + {name : 'takeover'}, + {name : 'transitionTime'}, + {name : 'patientName'}, + {name : 'doctorName'}, + {name : 'useTime'} ]; var filters = new Ext.grid.GridFilters({ @@ -489,449 +475,583 @@ {type : 'string',dataIndex : 'sterilizationBasket'}, {type : 'string',dataIndex : 'locationForDisplay'}, {type : 'string',dataIndex : 'orgUnitName'}, - {type : 'date',dataIndex : 'invoiceSendTime'} + {type : 'date',dataIndex : 'invoiceSendTime'}, + {type : 'string',dataIndex : 'patientName'}, + {type : 'string',dataIndex : 'doctorName'}, + {type : 'date',dateIndex : 'useTime'}, + {type : 'string',dataIndex : 'handover'}, + {type : 'string',dataIndex : 'takeover'}, + {type : 'date',dataIndex : 'transitionTime'} ] }); 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 ? 115 : 150, - // height : fontSize == 12 ? 88 : 130, - items : [{ - width : fontSize == 12 ? 980 : 980, - layout : 'column', - items:[{ - columnWidth : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 81 : 110, - labelAlign:"right", - 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 : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 45 : 65, - labelAlign:"right", - items : [{ - xtype : 'textfield', - fieldLabel : '条码', - name : 'barcodeSearch', - id : 'barcodeSearch', - anchor : '95%', - listeners : { - specialkey : function(field, ee) { - if (ee.getKey() == Ext.EventObject.ENTER) { - initQueryValueAndReload(); + var labelWidth =( fontSize == 12 ? 86 : 101); + var datefieldWithMinWidth = ( fontSize == 12 ? 129 : 154); + + row1Array = [{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + items : { + xtype : 'combo', + id : 'scanPattern', + name : 'scanPattern', + valueField : 'scanPatternValue', + displayField : 'scanPatternValue', + anchor : '100%', + fieldLabel : '扫描模式', + mode : 'local', + readOnly : true, + value : singleScanLabel, + triggerAction : 'all', + forceSelection : true, + store : new Ext.data.SimpleStore({ + fields : ['scanPatternValue'], + data : [[singleScanLabel],[repeatScanLabel]] + }) + } + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + items : { + xtype : 'textfield', + fieldLabel : '条码', + name : 'barcodeSearch', + id : 'barcodeSearch', + anchor : '100%', + listeners : { + specialkey : function(field, ee) { + if (ee.getKey() == Ext.EventObject.ENTER) { + initQueryValueAndReload(); + } } } } - }] - },{ - columnWidth : .2, - 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 : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + items : { + xtype : 'textfield', + fieldLabel : '标识牌编号', + name : 'idNumberSearch', + id : 'idNumberSearch', + anchor : '100%', + listeners : { + specialkey : function(field, ee) { + if (ee.getKey() == Ext.EventObject.ENTER) { + initQueryValueAndReload(); + } } } } - }] - },{ - columnWidth : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 70 : 90, - labelAlign:"right", - items : [{ - xtype : 'multiSelect', - triggerAction : 'all', - fieldLabel : '装配任务组', - id : 'taskGroup', - name : 'taskGroup', - mode : 'remote', - listWidth : 133, - forceSelection : false, - allowBlank : true, - editable : false, - anchor : '95%', - valueField : 'id', - displayField : 'taskGroupName', - listeners : { - select : function(combo, record, index){ - onAllChoosedOrNot(combo, record,index,'taskGroupName'); - } - }, - store : taskGroupMultiSelectStore - }] - },{ - columnWidth : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 60 : 90, - labelAlign:"right", - items : [{ - xtype : 'datefieldWithMin', - fieldLabel : '装配时间', - name : 'operationTime', - id : 'operationTime', - width : 120, - altFormats:'Y-m-d H:i|Y-n-j H:i|y-n-j H:i|y-m-j H:i|y-m-d H:i|y-n-d H:i|Y-n-d H:i|Y-m-j H:i|Ymd H:i|Ynj H:i|ynj H:i|ymj H:i|ymd H:i|ynd H:i|Ynd H:i|Ymj H:i|Y/m/d H:i|Y/n/j H:i|y/n/j H:i|y/m/j H:i|y/m/d H:i|y/n/d H:i|Y/n/d H:i|Y/m/j|Y-m-d G:i|Y-n-j G:i|y-n-j G:i|y-m-j G:i|y-m-d G:i|y-n-d G:i|Y-n-d G:i|Y-m-j G:i|Ymd G:i|Ynj G:i|ynj G:i|ymj G:i|ymd G:i|ynd G:i|Ynd G:i|Ymj G:i|Y/m/d G:i|Y/n/j G:i|y/n/j G:i|y/m/j G:i|y/m/d G:i|y/n/d G:i|Y/n/d G:i|Y/m/j|G:i|H:i', - selectOnFocus :true, - format : 'Y-m-d H:i' - }] - }, - { - columnWidth : .2, - layout : 'form', - 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 : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 45 : 65, - labelAlign:"right", - 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 : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 70 : 90, - labelAlign: "right", - items : [{ - xtype : 'multiSelect', - id : 'tousseGroupName', - name : 'tousseGroupName', - valueField : 'tousseGroupName', - displayField : 'tousseGroupName', - allowBlank : true, - editable : false, - fieldLabel:'器械包分组', - listeners : { - select : function(combo, record, index){ - onAllChoosedOrNot(combo, record,index,'tousseGroupName'); - } - }, - triggerAction : 'all', - //--------------------// - store : new Ext.data.JsonStore({ - url : WWWROOT + '/disinfectSystem/baseData/tousseGroupAction!getAllTousseGroup.do', - fields : ['tousseGroupName'], + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + hidden : !sstsConfig.enableSterilizationTransition, + items : { + fieldLabel : '灭菌交接开始', + name : 'sterilizationTransitionStart', + id : 'sterilizationTransitionStart', + xtype : 'datefieldWithMin', + width : datefieldWithMinWidth, +// altFormats:'Y-m-d H:i|Y-n-j H:i|y-n-j H:i|y-m-j H:i|y-m-d H:i|y-n-d H:i|Y-n-d H:i|Y-m-j H:i|Ymd H:i|Ynj H:i|ynj H:i|ymj H:i|ymd H:i|ynd H:i|Ynd H:i|Ymj H:i|Y/m/d H:i|Y/n/j H:i|y/n/j H:i|y/m/j H:i|y/m/d H:i|y/n/d H:i|Y/n/d H:i|Y/m/j|Y-m-d G:i|Y-n-j G:i|y-n-j G:i|y-m-j G:i|y-m-d G:i|y-n-d G:i|Y-n-d G:i|Y-m-j G:i|Ymd G:i|Ynj G:i|ynj G:i|ymj G:i|ymd G:i|ynd G:i|Ynd G:i|Ymj G:i|Y/m/d G:i|Y/n/j G:i|y/n/j G:i|y/m/j G:i|y/m/d G:i|y/n/d G:i|Y/n/d G:i|Y/m/j|G:i|H:i', +// selectOnFocus :true, + readOnly : true, + theHours : 0, + theMinutes : 0, + format : 'Y-m-d H:i' + } + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + hidden : sstsConfig.enableSterilizationTransition, + items : { + hideLabel : true, + fieldClass : 'fieldReadOnlyNoRemoveAndTop', + xtype : 'field' + } + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + hidden : !sstsConfig.enableSterilizationTransition, + items : { + fieldLabel : '灭菌交接结束', + name : 'sterilizationTransitionEnd', + id : 'sterilizationTransitionEnd', + xtype : 'datefieldWithMin', + width : datefieldWithMinWidth, +// altFormats:'Y-m-d H:i|Y-n-j H:i|y-n-j H:i|y-m-j H:i|y-m-d H:i|y-n-d H:i|Y-n-d H:i|Y-m-j H:i|Ymd H:i|Ynj H:i|ynj H:i|ymj H:i|ymd H:i|ynd H:i|Ynd H:i|Ymj H:i|Y/m/d H:i|Y/n/j H:i|y/n/j H:i|y/m/j H:i|y/m/d H:i|y/n/d H:i|Y/n/d H:i|Y/m/j|Y-m-d G:i|Y-n-j G:i|y-n-j G:i|y-m-j G:i|y-m-d G:i|y-n-d G:i|Y-n-d G:i|Y-m-j G:i|Ymd G:i|Ynj G:i|ynj G:i|ymj G:i|ymd G:i|ynd G:i|Ynd G:i|Ymj G:i|Y/m/d G:i|Y/n/j G:i|y/n/j G:i|y/m/j G:i|y/m/d G:i|y/n/d G:i|Y/n/d G:i|Y/m/j|G:i|H:i', +// selectOnFocus :true, + readOnly : true, + theHours : 23, + theMinutes : 59, + format : 'Y-m-d H:i' + } + },{ + columnWidth : .2, + layout : 'form', + hidden : sstsConfig.enableSterilizationTransition, + items : { + hideLabel : true, + fieldClass : 'fieldReadOnlyNoRemoveAndTop', + xtype : 'field' + } + }]; + + row2Array = [{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + items : [{ + xtype : 'multiSelect', + triggerAction : 'all', + fieldLabel : '装配任务组', + id : 'taskGroup', + name : 'taskGroup', + mode : 'remote', + listWidth : 133, + forceSelection : false, + allowBlank : true, + editable : false, + anchor : '100%', + valueField : 'id', + displayField : 'taskGroupName', listeners : { - beforeload : function(_this, options) { - _this.baseParams.needAll = '是'; + select : function(combo, record, index){ + onAllChoosedOrNot(combo, record,index,'taskGroupName'); } - } - }), - //---------------------------// - anchor : '95%' - }] - },{ - columnWidth : .2, - 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' + }, + store : taskGroupMultiSelectStore + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + items : [{ + xtype : 'datefieldWithMin', + fieldLabel : '装配开始时间', + name : 'operationStart', + id : 'operationStart', + width : datefieldWithMinWidth, +// altFormats:'Y-m-d H:i|Y-n-j H:i|y-n-j H:i|y-m-j H:i|y-m-d H:i|y-n-d H:i|Y-n-d H:i|Y-m-j H:i|Ymd H:i|Ynj H:i|ynj H:i|ymj H:i|ymd H:i|ynd H:i|Ynd H:i|Ymj H:i|Y/m/d H:i|Y/n/j H:i|y/n/j H:i|y/m/j H:i|y/m/d H:i|y/n/d H:i|Y/n/d H:i|Y/m/j|Y-m-d G:i|Y-n-j G:i|y-n-j G:i|y-m-j G:i|y-m-d G:i|y-n-d G:i|Y-n-d G:i|Y-m-j G:i|Ymd G:i|Ynj G:i|ynj G:i|ymj G:i|ymd G:i|ynd G:i|Ynd G:i|Ymj G:i|Y/m/d G:i|Y/n/j G:i|y/n/j G:i|y/m/j G:i|y/m/d G:i|y/n/d G:i|Y/n/d G:i|Y/m/j|G:i|H:i', +// selectOnFocus :true, + readOnly : true, + theHours : 0, + theMinutes : 0, + format : 'Y-m-d H:i' + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + items : [{ + xtype : 'datefieldWithMin', + fieldLabel : '装配结束时间', + name : 'operationEnd', + id : 'operationEnd', + width : datefieldWithMinWidth, +// altFormats:'Y-m-d H:i|Y-n-j H:i|y-n-j H:i|y-m-j H:i|y-m-d H:i|y-n-d H:i|Y-n-d H:i|Y-m-j H:i|Ymd H:i|Ynj H:i|ynj H:i|ymj H:i|ymd H:i|ynd H:i|Ynd H:i|Ymj H:i|Y/m/d H:i|Y/n/j H:i|y/n/j H:i|y/m/j H:i|y/m/d H:i|y/n/d H:i|Y/n/d H:i|Y/m/j|Y-m-d G:i|Y-n-j G:i|y-n-j G:i|y-m-j G:i|y-m-d G:i|y-n-d G:i|Y-n-d G:i|Y-m-j G:i|Ymd G:i|Ynj G:i|ynj G:i|ymj G:i|ymd G:i|ynd G:i|Ynd G:i|Ymj G:i|Y/m/d G:i|Y/n/j G:i|y/n/j G:i|y/m/j G:i|y/m/d G:i|y/n/d G:i|Y/n/d G:i|Y/m/j|G:i|H:i', +// selectOnFocus :true, + readOnly : true, + theHours : 23, + theMinutes : 59, + format : 'Y-m-d H:i' + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + items : [{ + xtype : 'datefieldWithMin', + fieldLabel : '发货开始时间', + name : 'invoiceStart', + id : 'invoiceStart', + width : datefieldWithMinWidth, +// altFormats:'Y-m-d H:i|Y-n-j H:i|y-n-j H:i|y-m-j H:i|y-m-d H:i|y-n-d H:i|Y-n-d H:i|Y-m-j H:i|Ymd H:i|Ynj H:i|ynj H:i|ymj H:i|ymd H:i|ynd H:i|Ynd H:i|Ymj H:i|Y/m/d H:i|Y/n/j H:i|y/n/j H:i|y/m/j H:i|y/m/d H:i|y/n/d H:i|Y/n/d H:i|Y/m/j|Y-m-d G:i|Y-n-j G:i|y-n-j G:i|y-m-j G:i|y-m-d G:i|y-n-d G:i|Y-n-d G:i|Y-m-j G:i|Ymd G:i|Ynj G:i|ynj G:i|ymj G:i|ymd G:i|ynd G:i|Ynd G:i|Ymj G:i|Y/m/d G:i|Y/n/j G:i|y/n/j G:i|y/m/j G:i|y/m/d G:i|y/n/d G:i|Y/n/d G:i|Y/m/j|G:i|H:i', +// selectOnFocus :true, + readOnly : true, + theHours : 0, + theMinutes : 0, + format : 'Y-m-d H:i' + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + items : [{ + fieldLabel : '发货结束时间', + name : 'invoiceEnd', + id : 'invoiceEnd', + xtype : 'datefieldWithMin', + width : datefieldWithMinWidth, +// altFormats:'Y-m-d H:i|Y-n-j H:i|y-n-j H:i|y-m-j H:i|y-m-d H:i|y-n-d H:i|Y-n-d H:i|Y-m-j H:i|Ymd H:i|Ynj H:i|ynj H:i|ymj H:i|ymd H:i|ynd H:i|Ynd H:i|Ymj H:i|Y/m/d H:i|Y/n/j H:i|y/n/j H:i|y/m/j H:i|y/m/d H:i|y/n/d H:i|Y/n/d H:i|Y/m/j|Y-m-d G:i|Y-n-j G:i|y-n-j G:i|y-m-j G:i|y-m-d G:i|y-n-d G:i|Y-n-d G:i|Y-m-j G:i|Ymd G:i|Ynj G:i|ynj G:i|ymj G:i|ymd G:i|ynd G:i|Ynd G:i|Ymj G:i|Y/m/d G:i|Y/n/j G:i|y/n/j G:i|y/m/j G:i|y/m/d G:i|y/n/d G:i|Y/n/d G:i|Y/m/j|G:i|H:i', +// selectOnFocus :true, + readOnly : true, + theHours : 23, + theMinutes : 59, + format : 'Y-m-d H:i' + }] + }]; + row3Array = [{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign: "right", + items : [{ + xtype : 'combo', + fieldLabel : '科室', + id : 'department', + name : 'department', + valueField : 'departCode', + displayField : 'name', + store : departmentComboBoxStore, + triggerAction : 'all', + mode : 'remote', + forceSelection : true, + allowBlank : true, + editable : true, + queryParam : 'spell', + minChars : 0, + listWidth : 180, + hideTrigger : true, + anchor : '100%' + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign: "right", + items : [{ + xtype : 'multiSelect', + triggerAction : 'all', + fieldLabel : '器械包状态', + id : 'tousseStatus', + name : 'tousseStatus', + valueField : 'tousseStatus', + displayField : 'tousseStatus', + listeners : { + select : function(combo, record, index){ + onAllChoosedOrNot(combo, record,index,'tousseStatus'); + } + }, + store : new Ext.data.SimpleStore({ + fields : ['tousseStatus'], + data : [['全部'], + ['已装配'], + ['已审核'], + ['已灭菌'], + ['已发货'], + ['已签收'], + ['待发货'], + ['已使用'], + ['灭菌中'], + ['已消毒'], + ['已退货'], + ['预回收'], + ['已回收'], + ['已废弃'], + ['待召回'], + ['已召回'], + ['灭菌待确认']] }), - 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; + mode : 'local', + forceSelection : false, + allowBlank : true, + editable : false, + anchor : '100%' + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign: "right", + items : [{ + xtype : 'multiSelect', + id : 'tousseGroupName', + name : 'tousseGroupName', + valueField : 'tousseGroupName', + displayField : 'tousseGroupName', + allowBlank : true, + editable : false, + fieldLabel:'器械包分组', + listeners : { + select : function(combo, record, index){ + onAllChoosedOrNot(combo, record,index,'tousseGroupName'); + } + }, + 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 : '100%' + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + 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 : '100%', + listeners : { + select : function(combo, record, index) { + combo.setValue(record.data.name); + //存储当前所选中的值 + currentSelectedTousseName = record.data.name; + } } - } - }] - },{ - columnWidth : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 100 : 110, - labelAlign:"right", - items : [{ - xtype : 'combo', - id : 'queryMode', - name : 'queryMode', - valueField : 'queryMode', - displayField : 'queryMode', - anchor : '95%', - fieldLabel : '器械包查询模式', - mode : 'local', - readOnly : true, - value : preciseQuery, - triggerAction : 'all', - forceSelection : true, - store : new Ext.data.SimpleStore({ - fields : ['queryMode'], - data : [[preciseQuery],[fuzzyQuery]] - }) - }] - },{ - columnWidth : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 81 : 110, - 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 : .2, - layout : 'form', - labelAlign:"right", - labelWidth : fontSize == 12 ? 45 : 65, - items : [{ - xtype : 'numberfield', - fieldLabel : '炉次', - name : 'frequency', - id : 'frequency', - anchor : '95%' - }] - },{ - columnWidth : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 70 : 90, - labelAlign: "right", - items : [{ - xtype : 'combo', - fieldLabel : '科室', - id : 'department', - name : 'department', - valueField : 'departCode', - displayField : 'name', - store : departmentComboBoxStore, - triggerAction : 'all', - mode : 'remote', - forceSelection : true, - allowBlank : true, - editable : true, - queryParam : 'spell', - minChars : 0, - listWidth : 180, - hideTrigger : true, - anchor : '95%' - }] - },{ - columnWidth : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 70 : 90, - labelAlign: "right", - items : [{ - xtype : 'multiSelect', - triggerAction : 'all', - fieldLabel : '器械包状态', - id : 'tousseStatus', - name : 'tousseStatus', - valueField : 'tousseStatus', - displayField : 'tousseStatus', - listeners : { - select : function(combo, record, index){ - onAllChoosedOrNot(combo, record,index,'tousseStatus'); - } - }, - store : new Ext.data.SimpleStore({ - fields : ['tousseStatus'], - data : [['全部'], - ['已装配'], - ['已审核'], - ['已灭菌'], - ['已发货'], - ['已签收'], - ['待发货'], - ['已使用'], - ['灭菌中'], - ['已消毒'], - ['已退货'], - ['预回收'], - ['已回收'], - ['已废弃'], - ['待召回'], - ['已召回'], - ['灭菌待确认']] - }), - mode : 'local', - forceSelection : false, - allowBlank : true, - editable : false, - anchor : '95%' - }] - } - ,{ - columnWidth : .2, - layout : 'form', - labelWidth : fontSize == 12 ? 70 : 90, - labelAlign: "right", - items : [{ - xtype : 'combo', - fieldLabel : '灭菌炉分组', - id : 'sterilizerGroup', - name : 'sterilizerGroup', - valueField : 'sterilizerGroupName', - displayField : 'sterilizerGroupName', - store : sterilizerGroupStore, - triggerAction : 'all', - mode : 'remote', - forceSelection : true, - allowBlank : true, - queryParam : 'spell', - minChars : 0, - listWidth : 180, - anchor : '95%' - }] - } - ] - },{ - width : fontSize == 12 ? 120 : 150, - layout : 'column', - items : [{ - columnWidth : 1, - layout :'form', - items : [{ + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth+20, + labelAlign:"right", + items : [{ + xtype : 'combo', + id : 'queryMode', + name : 'queryMode', + valueField : 'queryMode', + displayField : 'queryMode', + anchor : '100%', + fieldLabel : '器械包查询模式', + mode : 'local', + readOnly : true, + value : preciseQuery, + triggerAction : 'all', + forceSelection : true, + store : new Ext.data.SimpleStore({ + fields : ['queryMode'], + data : [[preciseQuery],[fuzzyQuery]] + }) + }] + }]; + row4Array = [{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + items : [{ + fieldLabel : '灭菌开始时间', + name : 'sterilizationStart', + id : 'sterilizationStart', + xtype : 'datefieldWithMin', + width : datefieldWithMinWidth, +// altFormats:'Y-m-d H:i|Y-n-j H:i|y-n-j H:i|y-m-j H:i|y-m-d H:i|y-n-d H:i|Y-n-d H:i|Y-m-j H:i|Ymd H:i|Ynj H:i|ynj H:i|ymj H:i|ymd H:i|ynd H:i|Ynd H:i|Ymj H:i|Y/m/d H:i|Y/n/j H:i|y/n/j H:i|y/m/j H:i|y/m/d H:i|y/n/d H:i|Y/n/d H:i|Y/m/j|Y-m-d G:i|Y-n-j G:i|y-n-j G:i|y-m-j G:i|y-m-d G:i|y-n-d G:i|Y-n-d G:i|Y-m-j G:i|Ymd G:i|Ynj G:i|ynj G:i|ymj G:i|ymd G:i|ynd G:i|Ynd G:i|Ymj G:i|Y/m/d G:i|Y/n/j G:i|y/n/j G:i|y/m/j G:i|y/m/d G:i|y/n/d G:i|Y/n/d G:i|Y/m/j|G:i|H:i', +// selectOnFocus :true, + readOnly : true, + theHours : 0, + theMinutes : 0, + format : 'Y-m-d H:i' + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + items : [{ + fieldLabel : '灭菌结束时间', + name : 'sterilizationEnd', + id : 'sterilizationEnd', + xtype : 'datefieldWithMin', + width : datefieldWithMinWidth, +// altFormats:'Y-m-d H:i|Y-n-j H:i|y-n-j H:i|y-m-j H:i|y-m-d H:i|y-n-d H:i|Y-n-d H:i|Y-m-j H:i|Ymd H:i|Ynj H:i|ynj H:i|ymj H:i|ymd H:i|ynd H:i|Ynd H:i|Ymj H:i|Y/m/d H:i|Y/n/j H:i|y/n/j H:i|y/m/j H:i|y/m/d H:i|y/n/d H:i|Y/n/d H:i|Y/m/j|Y-m-d G:i|Y-n-j G:i|y-n-j G:i|y-m-j G:i|y-m-d G:i|y-n-d G:i|Y-n-d G:i|Y-m-j G:i|Ymd G:i|Ynj G:i|ynj G:i|ymj G:i|ymd G:i|ynd G:i|Ynd G:i|Ymj G:i|Y/m/d G:i|Y/n/j G:i|y/n/j G:i|y/m/j G:i|y/m/d G:i|y/n/d G:i|Y/n/d G:i|Y/m/j|G:i|H:i', +// selectOnFocus :true, + readOnly : true, + theHours : 23, + theMinutes : 59, + format : 'Y-m-d H:i' + }] + },{ + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign: "right", + items : [{ + xtype : 'combo', + fieldLabel : '灭菌炉分组', + id : 'sterilizerGroup', + name : 'sterilizerGroup', + valueField : 'sterilizerGroupName', + displayField : 'sterilizerGroupName', + store : sterilizerGroupStore, + triggerAction : 'all', + mode : 'remote', + forceSelection : true, + allowBlank : true, + queryParam : 'spell', + minChars : 0, + listWidth : 180, + anchor : '100%' + }] + }, + { + columnWidth : .2, + layout : 'form', + labelWidth : labelWidth, + labelAlign:"right", + 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?needFilter=false' + }), + triggerAction : 'all', + mode : 'remote', + forceSelection : true, + allowBlank : true, +// editable : false, + anchor : '100%' + }] + },{ + columnWidth : .2, + layout : 'form', + labelAlign:"right", + labelWidth : labelWidth, + items : [{ + xtype : 'numberfield', + fieldLabel : '炉次', + name : 'frequency', + id : 'frequency', + anchor : '100%' + }] + }]; + + var form = new Ext.Panel({ + title : '器械包查询条件', + layout : 'table', + frame : true, + buttonAlign : 'center', + region : 'north', +// collapsible : true, +// collapseFirst : true, +// paddings:'50 20 20 20', +// autoHeight : true, +// autoScroll : true, + height : fontSize == 12 ? 175 : 200, + items : { + layout : 'column', + width: fontSize == 12 ? 1100 : 1300, + items : [{ + columnWidth : 1, + xtype : 'fieldset', + layout : 'column', + frame : false, + border : false, + items : row1Array.concat(row2Array).concat(row3Array).concat(row4Array) + }] + }, + buttons : [{ xtype : 'button', text : '重置', minWidth : 70, 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 = ""; - Ext.getCmp('tousseGroupName').setValue(""); - $Id('scanPattern').value = singleScanLabel; - $Id('idNumberSearch').value = ""; - $Id('department').value=""; - Ext.getCmp('department').setValue(""); - $Id('tousseStatus').value=""; - Ext.getCmp('tousseStatus').setValue(""); - $Id('taskGroup').value=""; - Ext.getCmp('taskGroup').setValue(""); - barcodes = ''; - Ext.getCmp('queryMode').setValue(preciseQuery); - $Id('queryMode').value = preciseQuery; -// Ext.getCmp('operationTime').setValue(""); - $Id('operationTime').value = ""; - $Id('sterilizerGroup').value = ""; + handler : function() { //查询条件全部重置 + + $Id('scanPattern').value = singleScanLabel; //扫描模式 + $Id('barcodeSearch').value = ""; //条码 + $Id('idNumberSearch').value = ""; //标识牌编号 + $Id('sterilizationTransitionStart').value = ""; //灭菌交接开始时间 + $Id('sterilizationTransitionEnd').value = ""; //灭菌交接结束时间 + + + $Id('taskGroup').value=""; //装配任务组 + Ext.getCmp('taskGroup').deselectAll(); //器械包状态 + $Id('operationStart').value = ""; //装配开始时间 + $Id('operationEnd').value = ""; //装配结束时间 + $Id('invoiceStart').value = ""; //发货开始时间 + $Id('invoiceEnd').value = ""; //发货结束时间 + + $Id('department').value = ""; //科室显示值 + Ext.getCmp('department').setValue(""); //科室后台值 + $Id('tousseStatus').value=""; //器械包状态 + Ext.getCmp('tousseStatus').deselectAll(); //器械包状态 + $Id('tousseGroupName').value = ""; //器械包分组 + Ext.getCmp('tousseGroupName').deselectAll(); + $Id('tousseName').value = ""; //器械包名称 + $Id('queryMode').value = preciseQuery; //器械包查询模式 + + $Id('sterilizationStart').value = ""; //灭菌开始时间 + $Id('sterilizationEnd').value = ""; //灭菌结束时间 + $Id('sterilizerGroup').value = ""; //灭菌炉分组 + $Id('sterilizerName').value = ""; //灭菌炉 + $Id('frequency').value = ""; //炉次 + + + barcodes = ''; } - }] - },{ - columnWidth : 1 - },{ - columnWidth : 1 - },{ - columnWidth : 1, - layout :'form', - items : [{ + },{ xtype : 'button', text : '查询', minWidth : 70, iconCls : 'icon_search', handler : function() { initQueryValueAndReload(); } - }] - }] - }] + }] }); var tbar = [ @@ -1063,24 +1183,6 @@ columns : columns, plugins : filters, frame : false, -// viewConfig : { -// getRowClass : function(record,index,p,ds) { -// var cls ; -// var status = changeRowBackgroundColor(record,index,p,ds); -// switch (status) { -// case 0 : -// cls = ''; -// break; -// case 1 : -// cls = 'my_row_yellow'; -// break; -// case 2 : -// cls = 'my_row_red'; -// break; -// } -// return cls; -// } -// }, border : false }, readerDetail, Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java =================================================================== diff -u -r22230 -r22471 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 22230) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 22471) @@ -136,6 +136,51 @@ this.packingManager = packingManager; } + /** + * 把参数endTime加上秒(前台传回来的值只到分),然后根据数据库对应数据是否为date类型来判断是否需要进行适配 + * @param startTime + * @param isDateType 数据库字段是否为date类型 + * @return + */ + private String parseStartTime(String startTime, boolean isDateType){ + String startString = startTime+":00"; + if(isDateType){ + return dateQueryAdapter.dateAdapter(startString); + }else{ + return startString; + } + } + + /** + * 把参数endTime加1min之后转换为对应的数据库的yyyy-MM-dd HH:mm:00格式的日期数据返回 + * @param endTime 结束时间 + * @param isDateType 数据库字段是否为date类型 + * @return + */ + private String parseEndTime(String endTime, boolean isDateType){ + Date date = null; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + try + { + date = sdf.parse(endTime); + } + catch (Exception e) + { + System.out.println(e.getMessage()); + } + Calendar calendar = new GregorianCalendar(); + calendar.setTime(date); + + calendar.add(Calendar.MINUTE, +1); //推后1min + Date end = calendar.getTime(); + String endString = sdf.format(end)+":00"; + if(isDateType){ + return dateQueryAdapter.dateAdapter(endString); + }else{ + return endString; + } + } + @SuppressWarnings("unchecked") public String findTousseInstanceTableList( Map> parameterMap) { @@ -198,29 +243,27 @@ } } - String sterilizationDate = sqlWhereParamMap.get("sterilizationDate"); //灭菌开始日期 - if (StringUtils.isNotBlank(sterilizationDate)) { + String sterilizationStart = sqlWhereParamMap.get("sterilizationStart"); //灭菌开始时间 + if (StringUtils.isNotBlank(sterilizationStart)) { sqlBuilder.append(String.format( - " AND (po.sterileStartTime >= '%s 00:00:00')",sterilizationDate + " AND po.sterileStartTime >= '%s' ",parseStartTime(sterilizationStart,false))); //注释掉这种格式(convert函数太耗时)and CONVERT(datetime, tousseinst0_.sterileStartTime, 120)>=convert(datetime, '2017-12-16 00:00:00', 120) /*dateQueryAdapter.stringFieldToDate("po.sterileEndTime"), dateQueryAdapter.dateAdapter(sterilizationDate - + " 00:00:00")*/ - )); + + " 00:00:00")*/ } - String sterilizationEndDate = sqlWhereParamMap.get("sterilizationEndDate"); //灭菌结束日期 - if (StringUtils.isNotBlank(sterilizationEndDate)) { + String sterilizationEnd = sqlWhereParamMap.get("sterilizationEnd"); //灭菌结束日期 + if (StringUtils.isNotBlank(sterilizationEnd)) { sqlBuilder.append(String.format( - " AND (po.sterileEndTime <= '%s 23:59:59')",sterilizationEndDate + " AND po.sterileEndTime < '%s' ",parseEndTime(sterilizationEnd,false))); //注释掉这种格式(convert函数太耗时)and CONVERT(datetime, tousseinst0_.sterileEndTime, 120)<=convert(datetime, '2017-12-16 23:59:59', 120) /*dateQueryAdapter.stringFieldToDate("po.sterileEndTime"), dateQueryAdapter.dateAdapter(sterilizationEndDate + " 23:59:59")*/ - )); } //如果要根据灭菌时间来筛选,首先必须是已经有灭菌记录的(数据库中存在有灭菌开始时间但是没有灭菌结束时间和灭菌单的记录) - if(StringUtils.isNotBlank(sterilizationDate) || StringUtils.isNotBlank(sterilizationEndDate)){ + if(StringUtils.isNotBlank(sterilizationStart) || StringUtils.isNotBlank(sterilizationEnd)){ sqlBuilder.append(" AND po.sterilizationRecord_id is not null"); } @@ -240,31 +283,34 @@ } } - String operationTime = sqlWhereParamMap.get("operationTime"); //装配时间 - if(StringUtils.isNotBlank(operationTime)){ - Date date = null; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - try - { - date = sdf.parse(operationTime); - } - catch (Exception e) - { - System.out.println(e.getMessage()); - } - String startString = operationTime+":00"; - Calendar calendar = new GregorianCalendar(); - calendar.setTime(date); - - calendar.add(Calendar.MINUTE, +1); //推后1min - Date end = calendar.getTime(); - String endString = sdf.format(end)+":00"; - - //拼一个对当前选中分钟的全覆盖时间段 - sqlBuilder.append(String.format(" AND po.operationTime >= %s AND po.operationTime < %s ", - dateQueryAdapter.dateAdapter(startString),dateQueryAdapter.dateAdapter(endString))); + String operationStart = sqlWhereParamMap.get("operationStart"); //装配开始时间 + if(StringUtils.isNotBlank(operationStart)){ + sqlBuilder.append(String.format(" AND po.operationTime >= %s ",parseStartTime(operationStart,true))); } + String operationEnd = sqlWhereParamMap.get("operationEnd"); //装配结束时间 + if(StringUtils.isNotBlank(operationEnd)){ + sqlBuilder.append(String.format(" AND po.operationTime < %s ",parseEndTime(operationEnd,true))); + } + String invoiceStart = sqlWhereParamMap.get("invoiceStart"); //发货开始时间 + if(StringUtils.isNotBlank(invoiceStart)){ + sqlBuilder.append(String.format(" AND po.invoiceSendTime >= %s ",parseStartTime(invoiceStart,true))); + } + String invoiceEnd = sqlWhereParamMap.get("invoiceEnd"); //发货结束时间 + if(StringUtils.isNotBlank(invoiceEnd)){ + sqlBuilder.append(String.format(" AND po.invoiceSendTime < %s ",parseEndTime(invoiceEnd,true))); + } + + //undo + String sterilizationTransitionStart = sqlWhereParamMap.get("sterilizationTransitionStart"); //灭菌交接开始时间 + if(StringUtils.isNotBlank(sterilizationTransitionStart)){ + sqlBuilder.append(String.format(" AND po.transitionTime >= %s ",parseStartTime(sterilizationTransitionStart,true))); + } + String sterilizationTransitionEnd = sqlWhereParamMap.get("sterilizationTransitionEnd"); //灭菌交接结束时间 + if(StringUtils.isNotBlank(sterilizationTransitionEnd)){ + sqlBuilder.append(String.format(" AND po.transitionTime < %s ",parseEndTime(sterilizationTransitionEnd,true))); + } + String frequency = sqlWhereParamMap.get("frequency"); //炉次 if (StringUtils.isNotBlank(frequency)) { sqlBuilder.append(String.format(" AND po.sterileFrequency = '%s'" ,frequency)); Index: ssts-web/src/main/webapp/disinfectsystem/config/qysrmyy/config.js =================================================================== diff -u -r21605 -r22471 --- ssts-web/src/main/webapp/disinfectsystem/config/qysrmyy/config.js (.../config.js) (revision 21605) +++ ssts-web/src/main/webapp/disinfectsystem/config/qysrmyy/config.js (.../config.js) (revision 22471) @@ -75,5 +75,7 @@ //是否在待灭菌装载器械包列表中,显示“科室”列和搜索框 showDepartOfTousseInstanceSterile:true, //已发货但是未签收的物品是否允许登记使用记录 false:不允许 true:允许 - notSignedItemsCanRegistUseRecord:false + notSignedItemsCanRegistUseRecord:false, + //在器械包信息列表中,是否显示签收项(签收人、签收时间) + showSignedItems : true } \ No newline at end of file Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/sterilizer/action/SterilizerAction.java =================================================================== diff -u -r19486 -r22471 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/sterilizer/action/SterilizerAction.java (.../SterilizerAction.java) (revision 19486) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/sterilizer/action/SterilizerAction.java (.../SterilizerAction.java) (revision 22471) @@ -379,19 +379,26 @@ * */ public void getAllSterilizer() { - String ownGroup = StrutsParamUtils.getPraramValue( - "ownGroup", ""); - String departCoding = AcegiHelper.getLoginUser().getCurrentOrgUnitCode(); - - String queryString = "from " + Sterilizer.class.getSimpleName() + " where orgUnitCoding = :orgUnitCoding"; - if (StringUtils.isNotBlank(ownGroup)){ - queryString += " and ownGroup = :ownGroup"; + String needFilter = StrutsParamUtils.getPraramValue("needFilter", "true"); //是否需要过滤(在器械包信息页面中的灭菌炉获取中,不需要进行过滤,需要显示全部的灭菌炉) + Query query = null; + if(needFilter.equals("true")){ + String ownGroup = StrutsParamUtils.getPraramValue( + "ownGroup", ""); + String departCoding = AcegiHelper.getLoginUser().getCurrentOrgUnitCode(); + + String queryString = "from " + Sterilizer.class.getSimpleName() + " where orgUnitCoding = :orgUnitCoding"; + if (StringUtils.isNotBlank(ownGroup)){ + queryString += " and ownGroup = :ownGroup"; + } + query = objectDao.getHibernateSession().createQuery(queryString); + query.setParameter("orgUnitCoding", departCoding); + + if (StringUtils.isNotBlank(ownGroup)){ + query.setParameter("ownGroup", ownGroup); } - Query query = objectDao.getHibernateSession().createQuery(queryString); - query.setParameter("orgUnitCoding", departCoding); - - if (StringUtils.isNotBlank(ownGroup)){ - query.setParameter("ownGroup", ownGroup); + }else{ //不需要根据科室和组进行过滤 + String queryString = "from " + Sterilizer.class.getSimpleName(); + query = objectDao.getHibernateSession().createQuery(queryString); } List sterilizerList = query.list();