Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java =================================================================== diff -u -r26691 -r26796 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java (.../XinHuaDataManagerImpl.java) (revision 26691) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java (.../XinHuaDataManagerImpl.java) (revision 26796) @@ -244,15 +244,14 @@ String cacheDirURL = "cache"; //用于保存已经读取的文件 String readedDirURL = "readedFile"; + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_CONNECT, "ip:"+ip + ",user:"+userName + ",目录:"+directory); try { ftp = ftpFileManager.getFTPClient(ip, 21, userName, pwd); String rootPath = ftpFileManager.getCurrentPath(ftp); //切换目录 String directoryIso = rootPath + new String(directory.getBytes("UTF-8"),"iso-8859-1"); Boolean changeResult = ftpFileManager.changeWorkingDirectory(ftp, directoryIso); - if(!changeResult){ - throw new RuntimeException("切换目录[" + rootPath + directory + "]失败"); - } + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "读取文件位置:" + ftpFileManager.getCurrentPath(ftp)); //绝对路径 String backUpAbsolutePath = directoryIso + "/" + backUpDirURL; String cacheAbsolutePath = directoryIso + "/" + cacheDirURL; @@ -273,6 +272,7 @@ }; try { files = ftp.listFiles("",filterTxt); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "文件数量:"+ files.length); } catch (IOException e2) { e2.printStackTrace(); throw new RuntimeException("查看文件" + directory + "异常"); @@ -294,10 +294,11 @@ String cycleCounter = machineData.optString("cycleCounter"); // 机器号和品牌都要匹配,才处理 if(!StringUtils.equals(brand, devInterface.XINHUA)){ - //logger.debug(String.format("品牌【%s】,机器号【%s】,循环次数【%s】品牌不对->continue",brand,machineNumber,cycleCounter)); + logger.debug(String.format("设备接口【%s】,品牌【%s】,机器号【%s】,循环次数【%s】品牌不对->continue", devInterface.getName(),brand,machineNumber,cycleCounter)); continue; } if(!StringUtils.equals(machineNumber, machineNo)){ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("文件机器号[%s]不匹配灭菌炉机器号[%s]", machineNumber,machineNo)); //logger.debug(String.format("品牌【%s】,机器号【%s】,循环次数【%s】机器号不对->continue",brand,machineNumber,cycleCounter)); continue ; } @@ -600,6 +601,7 @@ // query.setParameter("status", SterilizationRecord.STERILIZATION_STATUS_END); Long id = (Long)query.uniqueResult(); // List srs = sterilizationRecordManager.getSterilizaerRecordsById(Long.valueOf(30)); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("机器号[%s],循环次数 [%s],需要更新温度压力数据的灭菌记录id[%s]",machineNo,cycleCounter,id)); if(id != null && id > 0) { SterilizationRecord record = sterilizationRecordManager.getSterilizationRecordById(id); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/filemanager/FtpFileManagerImpl.java =================================================================== diff -u -r26691 -r26796 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/filemanager/FtpFileManagerImpl.java (.../FtpFileManagerImpl.java) (revision 26691) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/filemanager/FtpFileManagerImpl.java (.../FtpFileManagerImpl.java) (revision 26796) @@ -16,10 +16,18 @@ import org.apache.commons.net.ftp.FTPFileFilter; import org.apache.commons.net.ftp.FTPReply; +import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.log.model.Log; +import com.forgon.log.service.LogManager; import com.forgon.util.StringUtil; public class FtpFileManagerImpl implements FtpFileManager{ - + + private LogManager appLogManager; + + public void setAppLogManager(LogManager appLogManager) { + this.appLogManager = appLogManager; + } @Override public FTPFile getFileByFileName(String fileName, String targetRoute, FTPClient ftp) throws IOException { @@ -137,6 +145,7 @@ FTPFile[] files = null; try { files = ftp.listFiles(path,filter); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("读取[%s]下的文件,文件数量[%s]", getCurrentPath(ftp),files.length)); } catch (IOException e2) { e2.printStackTrace(); if(StringUtils.isBlank(path)){ @@ -172,9 +181,12 @@ path = new String(path.getBytes("UTF-8"),"iso-8859-1"); } flag = ftp.changeWorkingDirectory(path); + if(!flag){ + throw new RuntimeException("切换目录[" + path + "]失败"); + } } catch (IOException e) { e.printStackTrace(); - throw new RuntimeException("切换目录[" + path + "]失败"); + throw new RuntimeException(e.getMessage()); } return flag; } @@ -211,7 +223,9 @@ ftp.setControlEncoding("UTF-8"); if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) { ftp.disconnect(); - throw new RuntimeException("未连接到FTP,用户名或密码错误"); + throw new RuntimeException(String.format("未连接到FTP,用户名[%s]或密码错误", userName)); + }else{ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_CONNECT, "FTP远程连接成功。ip:"+ip + ",用户名:"+userName); } } catch (SocketException e) { e.printStackTrace(); Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java =================================================================== diff -u -r26691 -r26796 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java (.../BelimedDataManagerImpl.java) (revision 26691) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java (.../BelimedDataManagerImpl.java) (revision 26796) @@ -126,7 +126,9 @@ length = files.length; }else{ rootPath = "//"+ ip + directory; - SmbShare share = new SmbShare("smb://" + userName +":"+ pwd +"@"+ ip +"/"+ directory +"/"); + String smbPath = String.format("smb://%s:%s@%s/%s/", userName, pwd, ip, directory); + SmbShare share = new SmbShare(smbPath); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "共享文件夹目录位置:"+smbPath); session = new SmbSession(share); shareList = share.list(); length = shareList.length; @@ -150,9 +152,11 @@ continue; } } - if(brand != devInterface.BELIMED ){ continue; } String machineNumber = getMachineNoByFileName(name); - if(!machineNo.equals(machineNumber) ){ continue ; } + if(!machineNo.equals(machineNumber) ){ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("文件机器号[%s]不匹配灭菌炉机器号[%s]", machineNumber,machineNo)); + continue ; + } String cycleCounter = null; if(isWashingMachine(smbForm, remoteType, ftp, name)){ //清洗机数据的处理 JSONArray jsArray = washDataReadAndSave(smbForm,devInterface, remoteType, ftp, name); @@ -369,6 +373,7 @@ query.setParameter("status", SterilizationRecord.STERILIZATION_STATUS_END); Long id = (Long) query.uniqueResult(); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("机器号[%s],循环次数 [%s],需要更新温度压力数据的灭菌记录id[%s]",machineNo,cycleCounter,id)); // List srs = // sterilizationRecordManager.getSterilizaerRecordsById(Long.valueOf(30)); if (id != null && id > 0) { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/filemanager/CommonFileManagerImpl.java =================================================================== diff -u -r26637 -r26796 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/filemanager/CommonFileManagerImpl.java (.../CommonFileManagerImpl.java) (revision 26637) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/filemanager/CommonFileManagerImpl.java (.../CommonFileManagerImpl.java) (revision 26796) @@ -11,11 +11,19 @@ import org.apache.commons.net.ftp.FTPClient; import org.springframework.integration.smb.session.SmbSession; +import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.entity.basedatamanager.deviceinterface.DeviceInterface; +import com.forgon.log.model.Log; +import com.forgon.log.service.LogManager; public class CommonFileManagerImpl implements CommonFileManager{ private SmbFileManager smbFileManager; private FtpFileManager ftpFileManager; + private LogManager appLogManager; + + public void setAppLogManager(LogManager appLogManager) { + this.appLogManager = appLogManager; + } public void setSmbFileManager(SmbFileManager smbFileManager) { this.smbFileManager = smbFileManager; } @@ -46,6 +54,7 @@ @Override public void makeDirectory(String remoteType, FTPClient ftp, String path, SmbSession session) { + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("创建文件夹路径[%s]", path)); if(DeviceInterface.INTERFACETYPE_FTP.equals(remoteType)){ ftpFileManager.makeDirectory(ftp, path); }else if(DeviceInterface.INTERFACETYPE_SHAREFOLDER.equals(remoteType)){ Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java =================================================================== diff -u -r26691 -r26796 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java (.../DeviceInterfaceDataProcessImpl.java) (revision 26691) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java (.../DeviceInterfaceDataProcessImpl.java) (revision 26796) @@ -5,12 +5,12 @@ import java.util.List; +import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; 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; @@ -27,6 +27,8 @@ private SterilizerManager sterilizerManager; private RinserManager rinserManager; + + private Logger logger = Logger.getLogger(getClass()); /** * 日志管理 @@ -46,131 +48,126 @@ * 设备接口数据处理,遍历所有设备,逐个处理 */ @Override - public void processDeviceInterfaceData() - { - appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "设备接口定时程序开始运行"); - /** - * 遍历灭菌炉 - */ - //开启保存详细的设备接口日记信息 - boolean enableDetailedDeviceInformation = CssdUtils.getSystemSetConfigByNameBool("enableDetailedDeviceInformation", false); - List sterilizes = sterilizerManager.getAllSterilizer(); - for(Sterilizer st : sterilizes) - { - DeviceDataManager dm; - DeviceInterface devInterface = st.getDeviceInterface(); - if(devInterface == null) + public void processDeviceInterfaceData(){ + try { + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "设备接口定时程序开始运行"); + /** + * 遍历灭菌炉 + */ + List sterilizes = sterilizerManager.getAllSterilizer(); + for(Sterilizer st : sterilizes) { - continue; - } - //一个灭菌炉和接口对接异常没必要影响其他灭菌炉和清洗机 - try { - if(enableDetailedDeviceInformation){ - appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "开始遍历"+st.getName()+",设备接口:"+devInterface.getName()); - } - switch(devInterface.getDeviceBrand()) + DeviceDataManager dm; + DeviceInterface devInterface = st.getDeviceInterface(); + if(devInterface == null) { - 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; + continue; } - if(enableDetailedDeviceInformation){ + //一个灭菌炉和接口对接异常没必要影响其他灭菌炉和清洗机 + try { + 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; + } 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()); } - } catch (Exception e) { - e.printStackTrace(); - appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "遍历"+st.getName()+"异常,设备接口:"+devInterface.getName()); } - } - // 遍历清洗机 - List rinsers = rinserManager.getAll(); - for(Rinser rs : rinsers) - { - DeviceDataManager dm; - DeviceInterface devInterface = rs.getDeviceInterface(); - if(devInterface == null) + // 遍历清洗机 + List rinsers = rinserManager.getAll(); + for(Rinser rs : rinsers) { - continue; - } - try { - if(enableDetailedDeviceInformation){ - appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "开始遍历"+rs.getName()+",设备接口:"+devInterface.getName()); - } - switch(devInterface.getDeviceBrand()) + DeviceDataManager dm; + DeviceInterface devInterface = rs.getDeviceInterface(); + if(devInterface == null) { - 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; + continue; } - if(enableDetailedDeviceInformation){ + try { + 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; + } appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "遍历"+rs.getName()+"完毕"); + } catch (Exception e) { + e.printStackTrace(); + logger.error(e); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "遍历"+rs.getName()+"异常,设备接口:"+devInterface.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, "设备接口定时程序运行完毕"); + } catch (Exception e) { + logger.error(e); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_READ, "设备接口读取异常"); } - appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "设备接口定时程序运行完毕"); } } Index: forgon-core/src/main/java/com/forgon/log/model/Log.java =================================================================== diff -u -r26768 -r26796 --- forgon-core/src/main/java/com/forgon/log/model/Log.java (.../Log.java) (revision 26768) +++ forgon-core/src/main/java/com/forgon/log/model/Log.java (.../Log.java) (revision 26796) @@ -79,7 +79,7 @@ public static final String TYPE_QUERY = "Q";//查询 public static final String TYPE_READ = "R";//读、取(接口相关) public static final String TYPE_WRITE = "W";//写、推送(接口相关) - + public static final String TYPE_CONNECT = "C";//连接(接口相关) public static final String TYPE_PRINT_TOUSSE = "器械包打印"; Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/GetingeDataManagerImpl.java =================================================================== diff -u -r26691 -r26796 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/GetingeDataManagerImpl.java (.../GetingeDataManagerImpl.java) (revision 26691) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/GetingeDataManagerImpl.java (.../GetingeDataManagerImpl.java) (revision 26796) @@ -325,10 +325,12 @@ FTPFile[] files = null; String[] shareList = null; Integer length = 0; + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_CONNECT, "ip:"+ip + ",user:"+userName + ",目录:"+directory); if(DeviceInterface.INTERFACETYPE_FTP.equals(remoteType)){ ftp = ftpFileManager.getFTPClient(ip, 21, userName, pwd); rootPath = ftpFileManager.getCurrentPath(ftp) + directory;//根目录 ftpFileManager.changeWorkingDirectory(ftp, rootPath); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "读取文件位置:"+ ftpFileManager.getCurrentPath(ftp)); filterXML = new FTPFileFilter() {// 只处理.XML文件 @Override public boolean accept(FTPFile file) { @@ -351,6 +353,7 @@ length = shareList.length; } String backUpPath = rootPath + "/backUp"; + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "文件数量:"+ files.length+",backUp位置:" + backUpPath); commonFileManager.makeDirectory(remoteType, ftp, backUpPath, session); for (int i = 0; i < length; i++) { FTPFile ftpFile = null; @@ -378,6 +381,7 @@ JSONObject machineNumAndIsWashingMachine = getMachineNoAndIsWashingMachine(remoteType, ftp, name, smbForm); String machineNumber = machineNumAndIsWashingMachine.optString("machineNo"); if( !machineNo.equals(machineNumber) ){ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("文件机器号[%s]不匹配灭菌炉机器号[%s]", machineNumber,machineNo)); continue ; } if(objectDao.getByProperty(SterilizerFileName.class.getSimpleName(), "fileName", name)!=null){ @@ -651,6 +655,7 @@ query.setParameter("status", SterilizationRecord.STERILIZATION_STATUS_END); Long id = (Long)query.uniqueResult(); // List srs = sterilizationRecordManager.getSterilizaerRecordsById(Long.valueOf(30)); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("机器号[%s],循环次数 [%s],需要更新温度压力数据的灭菌记录id[%s]",machineNo,cycleCounter,id)); if(id != null && id > 0) { SterilizationRecord record = sterilizationRecordManager.getSterilizationRecordById(id); @@ -693,6 +698,7 @@ return; } Long id = (Long) ids.get(0); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("开始时间[%s],机器号[%s],需要更新温度压力数据的灭菌记录id[%s]",procStartTimeStr,machineNo,id)); // Long id = (Long)query.uniqueResult(); if(id != null && id > 0){ SterilizationRecord record = sterilizationRecordManager.getSterilizationRecordById(id); Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/SterisDataManagerImpl.java =================================================================== diff -u -r26637 -r26796 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/SterisDataManagerImpl.java (.../SterisDataManagerImpl.java) (revision 26637) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/SterisDataManagerImpl.java (.../SterisDataManagerImpl.java) (revision 26796) @@ -101,9 +101,11 @@ String[] shareList = null; Integer length = 0; if(DeviceInterface.INTERFACETYPE_FTP.equals(remoteType)){ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_CONNECT, "ip:"+ip + ",user:"+userName + ",目录:"+directory); ftp = ftpFileManager.getFTPClient(ip, 21, userName, pwd); rootPath = ftpFileManager.getCurrentPath(ftp) + directory;//根目录 ftpFileManager.changeWorkingDirectory(ftp, rootPath); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "读取文件位置:"+ ftpFileManager.getCurrentPath(ftp)); FTPFileFilter filterXML = new FTPFileFilter() {// 只处理.XML文件 @Override public boolean accept(FTPFile file) { @@ -149,6 +151,7 @@ continue; if( !machineNumber.equals(machineNo) ) { + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("文件机器号[%s]不匹配灭菌炉机器号[%]", machineNumber,machineNo)); continue ; } String cycleCounter = null; @@ -385,6 +388,7 @@ query.setParameter("status", SterilizationRecord.STERILIZATION_STATUS_END); Long id = (Long)query.uniqueResult(); // List srs = sterilizationRecordManager.getSterilizaerRecordsById(Long.valueOf(30)); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("机器号[%s],循环次数 [%s],需要更新温度压力数据的灭菌记录id[%s]",machineNo,cycleCounter,id)); if(id != null && id > 0) { SterilizationRecord record = sterilizationRecordManager.getSterilizationRecordById(id);