Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java =================================================================== diff -u -r29791 -r29792 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 29791) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 29792) @@ -1774,7 +1774,7 @@ while ((count = fileStream.read(data, 0, 4096)) != -1) { outStream.write(data, 0, count); } - saveSterileRecordPic(uploadFilesFileName[i], outStream.toByteArray(), Long.parseLong(sterileRecordId)); + sterilizationRecordManager.saveSterileRecordPic(uploadFilesFileName[i], outStream.toByteArray(), Long.parseLong(sterileRecordId)); } catch (Exception e) { e.printStackTrace(); } finally { @@ -1804,52 +1804,7 @@ } StrutsResponseUtils.output(json); } - - /** - * 保存灭菌记录图片 - * @param filename 文件名称 - * @param picData 文件内容 - * @param id 灭菌记录Id - * @throws FileNotFoundException - * @throws IOException - */ - private void saveSterileRecordPic(String filename,byte[] picData, Long id) throws FileNotFoundException, IOException { - if(id == null){ - throw new SystemException("灭菌记录的id不能为空"); - } - if(ArrayUtils.isEmpty(picData)){ - throw new SystemException("未获取到图片数据"); - } - if (supplyRoomConfigManager.getSystemParamsObj().saveImageLocal()) {// 保存到文件系统 - if(StringUtils.isBlank(filename)){ - throw new SystemException("文件名不能为空"); - } - FileOutputStream fos = new FileOutputStream(filename); - fos.write(picData, 0, picData.length); // 向服务端文件写入字节流 - fos.close(); // 关闭FileOutputStream对象 - - // 生成缩略图 - String thumbnailImageName = UUID.randomUUID().toString() + ".jpg"; - imageFileManager.SaveToThumbnail(picData, filename, thumbnailImageName); - // 保存记录到数据库 - SterilizationRecordPic pic = new SterilizationRecordPic(); - pic.setFilePath(filename); - pic.setThumbnailFileName(thumbnailImageName); - Collection picList = new ArrayList(); - picList.add(pic); - sterilizationRecordManager.saveRecordPicture(id, picList, ""); - }else if(supplyRoomConfigManager.getSystemParamsObj().saveImageDataBase()){// 保存到数据库 - SterilizationRecordPic pic = new SterilizationRecordPic(); - pic.setPicture(picData); - Collection picList = new ArrayList(); - picList.add(pic); - sterilizationRecordManager.saveRecordPicture(id, picList,""); - }else{ - throw new SystemException("图片保存方式设置错误,请到科室供应室设置中进行配置"); - } - } - public String getTousseIds() { return tousseIds; } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java =================================================================== diff -u -r29628 -r29792 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 29628) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 29792) @@ -1,5 +1,7 @@ package com.forgon.disinfectsystem.sterilizationmanager.sterilizationrecord.service; +import java.io.FileNotFoundException; +import java.io.IOException; import java.util.Collection; import java.util.Date; import java.util.List; @@ -509,4 +511,14 @@ * @return */ public LowTempForJohnsonSterilizerRecord getLowTempForJohnsonSterilizerRecord(String machineNo, Date startDate); + + /** + * 保存灭菌记录图片 + * @param filename 文件名称 + * @param picData 文件内容 + * @param id 灭菌记录Id + * @throws FileNotFoundException + * @throws IOException + */ + public void saveSterileRecordPic(String filename,byte[] picData, Long id); } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r29718 -r29792 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 29718) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 29792) @@ -1,5 +1,7 @@ package com.forgon.disinfectsystem.sterilizationmanager.sterilizationrecord.service; +import java.io.FileOutputStream; +import java.io.IOException; import java.math.BigDecimal; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -19,6 +21,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.UUID; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.TimeUnit; @@ -29,6 +32,7 @@ import org.apache.commons.collections.MapUtils; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.hibernate.Query; import org.hibernate.Session; @@ -85,6 +89,7 @@ import com.forgon.disinfectsystem.sterilizationmanager.sterilizationrecord.vo.SterilizationRecordPrintTousseItem; import com.forgon.disinfectsystem.sterilizationmanager.sterilizationunload.service.SterileUnloadScanTousseManager; import com.forgon.disinfectsystem.stockmanage.departmentstock.service.DepartmentStockManager; +import com.forgon.disinfectsystem.tousse.imagefilemanager.service.ImageFileManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; import com.forgon.disinfectsystem.vo.ItemDefinitionVO; @@ -169,6 +174,12 @@ private OperationManager operationManager; + private ImageFileManager imageFileManager; + + public void setImageFileManager(ImageFileManager imageFileManager) { + this.imageFileManager = imageFileManager; + } + public void setOperationManager(OperationManager operationManager) { this.operationManager = operationManager; } @@ -6061,4 +6072,55 @@ } return result; } + + + @Override + public void saveSterileRecordPic(String filename, byte[] picData, Long id){ + if(id == null){ + throw new SystemException("灭菌记录的id不能为空"); + } + if(ArrayUtils.isEmpty(picData)){ + throw new SystemException("未获取到图片数据"); + } + if (supplyRoomConfigManager.getSystemParamsObj().saveImageLocal()) {// 保存到文件系统 + if(StringUtils.isBlank(filename)){ + throw new SystemException("文件名不能为空"); + } + FileOutputStream fos = null; + try { + fos = new FileOutputStream(filename); + fos.write(picData, 0, picData.length); // 向服务端文件写入字节流 + } catch (IOException e) { + e.printStackTrace(); + } finally { + if(fos != null){ + try { + fos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + // 生成缩略图 + String thumbnailImageName = UUID.randomUUID().toString() + ".jpg"; + imageFileManager.SaveToThumbnail(picData, filename, thumbnailImageName); + // 保存记录到数据库 + SterilizationRecordPic pic = new SterilizationRecordPic(); + pic.setFilePath(filename); + pic.setThumbnailFileName(thumbnailImageName); + Collection picList = new ArrayList(); + picList.add(pic); + + saveRecordPicture(id, picList, ""); + }else if(supplyRoomConfigManager.getSystemParamsObj().saveImageDataBase()){// 保存到数据库 + SterilizationRecordPic pic = new SterilizationRecordPic(); + pic.setPicture(picData); + Collection picList = new ArrayList(); + picList.add(pic); + saveRecordPicture(id, picList,""); + }else{ + throw new SystemException("图片保存方式设置错误,请到科室供应室设置中进行配置"); + } + } }