Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r40923 -r40943 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 40923) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 40943) @@ -20,6 +20,7 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; +import com.fasterxml.jackson.databind.ObjectMapper; import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washData.*; import com.forgon.tools.util.PathUtils; @@ -4400,6 +4401,9 @@ //根据清洗机的设备来获取返回数据 //设备品牌:新华 if(DeviceInterface.XINHUA.equals(deviceBrand)){ + if(StringUtils.equals(dif.getDeviceModel(), DeviceInterface.XINHUA_PDF_SUPER6000)){ + return getWashDataOfXinHuaSuper6000Data(wdr, washDataId); + } //是否启用聚合包功能 Integer washDataLineChartType = CssdUtils.getSystemSetConfigByNameInt("washDataLineChartType", 0); //设备型号:长龙 @@ -4444,7 +4448,37 @@ } return reusltJSON; } + @Override + public JSONObject getWashDataOfXinHuaSuper6000Data(WashAndDisinfectRecord wdr, Long washDataId) { + JSONObject resultData = new JSONObject(); + XinHuaSuper6000Data washData = null; + if(DatabaseUtil.isPoIdValid(washDataId)){ + washData = (XinHuaSuper6000Data)objectDao.getById(XinHuaSuper6000Data.class.getSimpleName(),washDataId); + }else if(WashAndDisinfectRecord.WASHDATATYPE_XINHUA_WSPDF.equals(wdr.getWashDataType())){ + washData = (XinHuaSuper6000Data)objectDao.getByProperty(XinHuaSuper6000Data.class.getSimpleName(),"washAndDisinfectRecordId",wdr.getId()); + } + if(washData != null){ + JSONObject keyValues = new JSONObject(); + Rinser rinser = rinserManager.get(wdr.getRinserId()); + keyValues.put("机器:", rinser.getName()); + keyValues.put("锅次", wdr.getCycleCounter()); + keyValues.put("程序", washData.getProgramName()); + keyValues.put("启动时间", DateTools.YMDHMSFORMAT.get().format(washData.getStartDate())); + keyValues.put("结束时间", DateTools.YMDHMSFORMAT.get().format(washData.getEndDate())); + keyValues.put("清洗状态", wdr.getWashStatus()); + keyValues.put("循环次数", washData.getRunCount()); + keyValues.put("操作员", wdr.getOperator()); + keyValues.put("AO值", washData.getA0Value()); + keyValues.put("总运行时间", washData.getTotalRunTime()); + keyValues.put("运行结果", washData.getRunResult()); + resultData.put("keyValues", keyValues); + + resultData.put("details", JSONUtil.toJSONString(washData.getXinHuaSuper6000DetailsList())); + //转json + } + return resultData; + } /** * 获取MAGCL4数据 * @param wdr 清洗记录 @@ -6588,6 +6622,12 @@ }else{ throw new SystemException("未支持的设备型号:"+deviceInterface.getDeviceModel()); } + }else if(DeviceInterface.XINHUA.equals(deviceInterface.getDeviceBrand())){ + if(StringUtils.equals(deviceInterface.getDeviceModel(), DeviceInterface.XINHUA_PDF_SUPER6000)){ + return findWashDataOfXinHuaSuper6000DataList(rinser.getMachineNumber(),startDate, endDate); + }else{ + throw new SystemException("未知支持的设备型号:"+deviceInterface.getDeviceModel()); + } } throw new SystemException("未支持的设备型号:"+deviceInterface.getDeviceModel()); } @@ -6723,6 +6763,37 @@ * @param startDate 开始时间 * @param endDate 结束时间 */ + private JSONArray findWashDataOfXinHuaSuper6000DataList(String machineNumber, String startDate, String endDate){ + String hql = "select po from " + + XinHuaSuper6000Data.class.getSimpleName() + +" po where machineNumber='" + + machineNumber + + "' and startDate between " + + dateQueryAdapter.dateAdapter(startDate) + + " and " + + dateQueryAdapter.dateAdapter(endDate) + + " order by po.startDate desc "; + List records = objectDao.findByHql(hql); + if(CollectionUtils.isEmpty(records)){ + return null; + } + JSONArray result = new JSONArray(); + DateFormat df = DateTools.YMDHMSFORMAT.get(); + for (XinHuaSuper6000Data record : records){ + JSONObject obj = new JSONObject(); + obj.put("machineNumber", record.getMachineNumber()); + obj.put("startDate", record.getStartDate() == null?"":df.format(record.getStartDate())); + obj.put("washDataRecordId", record.getId()); + obj.put("washAndDisinfectRecordId", record.getWashAndDisinfectRecordId()); + result.add(obj); + } + return result; + } + /** + * @param machineNumber 机器号 + * @param startDate 开始时间 + * @param endDate 结束时间 + */ private JSONArray findWashDataOfMargeMAGCL4DataList(String machineNumber, String startDate, String endDate){ String hql = "select po from " + WashDataOfMargeMAGCL4.class.getSimpleName() @@ -6850,6 +6921,12 @@ }else{ throw new SystemException("未知支持的设备型号:"+deviceInterface.getDeviceModel()); } + }else if(DeviceInterface.XINHUA.equals(deviceInterface.getDeviceBrand())){ + if(StringUtils.equals(deviceInterface.getDeviceModel(), DeviceInterface.XINHUA_PDF_SUPER6000)){ + associatedWashDataOfXinHuaSuper6000Data(washDataRecordId, washAndDisinfectRecord); + }else{ + throw new SystemException("未知支持的设备型号:"+deviceInterface.getDeviceModel()); + } } } /** @@ -6887,6 +6964,39 @@ } /** + * 关联 XinHuaSuper6000Data数据 + * @param washDataRecordId 清洗参数id + * @param washAndDisinfectRecord 清洗记录 + */ + private void associatedWashDataOfXinHuaSuper6000Data(Long washDataRecordId, WashAndDisinfectRecord washAndDisinfectRecord){ + XinHuaSuper6000Data record = (XinHuaSuper6000Data)objectDao.getById(XinHuaSuper6000Data.class.getSimpleName(),washDataRecordId); + if(record == null){ + throw new SystemException("查询不到清洗参数,id="+washDataRecordId); + } + //查询并清掉旧的关联 + XinHuaSuper6000Data oldRecord = (XinHuaSuper6000Data)objectDao.getBySql(XinHuaSuper6000Data.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_XINHUA_WSPDF.equals(washAndDisinfectRecord.getWashDataType())){ + washAndDisinfectRecord.setWashDataType(WashAndDisinfectRecord.WASHDATATYPE_XINHUA_WSPDF); + objectDao.update(washAndDisinfectRecord); + } + objectDao.update(record); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_WASH, Log.TYPE_UPDATE, "将流水号“" + + washAndDisinfectRecord.getSerialNumber() + +"”的清洗记录关联了参数文件(机器号:"+ record.getMachineNumber() +",开始时间" + + (record.getStartDate() == null?"":DateTools.YMDHMSFORMAT.get().format(record.getStartDate())) + +")"); + } + /** * 关联 WashDataOfMargeMAGCL4数据 * @param washDataRecordId 清洗参数id * @param washAndDisinfectRecord 清洗记录 Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java =================================================================== diff -u -r40907 -r40943 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java (.../WashAndDisinfectRecordManager.java) (revision 40907) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManager.java (.../WashAndDisinfectRecordManager.java) (revision 40943) @@ -545,4 +545,10 @@ * @return */ public String getA0(String washAndDisinfectRecordId, Long washDataId); + /** + * 获取XinHuaSuper6000Data数据 + * @param wdr 清洗记录 + * @param washDataId 清洗参数记录id + */ + public JSONObject getWashDataOfXinHuaSuper6000Data(WashAndDisinfectRecord wdr, Long washDataId); }