Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/deviceInterface/deviceInterfaceForm.js =================================================================== diff -u -r30920 -r31158 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/deviceInterface/deviceInterfaceForm.js (.../deviceInterfaceForm.js) (revision 30920) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/deviceInterface/deviceInterfaceForm.js (.../deviceInterfaceForm.js) (revision 31158) @@ -10,7 +10,7 @@ labelAlign:'right', labelSeparator : ':', bodyStyle : 'padding:5px 5px 0px 5px', - labelWidth : 100, + labelWidth : 120, items : [ { xtype : 'hidden', name : 'id', @@ -24,7 +24,7 @@ items : [ { layout : 'form', columnWidth : .5, - labelWidth : 70, + labelWidth : 80, items : [ { xtype : 'textfield', fieldLabel : "接口名称", @@ -37,7 +37,7 @@ },{ layout : 'form', columnWidth : 0.5, - labelWidth : 70, + labelWidth : 80, id : 'interfaceTypeWrap', items : [{ xtype : 'combo', @@ -62,7 +62,7 @@ },{ layout : 'form', columnWidth : 0.5, - labelWidth : 70, + labelWidth : 80, items : [ { xtype : 'textfield', fieldLabel : "IP地址", @@ -74,7 +74,7 @@ },{ layout : 'form', columnWidth : 0.5, - labelWidth : 70, + labelWidth : 80, items : [ { xtype : 'numberfield', fieldLabel : "端口", @@ -88,7 +88,7 @@ },{ layout : 'form', columnWidth : 0.5, - labelWidth : 70, + labelWidth : 80, id:'folderPathWrap', items : [ { xtype : 'textfield', @@ -101,7 +101,7 @@ }, { layout : 'form', columnWidth : 0.5, - labelWidth : 70, + labelWidth : 80, id:'userNameWrap', items : [ { xtype : 'textfield', @@ -115,7 +115,7 @@ }, { layout : 'form', columnWidth : 0.5, - labelWidth : 70, + labelWidth : 80, id:'passwordWrap', items : [ { xtype : 'textfield', @@ -128,7 +128,7 @@ }, { layout : 'form', columnWidth : 0.5, - labelWidth : 70, + labelWidth : 80, items : [{ xtype : 'combo', fieldLabel : '设备品牌', @@ -157,7 +157,7 @@ }, { layout : 'form', columnWidth : 0.5, - labelWidth : 70, + labelWidth : 80, hidden : false, id : 'deviceModelWrap', items : [{ @@ -190,7 +190,33 @@ },{ layout : 'form', columnWidth : 0.5, - labelWidth : 70, + labelWidth : 80, + id : 'paraMatchingMethodWrap', + items : [{ + xtype : 'combo', + fieldLabel : '参数匹配方式', + id : 'paraMatchingMethod', + name : 'paraMatchingMethod', + width : 60, + valueField : 'value', + displayField : 'value', + store : new Ext.data.SimpleStore({ + fields : [ 'value' ], + data : [['按开始时间'],['按循环次数']] + } + ), + defaultValue:'按循环次数', + forceSelection : true, + allowBlank : false, + editable : false, + mode : 'local', + triggerAction : 'all', + anchor : '95%' + }] + },{ + layout : 'form', + columnWidth : 0.5, + labelWidth : 80, hidden : false, id : 'deviceTypeWrap', items : [{ @@ -223,7 +249,7 @@ },{ layout : 'form', columnWidth : 0.5, - labelWidth : 70, + labelWidth : 80, hidden : true, id : 'deviceIdWrap', items : [{ @@ -317,7 +343,7 @@ hideCmt('deviceModelWrap','deviceModel',true); hideCmt('deviceTypeWrap','deviceType',true); hideCmt('interfaceTypeWrap','interfaceType',true); - + hideCmt('paraMatchingMethodWrap','paraMatchingMethod',true); showCmt('userNameWrap','userName',true); showCmt('folderPathWrap','folderPath',true); showCmt('passwordWrap','password',true); @@ -368,6 +394,12 @@ data : [[STERIS_AMSCO_3052]] }) showCmt('deviceModelWrap','deviceModel',true,sterisModelComboStore); + }else if(deviceBrand == BELIMED ){ + showCmt('paraMatchingMethodWrap','paraMatchingMethod',false); + var paraMatchingMethodValue = top.Ext.getCmp("paraMatchingMethod").getValue(); + if('' == paraMatchingMethodValue){ + top.Ext.getCmp("paraMatchingMethod").setValue('按开始时间'); + } } showCmt('interfaceTypeWrap','interfaceType',true,interfaceTypeComboStore); }else if(deviceBrand == JOHNSON){ Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java =================================================================== diff -u -r30372 -r31158 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java (.../BelimedDataManagerImpl.java) (revision 30372) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java (.../BelimedDataManagerImpl.java) (revision 31158) @@ -218,9 +218,9 @@ String beginStartTimeStr = ForgonDateUtils.safelyFormatDate(new Date(procStartTime - 10*60*1000),ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); String endStartTimeStr = ForgonDateUtils.safelyFormatDate(new Date(procStartTime + 10*60*1000),ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); if(!StringUtils.isNotBlank(isAutoCompleteSterilization) || isAutoCompleteSterilization.equals("是")){ - autoFinishSterilizerRecord(beginStartTimeStr, endStartTimeStr, devInterface.getId().toString(),machineNumber); + autoFinishSterilizerRecord(beginStartTimeStr, endStartTimeStr, devInterface,machineNumber,cycleCounter); } - refreshSterilizaerRecordAmounts(beginStartTimeStr,endStartTimeStr,devInterface.getId().toString(),Long.parseLong(cycleCounter),machineNumber,enableDetailedDeviceInformation,loginUserData); + refreshSterilizaerRecordAmounts(beginStartTimeStr,endStartTimeStr,devInterface,Long.parseLong(cycleCounter),machineNumber,enableDetailedDeviceInformation,loginUserData); } } boolean isMove = commonFileManager.moveFile(remoteType, name, ftp, ftpFileManager.getCurrentPath(ftp), backUpPath, session, smbForm); @@ -473,15 +473,19 @@ /** * 自动完成灭菌 */ - public void autoFinishSterilizerRecord(String beginStartTimeStr, String endStartTimeStr, String devInterfaceId, String machineNo) { + public void autoFinishSterilizerRecord(String beginStartTimeStr, String endStartTimeStr, DeviceInterface deviceInterface, String machineNo, String cycleCounter) { String queryString = "select sr.id from SterilizationRecord sr" + " where sr.sterilizer.deviceInterface.id = :devInterfaceId" + " and sr.sterilizer.machineNumber = :machineNumber" - + " and sr.status = :status" - + " and " + dateQueryAdapter.dateAreaSql("sr.startDate", beginStartTimeStr, endStartTimeStr, false); + + " and sr.status = :status and "; + if(DeviceInterface.PARAMATCHINGMETHOD_CYCLECOUNTER.equals(deviceInterface.getParaMatchingMethod())){ + queryString += "sr.cycleCounter=" + cycleCounter; + }else{ + queryString += dateQueryAdapter.dateAreaSql("sr.startDate", beginStartTimeStr, endStartTimeStr, false); + } Session session = objectDao.getHibernateSession(); Query query = session.createQuery(queryString); - query.setParameter("devInterfaceId", Long.valueOf(devInterfaceId)); + query.setParameter("devInterfaceId", deviceInterface.getId()); query.setParameter("machineNumber", machineNo); query.setParameter("status", SterilizationRecord.STERILIZATION_STATUS_BEGIN); @@ -492,7 +496,7 @@ + " where s.deviceInterface.id = :devInterfaceId" + " and s.machineNumber = :machineNumber"; query = session.createQuery(queryString); - query.setParameter("devInterfaceId", Long.valueOf(devInterfaceId)); + query.setParameter("devInterfaceId", deviceInterface.getId()); query.setParameter("machineNumber", machineNo); List orgUnitCodes = query.list(); if (CollectionUtils.isNotEmpty(orgUnitCodes)) { @@ -519,17 +523,20 @@ /** * 更新灭菌记录的温度压力数据 */ - public void refreshSterilizaerRecordAmounts(String beginStartTimeStr, String endStartTimeStr, String devInterfaceId, Long cycleCounter, String machineNo, boolean enableDetailedDeviceInformation, LoginUserData loginUserData) { + public void refreshSterilizaerRecordAmounts(String beginStartTimeStr, String endStartTimeStr, DeviceInterface devInterface, Long cycleCounter, String machineNo, boolean enableDetailedDeviceInformation, LoginUserData loginUserData) { String queryString = "select sr.id from SterilizationRecord sr" + " where sr.sterilizer.deviceInterface.id = :devInterfaceId" + " and sr.sterilizer.machineNumber = :machineNumber" - + " and sr.status = :status" - + " and " + dateQueryAdapter.dateAreaSql("sr.startDate", beginStartTimeStr, endStartTimeStr, false); + + " and sr.status = :status and "; // String queryString = "select sr.id from SterilizationRecord sr"; - + if(DeviceInterface.PARAMATCHINGMETHOD_CYCLECOUNTER.equals(devInterface.getParaMatchingMethod())){ + queryString += "sr.cycleCounter=" + cycleCounter; + }else{ + queryString += dateQueryAdapter.dateAreaSql("sr.startDate", beginStartTimeStr, endStartTimeStr, false); + } Session session = objectDao.getHibernateSession(); Query query = session.createQuery(queryString); - query.setParameter("devInterfaceId", Long.valueOf(devInterfaceId)); + query.setParameter("devInterfaceId", devInterface.getId()); query.setParameter("machineNumber", machineNo); query.setParameter("status", SterilizationRecord.STERILIZATION_STATUS_END); Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizerrecord/service/BelimedSterilizerRecordManagerImpl.java =================================================================== diff -u -r30510 -r31158 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizerrecord/service/BelimedSterilizerRecordManagerImpl.java (.../BelimedSterilizerRecordManagerImpl.java) (revision 30510) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizerrecord/service/BelimedSterilizerRecordManagerImpl.java (.../BelimedSterilizerRecordManagerImpl.java) (revision 31158) @@ -166,7 +166,7 @@ boolean sterilizaMatchPatternForDate = CssdUtils.getSystemSetConfigByNameBool("sterilizaMatchPatternForDate", false); boolean useCycleCounter = false; if(df != null - && (DeviceInterface.BELIMED.equals(df.getDeviceBrand()) + && (DeviceInterface.BELIMED.equals(df.getDeviceBrand()) && !DeviceInterface.PARAMATCHINGMETHOD_CYCLECOUNTER.equals(df.getParaMatchingMethod()) || (sterilizaMatchPatternForDate && DeviceInterface.GETINGE.equals(df.getDeviceBrand())))){ String beginStartTimeStr = ForgonDateUtils.safelyFormatDate(new Date(sr.getStartDate().getTime() - 10*60*1000),ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/deviceinterface/DeviceInterface.java =================================================================== diff -u -r30926 -r31158 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/deviceinterface/DeviceInterface.java (.../DeviceInterface.java) (revision 30926) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/deviceinterface/DeviceInterface.java (.../DeviceInterface.java) (revision 31158) @@ -199,6 +199,12 @@ * 读取设备的类型 */ private String deviceType; + public static final String PARAMATCHINGMETHOD_STARTDATE = "按开始时间"; + public static final String PARAMATCHINGMETHOD_CYCLECOUNTER = "按循环次数"; + /** + * 参数匹配方式 + */ + private String paraMatchingMethod; @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { @@ -306,4 +312,11 @@ this.deviceType = deviceType; } + public String getParaMatchingMethod() { + return paraMatchingMethod; + } + + public void setParaMatchingMethod(String paraMatchingMethod) { + this.paraMatchingMethod = paraMatchingMethod; + } } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r31149 -r31158 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 31149) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 31158) @@ -1261,7 +1261,7 @@ String endProcStartTimeStr =ForgonDateUtils.safelyFormatDate(endProcStartTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); dateSql = " and "+dateQueryAdapter.dateAreaSql("s.procStartTime", beginProcStartTimeStr, endProcStartTimeStr, false); cycleStr = ""; - }else if(sr.getSterilizer().getDeviceInterface() != null && DeviceInterface.BELIMED.equals(sr.getSterilizer().getDeviceInterface().getDeviceBrand())){ + }else if(sr.getSterilizer().getDeviceInterface() != null && DeviceInterface.BELIMED.equals(sr.getSterilizer().getDeviceInterface().getDeviceBrand()) && !DeviceInterface.PARAMATCHINGMETHOD_CYCLECOUNTER.equals(sr.getSterilizer().getDeviceInterface().getParaMatchingMethod())){ beginProcStartTime = new Date(sr.getStartDate().getTime() - 10*60*1000); endProcStartTime = new Date(sr.getStartDate().getTime() + 10*60*1000); String beginProcStartTimeStr = ForgonDateUtils.safelyFormatDate(beginProcStartTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/deviceinterface/service/DeviceInterfaceManagerImpl.java =================================================================== diff -u -r25473 -r31158 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/deviceinterface/service/DeviceInterfaceManagerImpl.java (.../DeviceInterfaceManagerImpl.java) (revision 25473) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/deviceinterface/service/DeviceInterfaceManagerImpl.java (.../DeviceInterfaceManagerImpl.java) (revision 31158) @@ -24,7 +24,9 @@ @Override public void saveDeviceInterface(DeviceInterface deviceInterface) { - + if(deviceInterface != null && (StringUtils.isNotBlank(deviceInterface.getParaMatchingMethod()) || !DeviceInterface.BELIMED.equals(deviceInterface.getDeviceBrand()))){ + deviceInterface.setParaMatchingMethod(null); + } validate(deviceInterface); //先获取关联过的DeviceId对应的JiangHanDatFileDetail