Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java =================================================================== diff -u -r40332 -r40583 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java (.../DeviceInterfaceDataProcessImpl.java) (revision 40332) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java (.../DeviceInterfaceDataProcessImpl.java) (revision 40583) @@ -152,6 +152,10 @@ dm = (DeviceDataManager) sterisBean; dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.STERIS,null,enableDetailedDeviceInformation,loginUserData); } + }else if(StringUtils.equals(devInterface.getDeviceModel(), DeviceInterface.STERIS_CHANGLONG)){ + Object changLongBean = SpringBeanManger.getBean("changLongDataManager"); + dm = (DeviceDataManager) changLongBean; + dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.STERIS,null,enableDetailedDeviceInformation,loginUserData); }else{ Object sterisBean = SpringBeanManger.getBean("sterisDataManager"); dm = (DeviceDataManager) sterisBean; @@ -180,11 +184,6 @@ dm = (DeviceDataManager) jiangHanBean; dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.JIANGHAN,null,enableDetailedDeviceInformation,loginUserData); break; - case DeviceInterface.CHANGLONG: - Object changLongBean = SpringBeanManger.getBean("changLongDataManager"); - dm = (DeviceDataManager) changLongBean; - dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.CHANGLONG,null,enableDetailedDeviceInformation,loginUserData); - break; case DeviceInterface.XINHUA: // 新疆新华长龙清洗机 if(DeviceInterface.XINHUA_CHANGLONG_DC_5.equals(devInterface.getDeviceModel())){ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washanddisinfectrecord/WashAndDisinfectRecord.java =================================================================== diff -u -r40332 -r40583 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washanddisinfectrecord/WashAndDisinfectRecord.java (.../WashAndDisinfectRecord.java) (revision 40332) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washanddisinfectrecord/WashAndDisinfectRecord.java (.../WashAndDisinfectRecord.java) (revision 40583) @@ -184,6 +184,10 @@ * 美雅洁MAG-CL4 */ public static final Integer WASHDATATYPE_MAG_CL4 = 5; + /** + * STERIS_CHANGLONG + */ + public static final Integer WASHDATATYPE_STERIS_CHANGLONG = 6; @Id @GeneratedValue(strategy=GenerationType.AUTO) public Long getId() { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washData/WashDataOfChangLong.java =================================================================== diff -u -r39219 -r40583 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washData/WashDataOfChangLong.java (.../WashDataOfChangLong.java) (revision 39219) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washData/WashDataOfChangLong.java (.../WashDataOfChangLong.java) (revision 40583) @@ -60,8 +60,11 @@ * 完成时间 */ private String completedTime; - /** + * 完成时间 + */ + private Date completedDate; + /** * 程序名称 */ private String methodName; @@ -128,9 +131,13 @@ * FJSSSYY-1全自动清洗机程序结束:正常退出 */ private String endStatus; - - + /** + * 清洗记录id + */ + private Long washAndDisinfectRecordId; + + /** * 清洗项 */ private List washDataItems = new ArrayList(); @@ -300,6 +307,19 @@ public void setEndStatus(String endStatus) { this.endStatus = endStatus; } + public Long getWashAndDisinfectRecordId() { + return washAndDisinfectRecordId; + } + public void setWashAndDisinfectRecordId(Long washAndDisinfectRecordId) { + this.washAndDisinfectRecordId = washAndDisinfectRecordId; + } + public Date getCompletedDate() { + return completedDate; + } + + public void setCompletedDate(Date completedDate) { + this.completedDate = completedDate; + } } Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/ChangLongDataManagerImpl.java =================================================================== diff -u -r35056 -r40583 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/ChangLongDataManagerImpl.java (.../ChangLongDataManagerImpl.java) (revision 35056) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/ChangLongDataManagerImpl.java (.../ChangLongDataManagerImpl.java) (revision 40583) @@ -1,6 +1,7 @@ package com.forgon.disinfectsystem.maintain.device.service; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.lang.reflect.InvocationTargetException; @@ -11,10 +12,16 @@ import java.util.List; import java.util.Map; +import com.forgon.disinfectsystem.filemanager.CommonFileManager; +import com.forgon.disinfectsystem.filemanager.FtpFileManager; +import com.forgon.tools.db.DatabaseUtil; import jcifs.smb.SmbFile; import jcifs.smb.SmbFileInputStream; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.net.ftp.FTPClient; +import org.apache.commons.net.ftp.FTPFile; +import org.apache.commons.net.ftp.FTPFileFilter; import org.apache.log4j.Logger; import org.hibernate.Query; import org.hibernate.Session; @@ -35,7 +42,14 @@ @Service("changLongDataManagerTarget") public class ChangLongDataManagerImpl implements DeviceDataManager{ - + private FtpFileManager ftpFileManager; + private CommonFileManager commonFileManager; + public void setFtpFileManager(FtpFileManager ftpFileManager) { + this.ftpFileManager = ftpFileManager; + } + public void setCommonFileManager(CommonFileManager commonFileManager) { + this.commonFileManager = commonFileManager; + } private static final String START_FLAG = "----------------------------------------"; /* @@ -170,42 +184,84 @@ { return ; } - SmbSession session=null; + SmbSession session = null; String ip = devInterface.getIP(); String directory = devInterface.getFolderPath(); - String userName=devInterface.getDecryptUserName(); + if(!directory.startsWith("/")){ + directory = "/" + directory; + } + String userName = devInterface.getDecryptUserName(); String pwd = devInterface.getDecryptPassword(); - String rootURL = "//"+ip+"/" + directory + "/"; + String remoteType = devInterface.getInterfaceType(); + FTPClient ftp = null; try { - SmbShare share=new SmbShare("smb://" + userName +":"+ pwd +"@"+ ip +"/"+ directory +"/"); - session=new SmbSession(share); - String backUp=rootURL + "backUp/"; - if(!session.exists(backUp)){ - session.mkdir(backUp); - } - for (String name : share.list()){ - SmbFile smbForm=session.createSmbFileObject(rootURL + name); - if(smbForm.isDirectory()){ - continue; + String rootPath = null; + FTPFile[] files = null; + String[] shareList = null; + Integer length = 0; + if(DeviceInterface.INTERFACETYPE_FTP.equals(remoteType)){ + ftp = ftpFileManager.getFTPClient(ip, devInterface.getPort(), userName, pwd, enableDetailedDeviceInformation, loginUserData); + rootPath = ftpFileManager.getCurrentPath(ftp) + directory;//根目录 + ftpFileManager.changeWorkingDirectory(ftp, rootPath); + FTPFileFilter filterXML = new FTPFileFilter() {// 只处理.XML文件 + @Override + public boolean accept(FTPFile file) { + if(file.isDirectory()){ + return false; + }else if(file.getName().endsWith("txt") && file.getName().endsWith("TXT")){ + return true; + } + logger.debug("只处理***.txt文件"); + return false; + } + }; + files = ftpFileManager.getListFiles(ftp, "", filterXML, enableDetailedDeviceInformation, loginUserData); + length = files.length; + }else{ + rootPath = "//"+ ip + directory; + String smbPath = String.format("smb://%s:%s@%s/%s/", userName, pwd, ip, directory); + SmbShare share = new SmbShare(smbPath); + if(enableDetailedDeviceInformation){ + appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "共享文件夹目录位置:"+smbPath); } - if ( !(name.endsWith("txt") || name.endsWith("TXT")) ){ - continue; - } + session = new SmbSession(share); + shareList = share.list(); + length = shareList.length; + } + String backUpPath = rootPath + "/backUp"; + commonFileManager.makeDirectory(remoteType, ftp, backUpPath, session, enableDetailedDeviceInformation, loginUserData); + int readedFileAmount = 0; + for (int i = 0; i < length && readedFileAmount < 5; i++) { + FTPFile ftpFile = null; + SmbFile smbForm = null; + String name = null; + if(DeviceInterface.INTERFACETYPE_FTP.equals(remoteType)){ + ftpFile = files[i]; + name = ftpFile.getName(); + }else{ + name = shareList[i]; + if(!(name.endsWith("txt") && name.endsWith("TXT"))){ + continue; + } + smbForm = session.createSmbFileObject(rootPath + File.separator + name); + if(smbForm == null || smbForm.isDirectory()){ + continue; + } + } String machineNumber = getMachineNo(name); // 机器号和品牌都要匹配,才处理 - if(!(machineNumber.equals(machineNo) && DeviceInterface.CHANGLONG.equals(brand))){ - continue ; - } - String cycleCounter = washDataReadAndSave(smbForm,devInterface.getId(), enableDetailedDeviceInformation, loginUserData); - if( cycleCounter != null){ - refreshWashRecordAmounts(devInterface.getId().toString(),Long.parseLong(cycleCounter),machineNumber); - } - else{ - logger.warn(name); - } - SmbFile desFile = session.createSmbFileObject(backUp+name); - smbForm.copyTo(desFile); - smbForm.delete(); + if(!(machineNumber.equals(machineNo) && DeviceInterface.STERIS_CHANGLONG.equals(devInterface.getDeviceModel()) + )){ + continue ; + } + String cycleCounter = washDataReadAndSave(smbForm,devInterface, enableDetailedDeviceInformation, loginUserData); + if( cycleCounter != null){ + readedFileAmount++; + } + else{ + logger.warn(name); + } + commonFileManager.moveFile(remoteType, name, ftp, ftpFileManager.getCurrentPath(ftp), backUpPath, session, smbForm); } } catch (IOException e){ @@ -248,7 +304,7 @@ /** * 长龙清洗机数据处理 */ - public String washDataReadAndSave(SmbFile remoteFile,Long devInterfaceId, boolean enableDetailedDeviceInformation, LoginUserData loginUserData) throws IOException{ + public String washDataReadAndSave(SmbFile remoteFile,DeviceInterface deviceInterface, boolean enableDetailedDeviceInformation, LoginUserData loginUserData) throws IOException{ BufferedReader br = null; try{ br = new BufferedReader(new InputStreamReader( @@ -259,6 +315,7 @@ boolean isFirstLine = false; boolean fileError = false; WashDataOfChangLong washData = null; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm"); while ((line = br.readLine()) != null) { line = line.trim().replace(" ",""); if(line.equals(START_FLAG)){ @@ -271,7 +328,7 @@ isFirstLine = false; if(line.equals("CYCLECOMPLETED")){ washData = new WashDataOfChangLong(); - isFirstLine = readBaseInfo(washData, br); + isFirstLine = readBaseInfo(washData, br, sdf); if(!isFirstLine){//文件结束 break; } @@ -303,8 +360,14 @@ } if(!fileError && washData != null){ washData.setMachineNo(machineNumber); - washData.setDeviceInterfaceID(devInterfaceId); + washData.setDeviceInterfaceID(deviceInterface.getId()); cycleCounter = washData.getCycleCounter().toString(); + if(DatabaseUtil.isPoIdValid(cycleCounter) && washData.getCompletedDate() != null){ + Long washAndDisinfectRecordId = washAndDisinfectRecordManager.refreshWashRecordAmounts(deviceInterface, washData.getCycleCounter(), machineNumber, washData.getCompletedDate(), (long) washData.getWashDataItems().size(), WashAndDisinfectRecord.WASHDATATYPE_STERIS_CHANGLONG); + if(DatabaseUtil.isPoIdValid(washAndDisinfectRecordId)){ + washData.setWashAndDisinfectRecordId(washAndDisinfectRecordId); + } + } objectDao.saveOrUpdate(washData); } return cycleCounter; @@ -433,7 +496,7 @@ * @throws IOException * @throws ParseException */ - private boolean readBaseInfo(WashDataOfChangLong washData, BufferedReader br) throws IOException, ParseException { + private boolean readBaseInfo(WashDataOfChangLong washData, BufferedReader br, SimpleDateFormat sdf) throws IOException, ParseException { String line = null; int lineNumber = 2; while((line = br.readLine()) != null){ @@ -448,6 +511,9 @@ break; case 3 : washData.setCompletedTime(parseTime(line)); + if(StringUtils.isNotBlank(washData.getCompletedTime())){ + washData.setCompletedDate(sdf.parse(washData.getCompletedTime())); + } break; default : break; Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r40381 -r40583 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 40381) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 40583) @@ -3989,15 +3989,23 @@ } @Override - public JSONObject getWashDataOfChangLongById(Long washRecordId) { + public JSONObject getWashDataOfChangLongById(Long washRecordId, Long washDataRecordId) { WashAndDisinfectRecord sr = get(washRecordId); Rinser rs = (Rinser)objectDao.getByProperty(Rinser.class.getSimpleName(), "id", sr.getRinserId()); if(sr != null && rs != null) { - String hql = " where po.deviceInterfaceID = " + rs.getDeviceInterfaceId() - + " and po.machineNo = '" + rs.getMachineNumber() - + "' and po.cycleCounter = " + sr.getCycleCounter(); - WashDataOfChangLong washData = (WashDataOfChangLong) objectDao.getBySql(WashDataOfChangLong.class.getSimpleName(), hql); + WashDataOfChangLong washData = null; + if(DatabaseUtil.isPoIdValid(washDataRecordId)){ + washData = (WashDataOfChangLong)objectDao.getById(WashDataOfChangLong.class.getSimpleName(), washDataRecordId); + } else if(WashAndDisinfectRecord.WASHDATATYPE_STERIS_CHANGLONG.equals(sr.getWashDataType())){ + String hql = " where washAndDisinfectRecordId = " + washRecordId; + washData= (WashDataOfChangLong) objectDao.getBySql(WashDataOfChangLong.class.getSimpleName(), hql); + }else{ + String hql = " where po.deviceInterfaceID = " + rs.getDeviceInterfaceId() + + " and po.machineNo = '" + rs.getMachineNumber() + + "' and po.cycleCounter = " + sr.getCycleCounter(); + washData= (WashDataOfChangLong) objectDao.getBySql(WashDataOfChangLong.class.getSimpleName(), hql); + } if(washData != null){ JSONObject object = new JSONObject(); object.put("totalCycleTime", washData.getTotalCycleTime()); @@ -4337,7 +4345,13 @@ WashAndDisinfectRecord wdr = get(washRecordId); Rinser rs = (Rinser)objectDao.getByProperty(Rinser.class.getSimpleName(), "id", wdr.getRinserId()); if(wdr != null && rs != null){ - WashDataOfChangLong washData = this.getWashDatasOfChangLong(Long.valueOf(rs.getDeviceInterfaceId()), wdr.getCycleCounter(),rs.getMachineNumber()); + WashDataOfChangLong washData = null; + if(wdr.getWashDataType() == 6){ + String whereSql = String.format(" where po.washAndDisinfectRecordId = %s ",wdr.getId()); + washData = (WashDataOfChangLong) objectDao.getBySql(WashDataOfChangLong.class.getSimpleName(), whereSql); + }else{ + washData = this.getWashDatasOfChangLong(Long.valueOf(rs.getDeviceInterfaceId()), wdr.getCycleCounter(),rs.getMachineNumber()); + } if(washData != null){ washDataItems = washData.getWashDataItems(); } @@ -6542,8 +6556,11 @@ }else if(DeviceInterface.STERIS.equals(deviceInterface.getDeviceBrand())){ if(StringUtils.equals(deviceInterface.getDeviceModel(), DeviceInterface.STERIS_AMSCO_3052)){ return findWashDataOfSterisDataList(rinser.getMachineNumber(), startDate, endDate); + }else if(StringUtils.equals(deviceInterface.getDeviceModel(), DeviceInterface.STERIS_CHANGLONG)){ + return findWashDataOfChangLongDataList(rinser.getMachineNumber(), startDate, endDate); + }else{ + return findCommonWashDataList(rinser.getMachineNumber(),startDate, endDate); } - throw new SystemException("未支持的设备型号:"+deviceInterface.getDeviceModel()); }else if(DeviceInterface.GETINGE.equals(deviceInterface.getDeviceBrand())){ if(StringUtils.equals(deviceInterface.getDeviceModel(), DeviceInterface.GETING_86_SERIES) || StringUtils.equals(deviceInterface.getDeviceModel(), DeviceInterface.GETING_SUZHOUJIEDING_46_5)){ @@ -6599,6 +6616,38 @@ * @param startDate 开始时间 * @param endDate 结束时间 */ + private JSONArray findWashDataOfChangLongDataList(String machineNumber, String startDate, String endDate){ + String hql = "select po from " + + WashDataOfChangLong.class.getSimpleName() + +" po where machineNo='" + + machineNumber + + "' and completedDate between " + + dateQueryAdapter.dateAdapter(startDate) + + " and " + + dateQueryAdapter.dateAdapter(endDate) + + " order by po.completedDate desc "; + List records = objectDao.findByHql(hql); + if(CollectionUtils.isEmpty(records)){ + return null; + } + JSONArray result = new JSONArray(); + DateFormat df = DateTools.YMDHMSFORMAT.get(); + for (WashDataOfChangLong record : records){ + JSONObject obj = new JSONObject(); + obj.put("machineNumber", record.getMachineNo()); + obj.put("cycleCounter", record.getCycleCounter()); + obj.put("endDate", record.getCompletedDate() == null?"":df.format(record.getCompletedDate())); + obj.put("washDataRecordId", record.getId()); + obj.put("washAndDisinfectRecordId", record.getWashAndDisinfectRecordId()); + result.add(obj); + } + return result; + } + /** + * @param machineNumber 机器号 + * @param startDate 开始时间 + * @param endDate 结束时间 + */ private JSONArray findWashDataOfSterisDataList(String machineNumber, String startDate, String endDate){ String hql = "select po from " + WashDataOfSteris.class.getSimpleName() @@ -6769,8 +6818,10 @@ }else if(DeviceInterface.STERIS.equals(deviceInterface.getDeviceBrand())){ if(StringUtils.equals(deviceInterface.getDeviceModel(), DeviceInterface.STERIS_AMSCO_3052)){ associatedWashDataOfSteris(washDataRecordId, washAndDisinfectRecord); + }else if(StringUtils.equals(deviceInterface.getDeviceModel(), DeviceInterface.STERIS_CHANGLONG)){ + associatedWashDataOfChangLong(washDataRecordId, washAndDisinfectRecord); }else{ - throw new SystemException("未知支持的设备型号:"+deviceInterface.getDeviceModel()); + associatedCommonWashDataRecord(washDataRecordId, washAndDisinfectRecord); } }else if(DeviceInterface.GETINGE.equals(deviceInterface.getDeviceBrand())){ if(StringUtils.equals(deviceInterface.getDeviceModel(), DeviceInterface.GETING_86_SERIES) @@ -6895,6 +6946,39 @@ * @param washDataRecordId 清洗参数id * @param washAndDisinfectRecord 清洗记录 */ + private void associatedWashDataOfChangLong(Long washDataRecordId, WashAndDisinfectRecord washAndDisinfectRecord){ + WashDataOfChangLong record = (WashDataOfChangLong)objectDao.getById(WashDataOfChangLong.class.getSimpleName(),washDataRecordId); + if(record == null){ + throw new SystemException("查询不到清洗参数,id="+washDataRecordId); + } + //查询并清掉旧的关联 + WashDataOfChangLong oldRecord = (WashDataOfChangLong)objectDao.getBySql(WashDataOfChangLong.class.getSimpleName() + , " where po.washAndDisinfectRecordId="+ washAndDisinfectRecord.getId()); + if(oldRecord != null){ + if(MathTools.equals(oldRecord.getId(),record.getId())){ + throw new SystemException("选择的记录已和当前清洗记录关联,无需再关联"); + } + oldRecord.setWashAndDisinfectRecordId(null); + objectDao.update(oldRecord); + } + updateOtherWashAndDisinfectRecord(record.getWashAndDisinfectRecordId()); + record.setWashAndDisinfectRecordId(washAndDisinfectRecord.getId()); + if(!WashAndDisinfectRecord.WASHDATATYPE_STERIS_CHANGLONG.equals(washAndDisinfectRecord.getWashDataType())){ + washAndDisinfectRecord.setWashDataType(WashAndDisinfectRecord.WASHDATATYPE_STERIS_CHANGLONG); + objectDao.update(washAndDisinfectRecord); + } + objectDao.update(record); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_WASH, Log.TYPE_UPDATE, "将流水号“" + + washAndDisinfectRecord.getSerialNumber() + +"”的清洗记录关联了参数文件(机器号:"+ record.getMachineNo() +",完成时间" + + (record.getCompletedDate() == null?"":DateTools.YMDHMSFORMAT.get().format(record.getCompletedDate())) + +")"); + } + /** + * 关联 STERIS_AMSCO_3052 + * @param washDataRecordId 清洗参数id + * @param washAndDisinfectRecord 清洗记录 + */ private void associatedWashDataOfSteris(Long washDataRecordId, WashAndDisinfectRecord washAndDisinfectRecord){ WashDataOfSteris record = (WashDataOfSteris)objectDao.getById(WashDataOfSteris.class.getSimpleName(),washDataRecordId); if(record == null){ @@ -7009,7 +7093,7 @@ } @Override - public Long refreshWashRecordAmounts(DeviceInterface deviceInterface, Long cycleCounter, String machineNo, Date startDate, Long washDataAmount, Integer washDataType) { + public Long refreshWashRecordAmounts(DeviceInterface deviceInterface, Long cycleCounter, String machineNo, Date date, Long washDataAmount, Integer washDataType) { // 根据接口和机器号找到清洗机 Session session = objectDao.getHibernateSession(); String queryString = "select r from "+ Rinser.class.getSimpleName() @@ -7025,11 +7109,17 @@ queryString = "select wd from WashAndDisinfectRecord wd" + " where wd.rinserId = :rinserId "; if(sterilizaMatchPatternForDate || DeviceInterface.PARAMATCHINGMETHOD_STARTDATE.equals(deviceInterface.getParaMatchingMethod())){ - Date beginStartTime = new Date(startDate.getTime() - 10*60*1000); - Date endStartTime = new Date(startDate.getTime() + 10*60*1000); + Date beginStartTime = new Date(date.getTime() - 10*60*1000); + Date endStartTime = new Date(date.getTime() + 10*60*1000); String beginStartTimeStr = ForgonDateUtils.safelyFormatDate(beginStartTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); String endStartTimeStr = ForgonDateUtils.safelyFormatDate(endStartTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); - queryString+=" and " + dateQueryAdapter.dateAreaSql("wd.startDate", beginStartTimeStr, endStartTimeStr, false); + queryString+=" and " + dateQueryAdapter.dateAreaSql("wd.date", beginStartTimeStr, endStartTimeStr, false); + }else if(DeviceInterface.PARAMATCHINGMETHOD_ENDDATE.equals(deviceInterface.getParaMatchingMethod())){ + Date beginEndTime = new Date(date.getTime() - 10*60*1000); + Date endEndTime = new Date(date.getTime() + 10*60*1000); + String beginStartTimeStr = ForgonDateUtils.safelyFormatDate(beginEndTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); + String endStartTimeStr = ForgonDateUtils.safelyFormatDate(endEndTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); + queryString+=" and " + dateQueryAdapter.dateAreaSql("wd.endDate", beginStartTimeStr, endStartTimeStr, false); }else{ queryString+=" and wd.cycleCounter = '"+ cycleCounter +"' " ; } Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashDataLineChartAction.java =================================================================== diff -u -r40302 -r40583 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashDataLineChartAction.java (.../WashDataLineChartAction.java) (revision 40302) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashDataLineChartAction.java (.../WashDataLineChartAction.java) (revision 40583) @@ -89,7 +89,8 @@ String washAndDisinfectRecordId = StrutsParamUtils.getPraramValue( "washAndDisinfectRecordId", null); try { - JSONObject washData = washAndDisinfectRecordManager.getWashDataOfChangLongById(Long.valueOf(washAndDisinfectRecordId)); + Long washDataRecordId = StrutsParamUtils.getPraramLongValue("washDataRecordId", null); + JSONObject washData = washAndDisinfectRecordManager.getWashDataOfChangLongById(Long.valueOf(washAndDisinfectRecordId), washDataRecordId); StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); StrutsParamUtils.getResponse().getWriter() .println(washData); Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java =================================================================== diff -u -r40302 -r40583 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java (.../WashAndDisinfectRecordManager.java) (revision 40302) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java (.../WashAndDisinfectRecordManager.java) (revision 40583) @@ -276,10 +276,11 @@ /** * 根据清洗记录的id,获得关联的长龙清洗数据 - * @param valueOf + * @param washRecordId + * @param washDataRecordId * @return */ - public JSONObject getWashDataOfChangLongById(Long washRecordId); + public JSONObject getWashDataOfChangLongById(Long washRecordId, Long washDataRecordId); /** * 根据清洗记录的id,获得清洗机的型号、品牌 @@ -502,11 +503,12 @@ * @param deviceInterface 设备接口 * @param cycleCounter 循环次数 * @param machineNo 机器号 - * @param startDate 开始时间 + * @param date 开始时间 或 结束时间 按开始时间匹配就传开始时间 * @param washDataAmount 清洗参数条数 * @param washDataType 清洗数据类型 + * return 清洗记录id */ - public Long refreshWashRecordAmounts(DeviceInterface deviceInterface, Long cycleCounter, String machineNo, Date startDate, Long washDataAmount, Integer washDataType); + public Long refreshWashRecordAmounts(DeviceInterface deviceInterface, Long cycleCounter, String machineNo, Date date, Long washDataAmount, Integer washDataType); /** * 关联清洗通用型清洗参数 * @param washDataRecordId 清洗参数id Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/deviceinterface/DeviceInterface.java =================================================================== diff -u -r40332 -r40583 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/deviceinterface/DeviceInterface.java (.../DeviceInterface.java) (revision 40332) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/deviceinterface/DeviceInterface.java (.../DeviceInterface.java) (revision 40583) @@ -172,6 +172,11 @@ * 石狮市医院新华长龙清洗机型号:DC-4 */ public static final String XINHUA_CHANGLONG_DC_4 = "changlong DC-4"; + + /** + * Steris品牌 的型号 changlong + */ + public static final String STERIS_CHANGLONG = "changlong"; /** * 新疆军区总医院新华长龙清洗机型号:DC-5 @@ -362,6 +367,7 @@ private String deviceType; public static final String PARAMATCHINGMETHOD_STARTDATE = "按开始时间"; public static final String PARAMATCHINGMETHOD_CYCLECOUNTER = "按循环次数"; + public static final String PARAMATCHINGMETHOD_ENDDATE = "按结束时间"; /** * 参数匹配方式 */