Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java =================================================================== diff -u -r26288 -r26691 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java (.../DeviceInterfaceDataProcessImpl.java) (revision 26288) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java (.../DeviceInterfaceDataProcessImpl.java) (revision 26691) @@ -10,6 +10,7 @@ import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedatamanager.rinser.service.RinserManager; import com.forgon.disinfectsystem.basedatamanager.sterilizer.service.SterilizerManager; +import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.basedatamanager.deviceinterface.DeviceInterface; import com.forgon.disinfectsystem.entity.basedatamanager.rinser.Rinser; import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; @@ -51,6 +52,8 @@ /** * 遍历灭菌炉 */ + //开启保存详细的设备接口日记信息 + boolean enableDetailedDeviceInformation = CssdUtils.getSystemSetConfigByNameBool("enableDetailedDeviceInformation", false); List sterilizes = sterilizerManager.getAllSterilizer(); for(Sterilizer st : sterilizes) { @@ -60,34 +63,46 @@ { continue; } - switch(devInterface.getDeviceBrand()) - { - case DeviceInterface.BELIMED: - Object belimedBean = SpringBeanManger.getBean("belimedDataManager"); - dm = (DeviceDataManager) belimedBean; - dm.readAndSaveRecord(devInterface,st.getMachineNumber(),DeviceInterface.BELIMED,st.getIsAutoCompleteSterilization()); - break; - case DeviceInterface.STERIS: - Object sterisBean = SpringBeanManger.getBean("sterisDataManager"); - dm = (DeviceDataManager) sterisBean; - dm.readAndSaveRecord(devInterface,st.getMachineNumber(),DeviceInterface.STERIS,st.getIsAutoCompleteSterilization()); - break; - case DeviceInterface.GETINGE: - Object getingeBean = SpringBeanManger.getBean("getingeDataManager"); - dm = (DeviceDataManager) getingeBean; - dm.readAndSaveRecord(devInterface,st.getMachineNumber(),DeviceInterface.GETINGE,st.getIsAutoCompleteSterilization()); - break; - case DeviceInterface.JIANGHAN: - Object jiangHanBean = SpringBeanManger.getBean("jiangHanDataManager"); - dm = (DeviceDataManager) jiangHanBean; - dm.readAndSaveRecord(devInterface,st.getMachineNumber(),DeviceInterface.JIANGHAN,st.getIsAutoCompleteSterilization()); - break; - case DeviceInterface.XINHUA: - Object xinHuaBean = SpringBeanManger.getBean("xinHuaDataManager"); - dm = (DeviceDataManager) xinHuaBean; - dm.readAndSaveRecord(devInterface,st.getMachineNumber(),DeviceInterface.XINHUA,st.getIsAutoCompleteSterilization()); - break; - default:appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "暂不支持的灭菌炉品牌:" + devInterface.getDeviceBrand());break; + //一个灭菌炉和接口对接异常没必要影响其他灭菌炉和清洗机 + try { + if(enableDetailedDeviceInformation){ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "开始遍历"+st.getName()+",设备接口:"+devInterface.getName()); + } + switch(devInterface.getDeviceBrand()) + { + case DeviceInterface.BELIMED: + Object belimedBean = SpringBeanManger.getBean("belimedDataManager"); + dm = (DeviceDataManager) belimedBean; + dm.readAndSaveRecord(devInterface,st.getMachineNumber(),DeviceInterface.BELIMED,st.getIsAutoCompleteSterilization()); + break; + case DeviceInterface.STERIS: + Object sterisBean = SpringBeanManger.getBean("sterisDataManager"); + dm = (DeviceDataManager) sterisBean; + dm.readAndSaveRecord(devInterface,st.getMachineNumber(),DeviceInterface.STERIS,st.getIsAutoCompleteSterilization()); + break; + case DeviceInterface.GETINGE: + Object getingeBean = SpringBeanManger.getBean("getingeDataManager"); + dm = (DeviceDataManager) getingeBean; + dm.readAndSaveRecord(devInterface,st.getMachineNumber(),DeviceInterface.GETINGE,st.getIsAutoCompleteSterilization()); + break; + case DeviceInterface.JIANGHAN: + Object jiangHanBean = SpringBeanManger.getBean("jiangHanDataManager"); + dm = (DeviceDataManager) jiangHanBean; + dm.readAndSaveRecord(devInterface,st.getMachineNumber(),DeviceInterface.JIANGHAN,st.getIsAutoCompleteSterilization()); + break; + case DeviceInterface.XINHUA: + Object xinHuaBean = SpringBeanManger.getBean("xinHuaDataManager"); + dm = (DeviceDataManager) xinHuaBean; + dm.readAndSaveRecord(devInterface,st.getMachineNumber(),DeviceInterface.XINHUA,st.getIsAutoCompleteSterilization()); + break; + default:appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "暂不支持的灭菌炉品牌:" + devInterface.getDeviceBrand());break; + } + if(enableDetailedDeviceInformation){ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "遍历"+st.getName()+"完毕"); + } + } catch (Exception e) { + e.printStackTrace(); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "遍历"+st.getName()+"异常,设备接口:"+devInterface.getName()); } } // 遍历清洗机 @@ -100,48 +115,59 @@ { continue; } - switch(devInterface.getDeviceBrand()) - { - case DeviceInterface.BELIMED: - Object bean = SpringBeanManger.getBean("belimedDataManager"); - dm = (DeviceDataManager) bean; - dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.BELIMED,null); - break; - case DeviceInterface.STERIS: - Object sterisBean = SpringBeanManger.getBean("sterisDataManager"); - dm = (DeviceDataManager) sterisBean; - dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.STERIS,null); - break; - case DeviceInterface.GETINGE: - Object getingeBean = SpringBeanManger.getBean("getingeDataManager"); - dm = (DeviceDataManager) getingeBean; - dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.GETINGE,null); - break; - case DeviceInterface.JIANGHAN: - Object jiangHanBean = SpringBeanManger.getBean("jiangHanDataManager"); - dm = (DeviceDataManager) jiangHanBean; - dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.JIANGHAN,null); - break; - case DeviceInterface.CHANGLONG: - Object changLongBean = SpringBeanManger.getBean("changLongDataManager"); - dm = (DeviceDataManager) changLongBean; - dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.CHANGLONG,null); - break; - case DeviceInterface.XINHUA: - //若新华设备有型号且为长龙 - if(DeviceInterface.CHANGLONG.equals(devInterface.getDeviceModel())){ - Object xinHua_ChangLongBean = SpringBeanManger.getBean("xinHua_ChangLongDataManager"); - dm = (DeviceDataManager) xinHua_ChangLongBean; - dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.XINHUA,null); - }else{ - Object xinHuaBean = SpringBeanManger.getBean("xinHuaDataManager"); - dm = (DeviceDataManager) xinHuaBean; - dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.XINHUA,null); - } - break; - case DeviceInterface.MARGE://美雅洁清洗机非定时读取文件获取数据(根据modbus协议实时读取) - break; - default:appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "暂不支持的清洗机品牌:" + devInterface.getDeviceBrand());break; + try { + if(enableDetailedDeviceInformation){ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "开始遍历"+rs.getName()+",设备接口:"+devInterface.getName()); + } + switch(devInterface.getDeviceBrand()) + { + case DeviceInterface.BELIMED: + Object bean = SpringBeanManger.getBean("belimedDataManager"); + dm = (DeviceDataManager) bean; + dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.BELIMED,null); + break; + case DeviceInterface.STERIS: + Object sterisBean = SpringBeanManger.getBean("sterisDataManager"); + dm = (DeviceDataManager) sterisBean; + dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.STERIS,null); + break; + case DeviceInterface.GETINGE: + Object getingeBean = SpringBeanManger.getBean("getingeDataManager"); + dm = (DeviceDataManager) getingeBean; + dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.GETINGE,null); + break; + case DeviceInterface.JIANGHAN: + Object jiangHanBean = SpringBeanManger.getBean("jiangHanDataManager"); + dm = (DeviceDataManager) jiangHanBean; + dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.JIANGHAN,null); + break; + case DeviceInterface.CHANGLONG: + Object changLongBean = SpringBeanManger.getBean("changLongDataManager"); + dm = (DeviceDataManager) changLongBean; + dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.CHANGLONG,null); + break; + case DeviceInterface.XINHUA: + //若新华设备有型号且为长龙 + if(DeviceInterface.CHANGLONG.equals(devInterface.getDeviceModel())){ + Object xinHua_ChangLongBean = SpringBeanManger.getBean("xinHua_ChangLongDataManager"); + dm = (DeviceDataManager) xinHua_ChangLongBean; + dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.XINHUA,null); + }else{ + Object xinHuaBean = SpringBeanManger.getBean("xinHuaDataManager"); + dm = (DeviceDataManager) xinHuaBean; + dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.XINHUA,null); + } + break; + case DeviceInterface.MARGE://美雅洁清洗机非定时读取文件获取数据(根据modbus协议实时读取) + break; + default:appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "暂不支持的清洗机品牌:" + devInterface.getDeviceBrand());break; + } + if(enableDetailedDeviceInformation){ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "遍历"+rs.getName()+"完毕"); + } + } catch (Exception e) { + e.printStackTrace(); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "遍历"+rs.getName()+"异常,设备接口:"+devInterface.getName()); } } appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "设备接口定时程序运行完毕"); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/filemanager/FtpFileManagerImpl.java =================================================================== diff -u -r26627 -r26691 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/filemanager/FtpFileManagerImpl.java (.../FtpFileManagerImpl.java) (revision 26627) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/filemanager/FtpFileManagerImpl.java (.../FtpFileManagerImpl.java) (revision 26691) @@ -215,10 +215,10 @@ } } catch (SocketException e) { e.printStackTrace(); - throw new RuntimeException("FTP的IP地址可能错误,请正确配置"); + throw new RuntimeException("连接异常,ip:"+ip+",port:"+port+",用户名:"+userName); } catch (IOException e) { e.printStackTrace(); - throw new RuntimeException("FTP的端口错误,请正确配置"); + throw new RuntimeException("FTP的端口错误,请正确配置。ip:"+ip+",port:"+port+",用户名:"+userName); } catch (RuntimeException e) { throw new RuntimeException(e.getMessage()); } Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java =================================================================== diff -u -r26637 -r26691 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java (.../XinHuaDataManagerImpl.java) (revision 26637) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java (.../XinHuaDataManagerImpl.java) (revision 26691) @@ -156,7 +156,7 @@ continue; } if(!StringUtils.equals(machineNumber, machineNo)){ - logger.debug(String.format("品牌【%s】,机器号【%s】,循环次数【%s】机器号不对->continue",brand,machineNumber,cycleCounter)); + logger.debug(String.format("品牌【%s】,机器号【%s】,文件机器号【%s】,循环次数【%s】机器号不对->continue",brand,machineNo,machineNumber,cycleCounter)); continue ; } if(StringUtils.isBlank(cycleCounter)){ Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java =================================================================== diff -u -r26637 -r26691 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java (.../BelimedDataManagerImpl.java) (revision 26637) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java (.../BelimedDataManagerImpl.java) (revision 26691) @@ -142,8 +142,11 @@ name = ftpFile.getName(); }else{ name = shareList[i]; + if(!(name.endsWith("csv") && name.startsWith("C_"))){ + continue; + } smbForm = session.createSmbFileObject(rootPath + File.separator + name); - if(smbForm == null || smbForm.isDirectory() || !name.endsWith("csv") || !name.startsWith("C_")){ + if(smbForm == null || smbForm.isDirectory()){ continue; } } Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/GetingeDataManagerImpl.java =================================================================== diff -u -r26637 -r26691 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/GetingeDataManagerImpl.java (.../GetingeDataManagerImpl.java) (revision 26637) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/GetingeDataManagerImpl.java (.../GetingeDataManagerImpl.java) (revision 26691) @@ -246,14 +246,14 @@ } // 机器号和品牌都要匹配,才处理 if( brand != devInterface.GETINGE ){ - logger.debug("品牌不对->continue="+brand); + logger.debug("品牌不对-机器品牌号:"+ brand +",接口品牌:" + devInterface.GETINGE+ ">continue="+brand); continue; } JSONObject machineNumAndIsWashingMachine = getMachineNoAndIsWashingMachine(DeviceInterface.INTERFACETYPE_SHAREFOLDER, null, null, smbForm); String machineNumber = machineNumAndIsWashingMachine.optString("machineNo"); if( !machineNo.equals(machineNumber) ){ - logger.debug("机器号不对->continue="+machineNo); - continue ; + logger.debug("机器号不对-机器号:"+machineNo+",文件机器号:"+machineNumber + "->continue="+machineNo); + continue; } String cycleCounter = null; if(machineNumAndIsWashingMachine.optBoolean("isWashingMachine")){ @@ -361,6 +361,11 @@ name = ftpFile.getName(); }else{ name = shareList[i]; + // 只处理.XML文件 + if (!(name.endsWith("XML") || name.endsWith("xml"))){ + logger.debug("只处理.XML文件->continue"); + continue; + } smbForm = session.createSmbFileObject(rootPath + File.separator + name); if(smbForm == null || smbForm.isDirectory()){ continue;