Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washDataChart/washDataChartOfGetingOf86Series.js
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washDataChart/washDataChartOfGetingOf86Series.js (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washDataChart/washDataChartOfGetingOf86Series.js (revision 30382)
@@ -0,0 +1,181 @@
+$(function () {
+ loadWashDataAndLineChart();
+})
+
+function loadWashDataAndLineChart() {
+ //创建echart
+ creatLineChart("温度曲线", "cabinOne");
+ //获取清洗机信息和曲线图
+ loadWashDataAndLineChartInfo(washAndDisinfectRecordId);
+}
+
+function loadWashDataAndLineChartInfo(washAndDisinfectRecordId) {
+ // console.log(washAndDisinfectRecordId);
+ $.ajax({
+ type: "get",
+ url: WWWROOT + "/disinfectSystem/washData/washDataLineChartAction!getWashDataAndLineEchartDate.do?washAndDisinfectRecordId=" + washAndDisinfectRecordId + "&time=" + new Date(),
+ data: "data",
+ dataType: "json",
+ success: function (response) {
+ if (response.success) {
+ var data = response.data;
+ var lineChartInfo = data.washDataItemLineChart;
+ renderWashData(data);
+ renderLineChart(lineChartInfo, 'cabinOne');
+ } else {
+ alert("请求数据失败!" + response.message);
+ }
+ }
+ });
+}
+
+/**
+ * 加载清洗机信息
+ * @param {*} data
+ */
+function renderWashData(data) {
+ $('#cycleCounter').text(data['cycleCounter']);
+ $('#startedTimeStr').text(data['startedTime']);
+ $('#machineName').text(data['machineName']);
+ $('#machineID').text(data['machineID']);
+ $('#cycleCounter').text(data['cycleCounter']);
+ $('#process').text(data['program']);
+ $('#endTimeStr').text(data['endTime']);
+
+ var parameters = data['parameters'];
+ var parameterArr = parameters.split(';');
+ var wrappdiv = $('.wash_details_wrapp');
+ var parentdiv = "";
+ for (var i = 1; i <= parameterArr.length; i++) {
+ var parameter = parameterArr[i-1];
+ var tempArr = parameter.split('>>');
+ var key = tempArr[0];
+ var value = tempArr[1];
+ var childdiv = '';
+ if(i%2==0){
+ childdiv=$('
'+key+':'+value+'
');
+ wrappdiv.append(parentdiv);
+ }else{
+ childdiv=$(''+key+':'+value+'
');
+ parentdiv = $('');
+ }
+ parentdiv.append(childdiv);
+ }
+}
+
+/**
+ * 创建曲线图表
+ * @param {*} text
+ * @param {*} echartsId
+ */
+function creatLineChart(text, echartsId) {
+ var myChart = echarts.init(document.getElementById(echartsId));
+ var myChartOption = {
+ title: {
+ text: text,
+ left: 'center',
+ top: 0
+ },
+ tooltip: {
+ trigger: 'axis',
+ extraCssText: 'width:150px;height:50px;'
+ },
+ color: ['#00CD66'],
+ legend: {
+ top: 25,
+ data: ['T1']
+ },
+ grid: {
+ left: '6%',
+ containLabel: true
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: true,
+ axisTick: {
+ alignWithLabel: true,
+ inside: true //刻度线朝内
+ },
+ name: "时间",
+ nameLocation: 'center',
+ nameGap: 10, //坐标名称与轴线之间的距离
+ data: []
+ },
+ yAxis: {
+ type: 'value',
+ name: "温度",
+ nameLocation: 'center',
+ nameGap: 35, //坐标名称与轴线之间的距离
+ axisTick: {
+ alignWithLabel: true,
+ inside: true
+ }
+ },
+ series: [{
+ name: '',
+ type: 'line',
+ symbol: "none", //去掉圆点
+ itemStyle: {
+ normal: {
+ lineStyle: {
+ color: '#00CD66' //设置线的颜色,如果在这里设置了要再上面的colo数组里面一起修改
+ }
+ }
+ },
+ data: []
+ }
+ ]
+ };
+ myChart.setOption(myChartOption);
+ //自适应
+ window.onresize = function () {
+ myChart.resize();
+ }
+}
+
+/**
+ * 加载曲线数据
+ * @param {*} dataObject
+ * @param {*} echartsId
+ */
+function renderLineChart(dataObject, echartsId) {
+ if (dataObject) {
+ // console.log(dataObject);
+ var myChart = echarts.init(document.getElementById(echartsId));
+ var timeArray = dataObject['time'];
+ var t1Array = dataObject['t1Temp'];
+ myChart.setOption({
+ xAxis: {
+ type: 'category',
+ boundaryGap: true,
+ axisTick: {
+ alignWithLabel: true,
+ inside: true //刻度线朝内
+ },
+ name: "时间",
+ nameLocation: 'center',
+ nameGap: 30, //坐标名称与轴线之间的距离
+ data: timeArray,
+ axisLabel: {
+ formatter: function (value, index) { //截取分钟
+
+ }
+ }
+ },
+ series: [{
+ name: '',
+ type: 'line',
+ symbol: "none", //去掉圆点
+ itemStyle: {
+ normal: {
+ lineStyle: {
+ color: '#00CD66' //设置线的颜色,如果在这里设置了要再上面的colo数组里面一起修改
+ }
+ }
+ },
+ data: t1Array
+ }
+ ]
+ });
+ }
+}
\ No newline at end of file
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/deviceinterface/DeviceInterface.java
===================================================================
diff -u -r30381 -r30382
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/deviceinterface/DeviceInterface.java (.../DeviceInterface.java) (revision 30381)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/deviceinterface/DeviceInterface.java (.../DeviceInterface.java) (revision 30382)
@@ -99,6 +99,11 @@
*/
public static final String XINHUA_Repaid_A_520 = "Repaid-a-520";
+ /**
+ * 洁定清洗机型号:86-series(KLMYSRMYY-8)
+ */
+ public static final String GETING_86_SERIES = "86-series";
+
private Long id;
/**
Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/deviceInterface/deviceInterfaceView.jsp
===================================================================
diff -u -r30339 -r30382
--- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/deviceInterface/deviceInterfaceView.jsp (.../deviceInterfaceView.jsp) (revision 30339)
+++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/deviceInterface/deviceInterfaceView.jsp (.../deviceInterfaceView.jsp) (revision 30382)
@@ -51,6 +51,10 @@
* Repaid-a-520(南方医科大学附属第三医院NYSY-28)
*/
var XINHUA_Repaid_A_520 = '<%=DeviceInterface.XINHUA_Repaid_A_520%>';
+/**
+ * 洁定清洗机型号:86-series(KLMYSRMYY-8)
+ */
+var GETING_86_SERIES = '<%=DeviceInterface.GETING_86_SERIES%>';
/**
* 《供应商包添加》权限
Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washAndDisinfectView.jsp
===================================================================
diff -u -r29513 -r30382
--- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washAndDisinfectView.jsp (.../washAndDisinfectView.jsp) (revision 29513)
+++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washAndDisinfectView.jsp (.../washAndDisinfectView.jsp) (revision 30382)
@@ -117,6 +117,8 @@
var changLong = '<%= DeviceInterface.CHANGLONG %>';
var marge = '<%= DeviceInterface.MARGE %>';
var xinHua = '<%= DeviceInterface.XINHUA %>';
+var GETINGE = '<%= DeviceInterface.GETINGE %>';
+var GETING_86_SERIES = '<%= DeviceInterface.GETING_86_SERIES %>';
Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/Getinge86SeriesDataManagerImpl.java
===================================================================
diff -u
--- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/Getinge86SeriesDataManagerImpl.java (revision 0)
+++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/Getinge86SeriesDataManagerImpl.java (revision 30382)
@@ -0,0 +1,549 @@
+package com.forgon.disinfectsystem.maintain.device.service;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import jcifs.smb.SmbFile;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.io.output.ByteArrayOutputStream;
+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;
+import org.springframework.integration.smb.session.SmbSession;
+import org.springframework.integration.smb.session.SmbShare;
+
+import com.forgon.Constants;
+import com.forgon.directory.vo.LoginUserData;
+import com.forgon.disinfectsystem.entity.basedatamanager.deviceinterface.DeviceInterface;
+import com.forgon.disinfectsystem.entity.basedatamanager.rinser.Rinser;
+import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizerrecord.SterilizerFileName;
+import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.WashDataItemOfGeting;
+import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.WashDataOfGeting;
+import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord;
+import com.forgon.disinfectsystem.filemanager.CommonFileManager;
+import com.forgon.disinfectsystem.filemanager.FtpFileManager;
+import com.forgon.disinfectsystem.filemanager.SmbFileManager;
+import com.forgon.disinfectsystem.washanddisinfectmanager.washanddisinfectrecord.service.WashAndDisinfectRecordManager;
+import com.forgon.log.model.Log;
+import com.forgon.log.service.LogManager;
+import com.forgon.tools.FileSystemHelper;
+import com.forgon.tools.date.DateTools;
+import com.forgon.tools.hibernate.ObjectDao;
+import com.forgon.tools.string.StringTools;
+/**
+ * 洁定灭菌炉、清洗机数据处理
+ * @author zhouPeiMian 2021-01-22
+ *
+ */
+public class Getinge86SeriesDataManagerImpl implements DeviceDataManager{
+ private LogManager appLogManager;
+ private ObjectDao objectDao;
+ private WashAndDisinfectRecordManager washAndDisinfectRecordManager;
+ private SmbFileManager smbFileManager;
+ private FtpFileManager ftpFileManager;
+ private CommonFileManager commonFileManager;
+ public void setCommonFileManager(CommonFileManager commonFileManager) {
+ this.commonFileManager = commonFileManager;
+ }
+ public void setSmbFileManager(SmbFileManager smbFileManager) {
+ this.smbFileManager = smbFileManager;
+ }
+ public void setFtpFileManager(FtpFileManager ftpFileManager) {
+ this.ftpFileManager = ftpFileManager;
+ }
+
+ private static final Logger logger = Logger
+ .getLogger(GetingeDataManagerImpl.class);
+
+ public void setWashAndDisinfectRecordManager(
+ WashAndDisinfectRecordManager washAndDisinfectRecordManager) {
+ this.washAndDisinfectRecordManager = washAndDisinfectRecordManager;
+ }
+
+ public void setObjectDao(ObjectDao objectDao) {
+ this.objectDao = objectDao;
+ }
+
+ public void setAppLogManager(LogManager appLogManager) {
+ this.appLogManager = appLogManager;
+ }
+
+ /**
+ * 从接口读取数据和存入数据库
+ */
+ @Override
+ public void readAndSaveRecord(DeviceInterface devInterface,String machineNo,String brand,String isAutoCompleteSterilization, boolean enableDetailedDeviceInformation, LoginUserData loginUserData) {
+ if(devInterface == null || StringUtils.isBlank(machineNo)) {
+ logger.debug(".......devInterface或机器号是空的");
+ return ;
+ }
+ readAndSaveRecordCommon(devInterface, machineNo, brand, isAutoCompleteSterilization, enableDetailedDeviceInformation, loginUserData);
+ }
+
+ /**
+ * 数据处理结束之后的工作,移动文件夹等等
+ */
+ @Override
+ public void end() {
+
+ }
+
+ /**
+ * 查找文件的机器号和是否清洗机记录
+ * @param remoteType
+ * @param ftp
+ * @param ftpFile
+ * @param smbFile
+ * @return
+ */
+ public JSONObject getMachineNoAndIsWashingMachine(String remoteType ,FTPClient ftp, String fileName, SmbFile smbFile){
+ JSONObject obj = new JSONObject();
+ String machineNo = null;
+ boolean isWashingMachine = true;
+ BufferedReader br = null;
+ InputStreamReader isr = null;
+ InputStream inputStream = null;
+ ByteArrayOutputStream out = null;
+ try {
+ inputStream = commonFileManager.getInputStream(remoteType, ftp, fileName, smbFile, out);
+ //FTP协议规定文件编码格式为ISO-8859-1
+ //读取文件,使用下载文件的方法把文件写入内存,绑定到out流上
+ br = commonFileManager.getBufferedReader(isr, inputStream,null);
+ String line;
+ boolean readedMachineNo = false;
+ boolean readedCP = false;
+ while((line = br.readLine()) != null){
+ if(readedMachineNo && readedCP){
+ break;
+ }
+ if(StringUtils.isBlank(line)){
+ continue;
+ }
+ if(line.contains("MACHINE NAME")){
+ //是设备号的行
+ machineNo = line.replace("MACHINE NAME", "").replaceAll(":", "").trim();
+ obj.put("machineNo", machineNo);
+ readedMachineNo = true;
+ }
+ }
+ obj.put("isWashingMachine", isWashingMachine);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("获取机器号和验证是否清洗机异常");
+ }finally{
+ FileSystemHelper.closeInputStream(inputStream, br, isr, out);
+ }
+ return obj;
+ }
+
+ public void readAndSaveRecordByShareFolder(DeviceInterface devInterface,String machineNo,String brand,String isAutoCompleteSterilization, boolean enableDetailedDeviceInformation, LoginUserData loginUserData){
+ SmbSession session=null;
+ String ip = devInterface.getIP();
+ String directory = devInterface.getFolderPath();
+ String userName=devInterface.getUserName();
+ String pwd = devInterface.getPassword();
+ String rootURL = "//"+ ip + "/" + directory + "/";
+ logger.debug("设备IP===="+ip);
+ logger.debug("用户名===="+userName);
+ logger.debug("密码===="+pwd);
+ // smbFileName格式 "smb://192.168.2.18/Share/c.csv"
+ // 获取到名字,判断是清洗机还是灭菌炉,再调用相关的函数处理
+ //"smb://192.168.2.18/Share/"
+ try {
+ SmbShare share = new SmbShare("smb://" + userName +":"+ pwd +"@"+ ip +"/"+ directory +"/");
+ session = new SmbSession(share);
+ String backUp = rootURL +"backUp/";
+ smbFileManager.makeDirectory(session, backUp);
+ for (String name : share.list()){
+ SmbFile smbForm=session.createSmbFileObject(rootURL + name);
+ if(smbForm.isDirectory()){
+ continue;
+ }
+ if( objectDao.getByProperty(SterilizerFileName.class.getSimpleName(), "fileName", name)!=null){
+ logger.debug(name+"该文件已经解析过");
+ continue;
+ }
+ // 只处理.XML文件
+ if ( !(name.endsWith("LOG") || name.endsWith("log")) ){
+ logger.debug("只处理.log文件->continue");
+ continue;
+ }
+ // 机器号和品牌都要匹配,才处理
+ if(!StringUtils.equals(brand, DeviceInterface.GETINGE)){
+ logger.debug("品牌不对-机器品牌号:"+ brand +",接口品牌:" + DeviceInterface.GETINGE+ ">continue="+brand);
+ continue;
+ }
+ JSONObject machineNumAndIsWashingMachine = getMachineNoAndIsWashingMachine(DeviceInterface.INTERFACETYPE_SHAREFOLDER, null, null, smbForm);
+ String machineNumber = machineNumAndIsWashingMachine.optString("machineNo");
+ if( !machineNo.equals(machineNumber) ){
+ logger.debug("机器号不对-机器号:"+machineNo+",文件机器号:"+machineNumber + "->continue="+machineNo);
+ continue;
+ }
+ String cycleCounter = null;
+ if(machineNumAndIsWashingMachine.optBoolean("isWashingMachine")){
+ // 清洗机数据的处理
+ JSONArray jsArray = washDataReadAndSave(smbForm, devInterface, DeviceInterface.INTERFACETYPE_SHAREFOLDER, null, null, machineNumber, enableDetailedDeviceInformation, loginUserData);
+ if( jsArray != null){
+ cycleCounter = (String)jsArray.get(0);
+ refreshWashRecordAmounts(devInterface.getId().toString(),Long.parseLong(cycleCounter),machineNumber);
+ SmbFile desFile = session.createSmbFileObject(backUp + name);
+ try{
+ smbForm.copyTo(desFile);
+ smbForm.delete();
+ }catch(Exception e){
+ e.printStackTrace();
+ logger.debug(name+"文件在移动和删除过程中发生错误");
+ }
+ }
+ }
+ }
+ } catch (IOException e) {
+ // 捕获BufferedReader对象关闭时的异常
+ logger.warn(e.getMessage());
+ e.printStackTrace();
+ if(enableDetailedDeviceInformation){
+ appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_ADD, devInterface.getName() + "设备接口连接异常," + e.getMessage());
+ }
+ }finally{
+ session.close();
+ }
+ }
+
+ public void readAndSaveRecordCommon(DeviceInterface devInterface,String machineNo,String brand,String isAutoCompleteSterilization, boolean enableDetailedDeviceInformation, LoginUserData loginUserData){
+ FTPClient ftp = null;
+ SmbSession session = null;
+ try {
+ String ip = devInterface.getIP();
+ String directory = devInterface.getFolderPath();
+ if(!directory.startsWith("/")){
+ directory = "/" + directory;
+ }
+ String userName=devInterface.getUserName();
+ String remoteType = devInterface.getInterfaceType();
+ String pwd = devInterface.getPassword();
+ String rootPath = null;
+ FTPFileFilter filterLog = null;
+ FTPFile[] files = null;
+ String[] shareList = null;
+ Integer length = 0;
+ if(enableDetailedDeviceInformation){
+ appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_CONNECT, "ip:"+ip + ",user:"+userName + ",目录:"+directory);
+ }
+ 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);
+ if(enableDetailedDeviceInformation){
+ appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "读取文件位置:"+ ftpFileManager.getCurrentPath(ftp));
+ }
+ filterLog = new FTPFileFilter() {// 只处理.log文件
+ @Override
+ public boolean accept(FTPFile file) {
+ if(file.isDirectory()){
+ return false;
+ }else if(file.getName().endsWith("LOG") || file.getName().endsWith("log")){
+ return true;
+ }
+ logger.debug("只处理.log文件->continue");
+ return false;
+ }
+ };
+ files = ftpFileManager.getListFiles(ftp, "", filterLog, enableDetailedDeviceInformation, loginUserData);
+ length = files.length;
+ }else{
+ rootPath = "//"+ ip + directory;
+ SmbShare share = new SmbShare("smb://" + userName +":"+ pwd +"@"+ ip +"/"+ directory +"/");
+ session = new SmbSession(share);
+ shareList = share.list();
+ length = shareList.length;
+ }
+ String backUpPath = rootPath + "/backUp";
+ if(enableDetailedDeviceInformation){
+ appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "文件数量:"+ length+",backUp位置:" + backUpPath);
+ }
+ commonFileManager.makeDirectory(remoteType, ftp, backUpPath, session, enableDetailedDeviceInformation, loginUserData);
+ for (int i = 0; i < length; 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];
+ // 只处理.LOG文件
+ if (!(name.endsWith("LOG") || name.endsWith("log"))){
+ logger.debug("只处理.log文件->continue");
+ continue;
+ }
+ smbForm = session.createSmbFileObject(rootPath + File.separator + name);
+ if(smbForm == null || smbForm.isDirectory()){
+ continue;
+ }
+ }
+ // 机器号和品牌都要匹配,才处理
+ if(!StringUtils.equals(brand, DeviceInterface.GETINGE)){
+ continue;
+ }
+ if(objectDao.getByProperty(SterilizerFileName.class.getSimpleName(), "fileName", name)!=null){
+ logger.debug(name+"该文件已经解析过");
+ commonFileManager.moveFile(remoteType, name, ftp, ftpFileManager.getCurrentPath(ftp), backUpPath, session, smbForm);
+ continue;
+ }
+ JSONObject machineNumAndIsWashingMachine = getMachineNoAndIsWashingMachine(remoteType, ftp, name, smbForm);
+ String machineNumber = machineNumAndIsWashingMachine.optString("machineNo");
+ if( !machineNo.equals(machineNumber) ){
+ if(enableDetailedDeviceInformation){
+ appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("文件机器号[%s]不匹配灭菌炉机器号[%s]", machineNumber,machineNo));
+ }
+ continue ;
+ }
+ String cycleCounter = null;
+
+ if(machineNumAndIsWashingMachine.optBoolean("isWashingMachine")){
+ // 清洗机数据的处理
+ JSONArray jsArray = washDataReadAndSave(smbForm, devInterface, remoteType, ftp, name, machineNumber, enableDetailedDeviceInformation, loginUserData);
+ if(jsArray != null){
+ cycleCounter = (String)jsArray.get(0);
+ refreshWashRecordAmounts(devInterface.getId().toString(),Long.parseLong(cycleCounter),machineNumber);
+ }
+ }
+ try{
+ commonFileManager.moveFile(remoteType, name, ftp, ftpFileManager.getCurrentPath(ftp), backUpPath, session, smbForm);
+ }catch(Exception e){
+ e.printStackTrace();
+ logger.debug(name+"文件在移动和删除过程中发生错误");
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.warn(e.getMessage());
+ if(enableDetailedDeviceInformation){
+ appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_ADD, e.getMessage());
+ }
+ throw new RuntimeException(e.getMessage());
+ }finally{
+ ftpFileManager.closeFTP(ftp);
+ if(session != null){
+ session.close();
+ }
+ }
+ }
+
+ /**
+ * 洁定清洗机数据处理
+ */
+ public JSONArray washDataReadAndSave(SmbFile remoteFile,DeviceInterface devInterface, String remoteType, FTPClient ftp, String fileName, String machineNumber, boolean enableDetailedDeviceInformation, LoginUserData loginUserData){
+ InputStream inputStream = null;
+ ByteArrayOutputStream fos = null;
+ InputStreamReader isr = null;
+ BufferedReader br = null;
+ boolean isSave = false;//是否已经解析保存
+ try{
+ inputStream = commonFileManager.getInputStream(remoteType, ftp, fileName, remoteFile, fos);
+ String cycleCounter = null;
+ // 读取直到最后一行
+ WashDataOfGeting record = new WashDataOfGeting();
+ record.setDeviceInterfaceID(devInterface.getId().toString());
+ List washDataOfGetingItems = new ArrayList();
+ WashDataItemOfGeting item = new WashDataItemOfGeting();
+ String startTime = "";
+ boolean isParameters = false;
+ boolean isTemp = false;
+ String processOfTemp = "";
+ String regex = "^([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$";
+ br = commonFileManager.getBufferedReader(isr, inputStream, "utf-8");
+ String line = null;
+ while((line = br.readLine()) != null){
+ if(StringUtils.isBlank(line) || line.contains("-----------------------")){
+ continue;
+ }
+ if(line.contains("PROGRAM:")){
+ record.setProgram(line.replace("PROGRAM:", "").trim());
+ }else if(line.contains("DATE")){
+ startTime = line.replaceAll("DATE", "").replace(":", "").trim();
+ }else if(line.contains("PROCESS START:")){
+ startTime += line.replace("PROCESS START:", " ");
+ record.setStartTime(DateTools.coverStrToDate(startTime, "dd/MM/yyyy HH:mm:ss"));
+ startTime = "";
+ }else if(line.contains("MACHINE NAME")){
+ String machineName = line.replace("MACHINE NAME", "").replace(":", "").trim();
+ record.setMachineNo(machineName);
+ }else if(line.contains("MACHINE ID")){
+ String machineID = line.replace("MACHINE ID", "").replace(":", "").trim();
+ record.setMachineID(machineID);
+ }else if(line.contains("CYCLE COUNTER")){
+ cycleCounter = line.replace("CYCLE COUNTER", "").replace(":", "").trim();
+ Long cycleCounter1 = Long.valueOf(cycleCounter);
+ record.setCycleCounter(cycleCounter1);
+ }else if(line.contains("PARAMETERS")){
+ isParameters = true;
+ }else if(line.contains("SIGNALS")){
+ isParameters = false;
+ isTemp = true;
+ }else if(isParameters){
+ String value = line.substring(16).trim();
+ String key = line.replace(value, "").trim();
+ key = translateWashDataPrams(key);
+ String orgParameters = record.getParameters() == null ? "" : record.getParameters();
+ record.setParameters(StringTools.uniteTwoStringBySemicolon(orgParameters, key+">>"+value, ";"));
+ }else if(line.contains("AI07")){
+ isTemp = true;
+ }else if(line.contains("SIGNATURE:")){
+ isTemp = false;
+ isParameters = false;
+ String endTimeStr = washDataOfGetingItems.get(washDataOfGetingItems.size()-1).getProcessTime();
+ String[] timeArr = endTimeStr.split(":");
+ long hour = Long.parseLong(timeArr[0]);
+ long minute = Long.parseLong(timeArr[1]);
+ long second = Long.parseLong(timeArr[2]);
+ long time = (hour*60*60 + minute*60 + second*1) * 1000;
+ Date endTime = new Date();
+ endTime.setTime(record.getStartTime().getTime() + time);
+ record.setEndTime(endTime);
+ objectDao.saveOrUpdate(record);
+ objectDao.batchSaveOrUpdate(washDataOfGetingItems);
+ record.setWashDataItems(washDataOfGetingItems);
+ if(!isSave){
+ isSave = true;
+ }
+ }else if(isTemp){
+ if(line.length() >= 8){
+ String timeStr = line.substring(0,8).trim();
+ if(timeStr.matches(regex)){
+ if(StringUtils.isBlank(processOfTemp) && CollectionUtils.isNotEmpty(washDataOfGetingItems)){
+ processOfTemp = washDataOfGetingItems.get(washDataOfGetingItems.size()-1).getProcess();
+ }
+ item.setProcessTime(timeStr);
+ item.setTemp(line.replace(timeStr, "").trim());
+ item.setProcess(processOfTemp);
+ processOfTemp = null;
+ objectDao.saveOrUpdate(item);
+ item.setWashDataOfGeting(record);
+ washDataOfGetingItems.add(item);
+ item = new WashDataItemOfGeting();
+ }else{
+ if(StringUtils.isBlank(processOfTemp)){
+ processOfTemp = line.trim();
+ }
+ }
+ }else{
+ processOfTemp = line.trim();
+ }
+ }else{
+ continue;
+ }
+ }
+ if(StringUtils.isBlank(cycleCounter)){
+ // 没有读到循环次数,是无效数据
+ return null;
+ }
+ JSONArray jsonArray = new JSONArray();
+ jsonArray.add(0, cycleCounter);
+ return jsonArray;
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.warn(e.getMessage());
+ if(enableDetailedDeviceInformation){
+ appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_ADD, devInterface.getName() + "设备接口连接异常," + e.getMessage());
+ }
+ return null;
+ }finally{
+ if(isSave){
+ SterilizerFileName sf = new SterilizerFileName();
+ sf.setFileName(fileName);
+ sf.setIsEnd(Constants.STR_YES);
+ objectDao.save(sf);
+ }
+ FileSystemHelper.closeInputStream(inputStream, null, null, fos);
+ }
+ }
+
+ /**
+ * 中英文对照说明
+ * @param key
+ * @return
+ */
+ private String translateWashDataPrams(String key) {
+ Map translateMap = new HashMap();
+ translateMap.put("PH-900-DRYING", "开始干燥");
+ translateMap.put("PH-20-DRAINING LONG", "长排水");
+ translateMap.put("PH442-FINAL RINSE A0", "终末漂洗");
+ translateMap.put("PH360-RINSE 2", "漂洗2");
+ translateMap.put("PH330-RINSE 1", "漂洗1");
+ translateMap.put("PH25 WASHING", "主洗");
+ translateMap.put("PH220-PRE RINSE CW", "进软水");
+ translateMap.put("PH2-DRAINING SHORT", "短排水");
+ translateMap.put("PH1-START", "开始");
+
+ translateMap.put("DRYING TIME", "干燥时间");
+ translateMap.put("DRYING TEMP", "干燥温度");
+ translateMap.put("A0 VALUE", "AO值");
+ translateMap.put("FING R DOS TEM", "终末漂洗温度");
+ translateMap.put("FING R DOS2", "终末漂洗");
+ translateMap.put("WASH TIME", "主洗时间");
+ translateMap.put("WASH TEMP", "主洗温度");
+ translateMap.put("WASH DOS TEMP", "主洗油温度");
+ translateMap.put("WASH DOS 3", "主洗油量");
+ translateMap.put("DISINF TEMP", "消毒温度");
+ translateMap.put("PARAMETERS", "参数");
+ translateMap.put("CYCLE COUNER", "运行锅次");
+ translateMap.put("MACHINE ID", "ID号");
+ translateMap.put("MACHINENAME", "设备名称");
+ translateMap.put("PROCESS START", "时间");
+ translateMap.put("DRTE", "日期");
+ translateMap.put("PROGRAM", "程序");
+
+ if(translateMap.containsKey(key)){
+ return translateMap.get(key);
+ }
+ return key;
+ }
+
+ /**
+ * 更新清洗机的温度压力数据
+ */
+ @SuppressWarnings("unchecked")
+ public void refreshWashRecordAmounts(String devInterfaceId,Long cycleCounter,String machineNo){
+ // 根据接口和机器号找到清洗机
+ Session session = objectDao.getHibernateSession();
+ String queryString = "select r from Rinser r"
+ + " where r.deviceInterface.id = :deviceInterfaceId"
+ + " and r.machineNumber = :machineNo";
+ Query query = session.createQuery(queryString);
+ query.setParameter("deviceInterfaceId", Long.valueOf(devInterfaceId));
+ query.setParameter("machineNo", machineNo);
+ List rinsers = query.list();
+
+ for(Rinser rs : rinsers) {
+ queryString = "select wd from WashAndDisinfectRecord wd"
+ + " where wd.disinfectIdentification = :rinserName"
+ + " and wd.cycleCounter = :cycleCounter";
+ query = session.createQuery(queryString);
+ query.setParameter("rinserName", rs.getName());
+ query.setParameter("cycleCounter", cycleCounter);
+ WashAndDisinfectRecord wd = (WashAndDisinfectRecord)query.uniqueResult();
+ if(wd != null) {
+ int amounts = washAndDisinfectRecordManager.getWashAndDisinfectRecordsCount(devInterfaceId,machineNo,cycleCounter);
+ wd.setWashDataAmount(Long.valueOf(amounts)+1);
+ washAndDisinfectRecordManager.save(wd);
+ }
+ }
+ }
+
+}
Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washDataChart/washDataChartOfGeting86Series.jsp
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washDataChart/washDataChartOfGeting86Series.jsp (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washDataChart/washDataChartOfGeting86Series.jsp (revision 30382)
@@ -0,0 +1,136 @@
+<%@page import="com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord"%>
+<%@page import="com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.WashDataItemOfChangLong"%>
+<%@ page contentType="text/html; charset=UTF-8"%>
+
+
+
+
+
+ <%@include file="/common/taglibs.jsp" %>
+ 清洗机参数
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 清洗程序参数
+
+
+
+ 程序名称:
+
+
+ 开始时间:
+
+
+
+
+ 机器名称:
+
+
+ 机器ID:
+
+
+
+
+ 循环次数:
+
+
+ 结束时间:
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java
===================================================================
diff -u -r30370 -r30382
--- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 30370)
+++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 30382)
@@ -77,8 +77,10 @@
import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord;
import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.WashData;
import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.WashDataItemOfChangLong;
+import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.WashDataItemOfGeting;
import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.WashDataOfBelimed;
import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.WashDataOfChangLong;
+import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.WashDataOfGeting;
import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.WashDataOfMarge;
import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectPic;
import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord;
@@ -3264,12 +3266,74 @@
// 倍力曼清洗机(ZJJSRM-15)
reusltJSON = getWashDataAndLineEchartDateOfBelimed(wdr,dif.getId(),rs.getMachineNumber());
return reusltJSON;
+ } else if(DeviceInterface.GETINGE.equals(deviceBrand)){
+ // 倍力曼清洗机(KLMYSRMYY-8)
+ reusltJSON = getWashDataAndLineEchartDateOfGeting(wdr,dif.getId(),rs.getMachineNumber());
+ return reusltJSON;
}
}
return reusltJSON;
}
- /**
+ private JSONObject getWashDataAndLineEchartDateOfGeting(WashAndDisinfectRecord wdr, Long deviceInterfaceId, String machineNumber) {
+ JSONObject resultData = new JSONObject();
+ WashDataOfGeting washDataOfGeting = null;
+ Long cycleCounter = wdr.getCycleCounter();
+ //获取新华清洗机的详细参数
+ String whereSql = String.format(
+ " where po.deviceInterfaceID = %s and po.machineNo = '%s' and po.cycleCounter = %s order by po.startTime ",
+ deviceInterfaceId,machineNumber,cycleCounter);
+ List washDataOfGetingList = objectDao.findBySql(WashDataOfGeting.class.getSimpleName(), whereSql);
+ if(CollectionUtils.isEmpty(washDataOfGetingList)){
+ return resultData;
+ }
+ washDataOfGeting = washDataOfGetingList.get(0);
+
+ if(washDataOfGeting != null && CollectionUtils.isNotEmpty(washDataOfGeting.getWashDataItems())){
+ List washDataItemList = washDataOfGeting.getWashDataItems();
+ //折线图需要的参数明细
+ JSONObject lineChartData = new JSONObject();
+ JSONArray timeArray = new JSONArray();
+ JSONArray t1TempArray = new JSONArray();
+ JSONArray processArray = new JSONArray();
+ //程序名称(取值追溯系统)
+ resultData.put("program", washDataOfGeting.getProgram());
+ //周期开始
+ String startedDateTimeStr = "";
+ if(washDataOfGeting.getStartTime() != null){
+ startedDateTimeStr = DateTools.getFormatDateStr(washDataOfGeting.getStartTime(), DateTools.COMMON_DATE_HMS);
+ }
+ resultData.put("startedTime", startedDateTimeStr);
+ //周期结束
+ String endDateTimeStr = "";
+ if(washDataOfGeting.getEndTime() != null){
+ endDateTimeStr = DateTools.getFormatDateStr(washDataOfGeting.getEndTime(), DateTools.COMMON_DATE_HMS);
+ }
+ resultData.put("endTime", endDateTimeStr);
+
+ //机器名称(MACHINE NAME 设置为清洗机的机器号)
+ resultData.put("machineName", washDataOfGeting.getMachineNo() == null ? "" : washDataOfGeting.getMachineNo());
+ //MACHINE ID
+ resultData.put("machineID", washDataOfGeting.getMachineID() == null ? "" : washDataOfGeting.getMachineID());
+ //周期数(循环次数)(从K文件读取)
+ resultData.put("cycleCounter", washDataOfGeting.getCycleCounter() == null ? "" : washDataOfGeting.getCycleCounter());
+ //清洗参数
+ resultData.put("parameters", washDataOfGeting.getParameters() == null ? "" : washDataOfGeting.getParameters());
+ for(WashDataItemOfGeting washDataItem : washDataItemList){
+ //鼠标放在曲线图的线条上时,需要显示出对应的时间、步骤、TS1℃、TI1℃、TS2℃、TI2℃、区号
+ timeArray.add(washDataItem.getProcessTime() + "/" + washDataItem.getProcess());
+ t1TempArray.add(washDataItem.getTemp());
+ processArray.add(washDataItem.getProcess());
+ }
+ lineChartData.put("time", timeArray);
+ lineChartData.put("t1Temp", t1TempArray);
+ lineChartData.put("process", processArray);
+ resultData.put("washDataItemLineChart", lineChartData);
+ }
+ return resultData;
+ }
+
+/**
* 获取倍力曼清洗机清洗参数(ZJJSRM-15)
* @param wdr
* @param deviceInterfaceId
Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java
===================================================================
diff -u -r29962 -r30382
--- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java (.../DeviceInterfaceDataProcessImpl.java) (revision 29962)
+++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/DeviceInterfaceDataProcessImpl.java (.../DeviceInterfaceDataProcessImpl.java) (revision 30382)
@@ -5,6 +5,7 @@
import java.util.List;
+import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -153,7 +154,12 @@
dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.STERIS,null,enableDetailedDeviceInformation,loginUserData);
break;
case DeviceInterface.GETINGE:
- Object getingeBean = SpringBeanManger.getBean("getingeDataManager");
+ Object getingeBean = null;
+ if(StringUtils.equals(devInterface.getDeviceModel(), DeviceInterface.GETING_86_SERIES)){
+ getingeBean = SpringBeanManger.getBean("getingWashDataManager");
+ }else{
+ getingeBean = SpringBeanManger.getBean("getingeDataManager");
+ }
dm = (DeviceDataManager) getingeBean;
dm.readAndSaveRecord(devInterface,rs.getMachineNumber(),DeviceInterface.GETINGE,null,enableDetailedDeviceInformation,loginUserData);
break;
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washData/WashDataOfGeting.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washData/WashDataOfGeting.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washData/WashDataOfGeting.java (revision 30382)
@@ -0,0 +1,166 @@
+package com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.Entity;
+
+import org.hibernate.annotations.Cascade;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.OrderBy;
+
+import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+
+/**
+ * 洁定清洗机数据
+ * @author zhoupeimian
+ * @since 2021-01-25
+ */
+@Entity
+@DynamicInsert(false)
+@DynamicUpdate(true)
+@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class WashDataOfGeting {
+
+ private Long id;
+
+ /**
+ * 清洗程序
+ */
+ private String program;
+
+ /**
+ * 程序开始时间
+ */
+ private Date startTime;
+
+ /**
+ * 程序结束时间
+ */
+ private Date endTime;
+
+ /**
+ * 机器名称(文件里面的清洗机名称)
+ */
+ private String machineNo;
+
+ /**
+ * 机器ID
+ */
+ private String machineID;
+
+ /**
+ * 循环参数
+ */
+ private Long cycleCounter;
+
+ /**
+ * 设备接口ID
+ */
+ private String deviceInterfaceID;
+
+ /**
+ * 参数列表(多个参数用;分割)
+ */
+ private String parameters;
+
+ /**
+ * 温度曲线数据
+ */
+ private List washDataItems = new ArrayList();
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getProgram() {
+ return program;
+ }
+
+ public void setProgram(String program) {
+ this.program = program;
+ }
+
+ public Date getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(Date startTime) {
+ this.startTime = startTime;
+ }
+
+ public Date getEndTime() {
+ return endTime;
+ }
+
+ public void setEndTime(Date endTime) {
+ this.endTime = endTime;
+ }
+
+ public String getMachineNo() {
+ return machineNo;
+ }
+
+ public void setMachineNo(String machineNo) {
+ this.machineNo = machineNo;
+ }
+
+ public String getMachineID() {
+ return machineID;
+ }
+
+ public void setMachineID(String machineID) {
+ this.machineID = machineID;
+ }
+
+ public Long getCycleCounter() {
+ return cycleCounter;
+ }
+
+ public void setCycleCounter(Long cycleCounter) {
+ this.cycleCounter = cycleCounter;
+ }
+
+ public String getDeviceInterfaceID() {
+ return deviceInterfaceID;
+ }
+
+ public void setDeviceInterfaceID(String deviceInterfaceID) {
+ this.deviceInterfaceID = deviceInterfaceID;
+ }
+
+ public String getParameters() {
+ return parameters;
+ }
+
+ public void setParameters(String parameters) {
+ this.parameters = parameters;
+ }
+
+ @OneToMany(fetch = FetchType.LAZY, mappedBy="washDataOfGeting")
+ @Cascade(value = { org.hibernate.annotations.CascadeType.SAVE_UPDATE })
+ @OrderBy("id asc")
+ public List getWashDataItems() {
+ return washDataItems;
+ }
+
+ public void setWashDataItems(List washDataItems) {
+ this.washDataItems = washDataItems;
+ }
+
+}
Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java
===================================================================
diff -u -r30346 -r30382
--- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java (.../XinHuaDataManagerImpl.java) (revision 30346)
+++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java (.../XinHuaDataManagerImpl.java) (revision 30382)
@@ -1,5 +1,6 @@
package com.forgon.disinfectsystem.maintain.device.service;
+import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -851,6 +852,7 @@
long remoteFileLength = 0L;
if(remoteFile != null){
inputStream = remoteFile.getInputStream();
+ inputStream = new BufferedInputStream(inputStream);
remoteFileLength = remoteFile.length();
}else{
out = new ByteArrayOutputStream();
Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washAndDisinfectView.js
===================================================================
diff -u -r30101 -r30382
--- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washAndDisinfectView.js (.../washAndDisinfectView.js) (revision 30101)
+++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washAndDisinfectView.js (.../washAndDisinfectView.js) (revision 30382)
@@ -106,7 +106,14 @@
openModalWindowForExt(WWWROOT+'/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washDataChart/washDataChartOfXinHuaOfZJJSRM.jsp?washAndDisinfectRecordId='+id,'', '清洗参数', '800', '600');
}
}
- }else{
+ }else if(data.deviceBrand == GETINGE){
+ if(data.deviceModel == GETING_86_SERIES){
+ // KLMY洁定清洗机接口
+ openModalWindowForExt(WWWROOT+'/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washDataChart/washDataChartOfGetingOf86Series.jsp?washAndDisinfectRecordId='+id,'', '清洗参数', '800', '600');
+ } else {
+ openModalWindowForExt(WWWROOT+'/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washDataLineChart.jsp?washAndDisinfectRecordId='+id,'', '清洗参数', '800', '600');
+ }
+ }else{
if(sstsConfig.belimedLineChartType == 1){
// ZJJSRM-15倍力曼清洗机接口
openModalWindowForExt(WWWROOT+'/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washDataChart/washDataChartOfBelimed.jsp?washAndDisinfectRecordId='+id,'', '清洗参数', '800', '600');
Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/deviceInterface/deviceInterfaceForm.js
===================================================================
diff -u -r30339 -r30382
--- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/deviceInterface/deviceInterfaceForm.js (.../deviceInterfaceForm.js) (revision 30339)
+++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/deviceInterface/deviceInterfaceForm.js (.../deviceInterfaceForm.js) (revision 30382)
@@ -355,6 +355,11 @@
fields : [ 'value' ],
data : [[SHAREFOLDER],[FTP]]
})
+ var getingModelComboStore = new Ext.data.SimpleStore({
+ fields : [ 'value' ],
+ data : [[GETING_86_SERIES]]
+ })
+ showCmt('deviceModelWrap','deviceModel',true,getingModelComboStore);
showCmt('interfaceTypeWrap','interfaceType',true,interfaceTypeComboStore);
}else if(deviceBrand == JOHNSON){
var johnsonModelComboStore = new Ext.data.SimpleStore({
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washData/WashDataItemOfGeting.java
===================================================================
diff -u
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washData/WashDataItemOfGeting.java (revision 0)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/washanddisinfectmanager/washData/WashDataItemOfGeting.java (revision 30382)
@@ -0,0 +1,96 @@
+package com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData;
+
+import javax.persistence.Entity;
+
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+
+import org.hibernate.annotations.Cache;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+
+/**
+ * 洁定清洗机温度曲线
+ * @author zhouPeiMian
+ * @since 2021-01-25
+ */
+@Entity
+@DynamicInsert(false)
+@DynamicUpdate(true)
+@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class WashDataItemOfGeting {
+
+ private Long id;
+
+ /**
+ * 温度
+ */
+ private String temp;
+
+ /**
+ * 阶段
+ */
+ private String process;
+
+ /**
+ * 时间
+ */
+ private String processTime;
+
+ /**
+ * 关联清洗数据
+ */
+ private WashDataOfGeting washDataOfGeting;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getTemp() {
+ return temp;
+ }
+
+ public void setTemp(String temp) {
+ this.temp = temp;
+ }
+
+ public String getProcess() {
+ return process;
+ }
+
+ public void setProcess(String process) {
+ this.process = process;
+ }
+
+ public String getProcessTime() {
+ return processTime;
+ }
+
+ public void setProcessTime(String processTime) {
+ this.processTime = processTime;
+ }
+
+
+ @ManyToOne
+ @JoinColumn(name = "washDataOfGeting_id")
+ public WashDataOfGeting getWashDataOfGeting() {
+ return washDataOfGeting;
+ }
+
+
+ public void setWashDataOfGeting(WashDataOfGeting washDataOfGeting) {
+ this.washDataOfGeting = washDataOfGeting;
+ }
+
+}
Index: ssts-web/src/main/webapp/disinfectsystem/config/klmysrmyy/spring/HIS.xml
===================================================================
diff -u -r29753 -r30382
--- ssts-web/src/main/webapp/disinfectsystem/config/klmysrmyy/spring/HIS.xml (.../HIS.xml) (revision 29753)
+++ ssts-web/src/main/webapp/disinfectsystem/config/klmysrmyy/spring/HIS.xml (.../HIS.xml) (revision 30382)
@@ -116,4 +116,17 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file