From e45855b8196acc7945491934632b247cecf118d8 Mon Sep 17 00:00:00 2001 From: linjj <850658129@qq.com> Date: Tue, 7 Nov 2023 20:58:26 +0800 Subject: [PATCH] =?UTF-8?q?ca=E7=AD=BE=E7=AB=A0=E5=90=8E=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AE=BF=E9=97=AE=E5=9B=BE=E5=83=8F=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 + .../emr/controller/inHospitalController.java | 246 +++++++++++------ .../emr/controller/lastVerifyController.java | 6 + .../controller/medicalOverdueController.java | 60 +---- .../com/emr/controller/taskController.java | 84 +++--- .../emr/dao/ArchiveDetailCaCopyMapper.java | 40 +++ .../com/emr/dao/Archive_MasterMapper.java | 2 + .../java/com/emr/dao/CaSignatureMapper.java | 18 ++ .../com/emr/dto/Archive_DetailPdfPathDto.java | 28 ++ .../com/emr/entity/Archive_Detail_caSign.java | 2 + .../com/emr/entity/Archive_Master_Vo.java | 2 + src/main/java/com/emr/entity/Power_User.java | 11 + .../service/ArchiveDetailCaCopyServer.java | 15 ++ .../emr/service/Archive_MasterService.java | 11 + .../ipml/ArchiveDetailCaCopyServerImpl.java | 87 ++++++ .../ipml/Archive_MasterServiceImpl.java | 249 ++++++++++++++---- .../emr/service/ipml/CaSignServiceImpl.java | 83 ++++-- .../ipml/Emr_Fault_DetailServiceImpl.java | 4 +- .../service/ipml/Sign_ListServiceImpl.java | 14 +- .../util/{ListUtils.java => ListUtil.java} | 2 +- src/main/resources/config/caSign.properties | 27 +- src/main/resources/config/jdbc.properties | 4 +- src/main/resources/log4j.properties | 10 +- .../mapper/ArchiveDetailCaCopyMapper.xml | 154 +++++++++++ .../resources/mapper/Archive_DetailMapper.xml | 2 +- .../mapper/Archive_Detail_caSignMapper.xml | 8 +- .../resources/mapper/Archive_MasterMapper.xml | 80 +++++- .../mapper/Emr_Fault_DetailMapper.xml | 6 - .../resources/mapper/caSignatureMapper.xml | 12 + .../WEB-INF/views/faultDir/faultList.jsp | 49 +--- .../views/lastVerifyDir/lastVerifyList.jsp | 191 +++++++++----- .../medicalOverdueDir/medicalOverdueList.jsp | 1 - 32 files changed, 1097 insertions(+), 416 deletions(-) create mode 100644 src/main/java/com/emr/dao/ArchiveDetailCaCopyMapper.java create mode 100644 src/main/java/com/emr/dao/CaSignatureMapper.java create mode 100644 src/main/java/com/emr/service/ArchiveDetailCaCopyServer.java create mode 100644 src/main/java/com/emr/service/ipml/ArchiveDetailCaCopyServerImpl.java rename src/main/java/com/emr/util/{ListUtils.java => ListUtil.java} (98%) create mode 100644 src/main/resources/mapper/ArchiveDetailCaCopyMapper.xml create mode 100644 src/main/resources/mapper/caSignatureMapper.xml diff --git a/pom.xml b/pom.xml index aa023c96..facd0b69 100644 --- a/pom.xml +++ b/pom.xml @@ -115,6 +115,11 @@ jackson-databind ${jackson.version} + + org.apache.commons + commons-collections4 + 4.4 + org.apache.httpcomponents diff --git a/src/main/java/com/emr/controller/inHospitalController.java b/src/main/java/com/emr/controller/inHospitalController.java index 51c7fe2b..ac066326 100644 --- a/src/main/java/com/emr/controller/inHospitalController.java +++ b/src/main/java/com/emr/controller/inHospitalController.java @@ -7,6 +7,8 @@ package com.emr.controller; import com.emr.annotation.OptionalLog; +import com.emr.dao.ArchiveDetailCaCopyMapper; +import com.emr.dao.CaSignatureMapper; import com.emr.entity.*; import com.emr.service.*; import com.emr.util.*; @@ -60,8 +62,14 @@ public class inHospitalController { @Autowired private Archive_Detail_PictureService archiveDetailPictureService; + @Autowired + private ArchiveDetailCaCopyServer archiveDetailCaCopyServer; + - @Resource + @Autowired + private CaSignatureMapper caSignatureMapper; + @Autowired + private ArchiveDetailCaCopyMapper archiveDetailCaCopyMapper; private LogService logService; @Value("${pictureUrl}") @@ -96,14 +104,14 @@ public class inHospitalController { @RequestMapping(value = "/exportExcel") public void exportExcel(HttpServletResponse response, Archive_Master_Vo archiveMasterVo) throws Exception { response.setContentType("application/vnd.ms-excel;charset=UTF-8"); - String[] header = {"病历清单id","住院号","住院次数","名字","性别","身份证","入院科室","入院日期","主管医生","状态"}; - String[] fileNames = {"id","inpNo","visitId","name","sex","idNo","deptAdmissionTo","admissionDateTime","doctorInCharge","archivestate"}; + String[] header = {"病历清单id", "住院号", "住院次数", "名字", "性别", "身份证", "入院科室", "入院日期", "主管医生", "状态"}; + String[] fileNames = {"id", "inpNo", "visitId", "name", "sex", "idNo", "deptAdmissionTo", "admissionDateTime", "doctorInCharge", "archivestate"}; //文件名 String fileName = "在院浏览" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; //构造excel的数据 List list = archiveMasterService.selectByCol(archiveMasterVo); ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames); - String result=utils.exportExcelToFilePath(response,utils.listConvert(list)); + String result = utils.exportExcelToFilePath(response, utils.listConvert(list)); } @ResponseBody @@ -118,17 +126,35 @@ public class inHospitalController { @ResponseBody @RequestMapping(value = "/getAssort") public List getAssort(HttpServletResponse response, Archive_Detail_Vo archiveDetailVo) throws Exception { + //查询是否签章 + int caMasterIdNum = caSignatureMapper.getCaMasterId(archiveDetailVo.getPatientId(), 1); + //如果存在记录查询新的签章文件表 + if (caMasterIdNum > 0) { + List list = archiveDetailCaCopyMapper.selectByClo(archiveDetailVo); + //查询新生儿数据并存入list + Integer page = archiveDetailService.selectChildByClo(archiveDetailVo); + if (page != 0) { + Archive_Detail_Vo archiveDetailVoNew = new Archive_Detail_Vo(); + archiveDetailVoNew.setAssortId("1000"); + archiveDetailVoNew.setAssortName("新生儿病历"); + archiveDetailVoNew.setPrintFlag("0"); + archiveDetailVoNew.setPageNum(page); + archiveDetailVoNew.setAssortSort((short) 1000); + list.add(archiveDetailVoNew); + } + return list; + } //分段列表 - List newList=archiveDetailService.selectByClo(archiveDetailVo); + List newList = archiveDetailService.selectByClo(archiveDetailVo); //查询新生儿数据并存入list - Integer page=archiveDetailService.selectChildByClo(archiveDetailVo); - if(page!=0){ - Archive_Detail_Vo archiveDetailVoNew=new Archive_Detail_Vo(); + Integer page = archiveDetailService.selectChildByClo(archiveDetailVo); + if (page != 0) { + Archive_Detail_Vo archiveDetailVoNew = new Archive_Detail_Vo(); archiveDetailVoNew.setAssortId("1000"); archiveDetailVoNew.setAssortName("新生儿病历"); archiveDetailVoNew.setPrintFlag("0"); archiveDetailVoNew.setPageNum(page); - archiveDetailVoNew.setAssortSort((short)1000); + archiveDetailVoNew.setAssortSort((short) 1000); newList.add(archiveDetailVoNew); } return newList; @@ -139,31 +165,32 @@ public class inHospitalController { @RequestMapping(value = "/getAssortdetail") public OffsetLimitPage getAssortdetail(HttpServletResponse response, Archive_Detail_Vo archiveDetailVo, Integer offset, Integer limit) throws Exception { //分段详情列表分页 - OffsetLimitPage result =null; + OffsetLimitPage result = null; //判断是否是新生儿数据 assortId=1000 - if("1000".equals(archiveDetailVo.getAssortId())){ + if ("1000".equals(archiveDetailVo.getAssortId())) { result = archiveDetailService.selectChild(archiveDetailVo, offset, limit); - }else { - result = archiveDetailService.detailByClo(archiveDetailVo, offset, limit); + } else { + result = archiveDetailService.detailByClo(archiveDetailVo, offset, limit); } return result; } - /** + + /** * @description: 查询病历清单详情回显参数 * @params: - * @return: + * @return: * @author linjj * @date: 2023/6/28 15:38 */ @ResponseBody @RequestMapping(value = "/getDetailInfo") - public Archive_Detail_Vo getDetailInfo(String detailId,HttpServletRequest request){ + public Archive_Detail_Vo getDetailInfo(String detailId, HttpServletRequest request) { Archive_Detail_Vo detailInfo = archiveDetailService.getDetailInfo(detailId); List list = new ArrayList<>(); list.add(detailInfo.getPdfPath()); - SessionContant.setPdfUrl(null,detailId,list,request); + SessionContant.setPdfUrl(null, detailId, list, request); return detailInfo; } @@ -200,7 +227,7 @@ public class inHospitalController { if (file2.exists() && file2.isFile()) { file2.delete(); } - if(detail.getRecoverPdfPath()!=null &&detail.getRecoverPdfPath()!="") { + if (detail.getRecoverPdfPath() != null && detail.getRecoverPdfPath() != "") { File file3 = new File(detail.getRecoverPdfPath()); if (file3.exists() && file3.isFile()) { file3.delete(); @@ -295,11 +322,11 @@ public class inHospitalController { Archive_Detail archiveDetail = new Archive_Detail(); archiveDetail.setFlag(flag); archiveDetail.setMasterid(masterId.trim()); - List arList =new ArrayList<>(); + List arList = new ArrayList<>(); //如果是新生儿,则不加分段id的筛选条件, - if("1000".equals(assortID)){ - arList =archiveDetailService.selectChildList(archiveDetail); - }else{ + if ("1000".equals(assortID)) { + arList = archiveDetailService.selectChildList(archiveDetail); + } else { archiveDetail.setTitle(assortID); arList = archiveDetailService.selectByCol(archiveDetail); } @@ -359,11 +386,26 @@ public class inHospitalController { @ResponseBody @RequestMapping(value = "/getPdfToPdf") public String getPdfToPdf(HttpServletResponse response, HttpServletRequest request, String imgStr, String masterId, String flag) throws Exception { + //查询是否签章 + int caMasterIdNum = caSignatureMapper.getCaMasterId(masterId, 1); + //如果存在记录查询新的签章文件表 + if (caMasterIdNum > 0) { + //组织分类id集合 + if (StringUtils.isNotBlank(imgStr)) { + String[] assortIds = StringUtils.split(imgStr, ","); + List srcFileList = archiveDetailCaCopyServer.getPdfUrlByMasterOrId(assortIds, masterId, flag, null); + if (!CollectionUtils.isEmpty(srcFileList)) { + //设置进缓存 + String key = SessionContant.setPdfUrl(masterId, imgStr, srcFileList, request); + return key; + } + } + } //组织分类id集合 - if(StringUtils.isNotBlank(imgStr)){ + if (StringUtils.isNotBlank(imgStr)) { String[] assortIds = StringUtils.split(imgStr, ","); - List srcFileList = archiveDetailService.getPdfUrlByMasterOrId(assortIds,masterId,flag,null); - if(!CollectionUtils.isEmpty(srcFileList)){ + List srcFileList = archiveDetailService.getPdfUrlByMasterOrId(assortIds, masterId, flag, null); + if (!CollectionUtils.isEmpty(srcFileList)) { //设置进缓存 String key = SessionContant.setPdfUrl(masterId, imgStr, srcFileList, request); return key; @@ -507,17 +549,27 @@ public class inHospitalController { @RequestMapping(value = "/getPdfById") public String getPdfById(HttpServletResponse response, HttpServletRequest request, @Param("id") String idStr) throws Exception { //组织分类id集合 - if(StringUtils.isNotBlank(idStr)){ + if (StringUtils.isNotBlank(idStr)) { List srcFileList = null; - try { - srcFileList = archiveDetailService.getPdfUrlByMasterOrId(null,null,null,idStr); - } catch (Exception e) { - e.printStackTrace(); - } - if(!CollectionUtils.isEmpty(srcFileList)){ - //设置进缓存 - String key = SessionContant.setPdfUrl(idStr, idStr, srcFileList, request); - return key; + List list = archiveDetailCaCopyServer.getPdfUrlByMasterOrId(null, null, null, idStr); + //如果存在记录查询新的签章文件表 + if (list.size() > 0) { + if (!CollectionUtils.isEmpty(list)) { + //设置进缓存 + String key = SessionContant.setPdfUrl(idStr, idStr, list, request); + return key; + } + } else { + try { + srcFileList = archiveDetailService.getPdfUrlByMasterOrId(null, null, null, idStr); + } catch (Exception e) { + e.printStackTrace(); + } + if (!CollectionUtils.isEmpty(srcFileList)) { + //设置进缓存 + String key = SessionContant.setPdfUrl(idStr, idStr, srcFileList, request); + return key; + } } } return null; @@ -931,7 +983,7 @@ public class inHospitalController { detail.setFlag("0");//显示 detail.setSource("后台"); detail.setSys("emr_medical_record"); - detail.setTitle("自动生成"+obj.get("selectName")+"PDF"); + detail.setTitle("自动生成" + obj.get("selectName") + "PDF"); detail.setUploaddatetime(nowTime); detail.setPdfPath(realPath + masterID + "\\" + pathType + pdfFile); //类名 @@ -946,17 +998,17 @@ public class inHospitalController { } //读取指定路径下的文件名和目录名 - String pdfPathFile=realPath + path2+pathType.replace("\\", "")+"\\"+pathType.replace("\\", "")+".pdf"; - //获取图片的绝对路径,根据路径合成一份pdf文件 + String pdfPathFile = realPath + path2 + pathType.replace("\\", "") + "\\" + pathType.replace("\\", "") + ".pdf"; + //获取图片的绝对路径,根据路径合成一份pdf文件 entity = new Emr_Picture(); entity.setRelationId(masterID); entity.setAssortId(obj.get("selectVal").toString()); - List imgsList=emrPictureService.selectByClo(entity); - result=PrintToPdfUtil.imgsListTopdf(pdfPathFile,imgsList); - if(result.equals("合成pdf成功")){ + List imgsList = emrPictureService.selectByClo(entity); + result = PrintToPdfUtil.imgsListTopdf(pdfPathFile, imgsList); + if (result.equals("合成pdf成功")) { result = "批量上传成功!"; - }else{ - result=result; + } else { + result = result; } /* 根据文件夹合成图片 List dirList = new ArrayList(); @@ -1356,23 +1408,43 @@ public class inHospitalController { */ @RequestMapping(value = "/pdfStreamHandeler") - public void pdfStreamHandeler(HttpServletRequest request, HttpServletResponse response,String url)throws Exception { + public void pdfStreamHandeler(HttpServletRequest request, HttpServletResponse response, String url) throws Exception { String filePath = request.getParameter("url"); - String[] list=filePath.split("titleName="); - String key =list[0].substring(0,list[0].length()-1); + int caMasterIdNum = 0; + int archiveDetailNum = 0; + String[] list = filePath.split("titleName="); + String key = list[0].substring(0, list[0].length() - 1); //titleName为前端页面title显示的患者姓名,这里要去掉 List filePaths = SessionContant.getPdfUrl(key, request); - if(CollectionUtils.isEmpty(filePaths) && StringUtils.isNotBlank(key)){ + if (CollectionUtils.isEmpty(filePaths) && StringUtils.isNotBlank(key)) { //终审页面没有缓存,key为Mid_文件id逗号隔开 String[] keyArr = StringUtils.split(key, "_"); String[] assortIds = StringUtils.split(keyArr[1], ","); String masterId = keyArr[0]; - if(masterId.substring(0,masterId.length()-1).equals(keyArr[1])){ + //查询是否签章 + if (masterId.substring(0, masterId.length() - 1).equals(keyArr[1])) { //按文件id集合,masterId.substring(0,masterId.length()-1)去掉最后面的逗号 - filePaths = archiveDetailService.getPdfUrlByMasterOrId(null,null,"0",masterId); - }else{ - //按文件分类id集合 - filePaths = archiveDetailService.getPdfUrlByMasterOrId(assortIds,masterId,"0",null); + archiveDetailNum = archiveDetailCaCopyMapper.getArchiveDetailNum(masterId); + } else { + caMasterIdNum = caSignatureMapper.getCaMasterId(masterId, 1); + } + //如果存在记录查询新的签章文件表 + if (caMasterIdNum > 0 || archiveDetailNum > 0) { + if (masterId.substring(0, masterId.length() - 1).equals(keyArr[1])) { + //按文件id集合,masterId.substring(0,masterId.length()-1)去掉最后面的逗号 + filePaths = archiveDetailCaCopyServer.getPdfUrlByMasterOrId(null, null, "0", masterId); + } else { + //按文件分类id集合 + filePaths = archiveDetailCaCopyServer.getPdfUrlByMasterOrId(assortIds, masterId, "0", null); + } + } else { + if (masterId.substring(0, masterId.length() - 1).equals(keyArr[1])) { + //按文件id集合,masterId.substring(0,masterId.length()-1)去掉最后面的逗号 + filePaths = archiveDetailService.getPdfUrlByMasterOrId(null, null, "0", masterId); + } else { + //按文件分类id集合 + filePaths = archiveDetailService.getPdfUrlByMasterOrId(assortIds, masterId, "0", null); + } } } if (null != filePaths && !filePaths.isEmpty()) { @@ -1509,7 +1581,7 @@ public class inHospitalController { //判断是否有备份如果没有则备份pdf文件 Archive_Detail archiveDetail2 = archiveDetailService.selectByid(archiveDetail.getId()); if (archiveDetail2 != null) { - if (archiveDetail2.getRecoverPdfPath() == null|| archiveDetail2.getRecoverPdfPath() == "") { + if (archiveDetail2.getRecoverPdfPath() == null || archiveDetail2.getRecoverPdfPath() == "") { //备份pdf文件复印并将记录保存 String recoverPdfPath = archiveDetail2.getPdfPath().replace(file.getName(), "") + nowTime + ".pdf"; archiveDetail2.setRecoverPdfPath(recoverPdfPath); @@ -1656,17 +1728,17 @@ public class inHospitalController { // 页数 int pageNum = archiveDetailPicture.getPictureNumber(); File file = new File(templatePath); - if(file.exists()) { + if (file.exists()) { //备份pdf文件 //判断是否有备份如果没有则备份pdf文件 - Archive_Detail archiveDetail =archiveDetailService.selectByid(archiveDetailPicture.getParentId()); - if(archiveDetail!=null){ + Archive_Detail archiveDetail = archiveDetailService.selectByid(archiveDetailPicture.getParentId()); + if (archiveDetail != null) { String fileDirName = archiveDetail.getPdfPath(); fileDirName = fileDirName.substring(fileDirName.lastIndexOf("\\") + 1).replace(".pdf", ""); if (archiveDetail.getRecoverPdfPath() == null || archiveDetail.getRecoverPdfPath() == "") { //备份pdf文件复印并将记录保存 - String recoverPdfPath = archiveDetail.getPdfPath().replace(file.getName(), "") + nowTime2 + ".pdf"; + String recoverPdfPath = archiveDetail.getPdfPath().replace(file.getName(), "") + nowTime2 + ".pdf"; archiveDetail.setRecoverPdfPath(recoverPdfPath); archiveDetailService.updateCloById(archiveDetail); //复印pdf备份 @@ -1687,7 +1759,7 @@ public class inHospitalController { //删除记录 bol = archiveDetailPictureService.deleteByCol(archiveDetailPicture); if (bol == 1) { - // file.delete(); + // file.delete(); //将之前文件删除 File file1 = new File(imagePath); if (file1.exists() && file1.isFile()) { @@ -1705,25 +1777,25 @@ public class inHospitalController { } else { result = "pdf文件无内容!"; } - }else{ + } else { result = "pdf文件不存在!"; } return result; } - //@OptionalLog(methods = "PDF文件还原最初") + //@OptionalLog(methods = "PDF文件还原最初") @ResponseBody @RequestMapping(value = "/returnPdfFile") public String returnPdfFile(HttpServletRequest request, HttpServletResponse response, Archive_Detail archiveDetail) throws Exception { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); - String result=""; + String result = ""; //判断是否有备份如果没有则备份pdf文件 archiveDetail = archiveDetailService.selectByid(archiveDetail.getId()); - if(archiveDetail!=null){ - if(archiveDetail.getPdfPath()!="" && archiveDetail.getPdfPath()!=null && archiveDetail.getRecoverPdfPath()!="" && archiveDetail.getRecoverPdfPath()!=null){ - File file2=new File(archiveDetail.getPdfPath()); - if(file2.exists()) { + if (archiveDetail != null) { + if (archiveDetail.getPdfPath() != "" && archiveDetail.getPdfPath() != null && archiveDetail.getRecoverPdfPath() != "" && archiveDetail.getRecoverPdfPath() != null) { + File file2 = new File(archiveDetail.getPdfPath()); + if (file2.exists()) { PrintToPdfUtil.copyFile2(archiveDetail.getRecoverPdfPath(), archiveDetail.getPdfPath()); //并删除图片记录 Archive_Detail_Picture archiveDetailPicture = new Archive_Detail_Picture(); @@ -1740,11 +1812,11 @@ public class inHospitalController { File file = new File(realPath + pdfDelPicUrl + fileDirName + "\\"); PrintToPdfUtil.delete(file); } - }else{ - result="pdf文件不存在,所以不可备份!"; + } else { + result = "pdf文件不存在,所以不可备份!"; } - }else{ - result="暂无备份pdf文件!"; + } else { + result = "暂无备份pdf文件!"; } } return result; @@ -1756,13 +1828,13 @@ public class inHospitalController { public String bfPdfFile(HttpServletRequest request, HttpServletResponse response, Archive_Detail archiveDetail) throws Exception { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); - String result=""; + String result = ""; //判断是否有备份如果没有则备份pdf文件 archiveDetail = archiveDetailService.selectByid(archiveDetail.getId()); - if(archiveDetail!=null){ - if(archiveDetail.getPdfPath()!="" && archiveDetail.getPdfPath()!=null && archiveDetail.getRecoverPdfPath()!="" && archiveDetail.getRecoverPdfPath()!=null){ - File file2=new File(archiveDetail.getPdfPath()); - if(file2.exists()) { + if (archiveDetail != null) { + if (archiveDetail.getPdfPath() != "" && archiveDetail.getPdfPath() != null && archiveDetail.getRecoverPdfPath() != "" && archiveDetail.getRecoverPdfPath() != null) { + File file2 = new File(archiveDetail.getPdfPath()); + if (file2.exists()) { PrintToPdfUtil.copyFile2(archiveDetail.getPdfPath(), archiveDetail.getRecoverPdfPath()); //并删除图片记录 Archive_Detail_Picture archiveDetailPicture = new Archive_Detail_Picture(); @@ -1780,11 +1852,11 @@ public class inHospitalController { PrintToPdfUtil.delete(file); } result = "重新备份pdf文件成功!"; - }else{ - result="pdf文件不存在,所以不可备份!"; + } else { + result = "pdf文件不存在,所以不可备份!"; } - }else{ - result="暂无备份pdf文件!"; + } else { + result = "暂无备份pdf文件!"; } } return result; @@ -1818,20 +1890,20 @@ public class inHospitalController { String realPath = request.getSession().getServletContext().getRealPath("/"); // 设置存放删除页图片路径 String path2 = "static\\img\\delPicImg\\"; - String result=""; - int bol=0; + String result = ""; + int bol = 0; if (parentId != null && parentId != "") { //判断是否有备份如果没有则备份pdf文件 Archive_Detail archiveDetail = archiveDetailService.selectByid(parentId); - if(archiveDetail!=null) { + if (archiveDetail != null) { File file = new File(archiveDetail.getPdfPath()); - if(file.exists()) { + if (file.exists()) { String fileDirName = archiveDetail.getPdfPath(); fileDirName = fileDirName.substring(fileDirName.lastIndexOf("\\") + 1).replace(".pdf", ""); if (archiveDetail.getRecoverPdfPath() == null || archiveDetail.getRecoverPdfPath() == "") { //备份pdf文件复印并将记录保存 - String recoverPdfPath = archiveDetail.getPdfPath().replace(file.getName(), "") + nowTime2 + ".pdf"; + String recoverPdfPath = archiveDetail.getPdfPath().replace(file.getName(), "") + nowTime2 + ".pdf"; archiveDetail.setRecoverPdfPath(recoverPdfPath); archiveDetailService.updateCloById(archiveDetail); //复印pdf备份 @@ -1857,7 +1929,7 @@ public class inHospitalController { oldName = imgs[t].getOriginalFilename();// 如apple1.jpg lasName = oldName.substring(oldName.lastIndexOf(".") + 1); // 自定义的文件名称String.valueOf(System.currentTimeMillis()) - trueFileName = nowTime2+System.currentTimeMillis() + oldName; + trueFileName = nowTime2 + System.currentTimeMillis() + oldName; if ("GIF".equals(lasName.toUpperCase()) || "JPEG".equals(lasName.toUpperCase()) || "PNG".equals(lasName.toUpperCase()) || "JPG".equals(lasName.toUpperCase())) { File fileDir = new File(realPath + path2 + fileDirName + "\\"); if (!fileDir.exists() && !fileDir.isDirectory()) { @@ -1880,14 +1952,14 @@ public class inHospitalController { } else { result = "上传图片不为空!"; } - }else{ + } else { result = "pdf文件不存在或破损!"; } } else { result = "记录不存在!"; } - }else{ - result="记录不存在!"; + } else { + result = "记录不存在!"; } return result; diff --git a/src/main/java/com/emr/controller/lastVerifyController.java b/src/main/java/com/emr/controller/lastVerifyController.java index d94f00bf..51b51cbe 100644 --- a/src/main/java/com/emr/controller/lastVerifyController.java +++ b/src/main/java/com/emr/controller/lastVerifyController.java @@ -598,6 +598,12 @@ public class lastVerifyController { } return result; } + @ResponseBody + @RequestMapping(value = "/getUserInfn") + public Power_User getUserInfn(HttpServletRequest request){ + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + return user; + } } diff --git a/src/main/java/com/emr/controller/medicalOverdueController.java b/src/main/java/com/emr/controller/medicalOverdueController.java index 295285cf..90b7dd5d 100644 --- a/src/main/java/com/emr/controller/medicalOverdueController.java +++ b/src/main/java/com/emr/controller/medicalOverdueController.java @@ -53,13 +53,6 @@ public class medicalOverdueController { return result; } - /*@ResponseBody - @RequestMapping(value = "/test") - public String test(Archive_Master_Vo archiveMasterVo) { - List list = archiveMasterService.selectOverdue(archiveMasterVo); - System.out.println(list.toString()); - return list.toString(); - }*/ @ResponseBody @RequestMapping(value = "/exportExcel") @@ -82,8 +75,9 @@ public class medicalOverdueController { //文件名 String fileName = "初次提交归档列表" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; //构造excel的数据overdueDays - List list = archiveMasterService.selectOverdue(archiveMasterVo); + List list = archiveMasterService.selectOverdueE(archiveMasterVo); for (int a = 0; a < list.size(); a++) { + String overTime1 = list.get(a).getOverTime1(); String handleTime = list.get(a).getHandleTime(); try { @@ -111,56 +105,6 @@ public class medicalOverdueController { list.get(a).setDeathFlag("否"); } } - List medicalRecordHomepageCacheList = null; - if(archiveMasterVo.getOverdueDays()!=null && archiveMasterVo.getOverdueDays()!="") { - if (list != null && list.size() > 0) { - for (int i = 0; i < list.size(); i++) { - if (list.get(i).getOverdue() != null && !list.get(i).getOverdue().equals("")) { - int score = Integer.parseInt(list.get(i).getOverdue()) - Integer.parseInt(archiveMasterVo.getOverdueDays()); - list.get(i).setScore("" + score); - } -// if (list.get(i).getDeathFlag() != null && !list.get(i).getDeathFlag().equals("")){ -// if (list.get(i).getDeathFlag().equals("0")){ -// list.get(i).setDeathFlag("否"); -// }else { -// list.get(i).setDeathFlag("是"); -// } -// } - //2021-09-17 - String doctorInChargeInHomePage = ""; - String directorDoctorInHomePage = ""; - - //根据masterId查出该条首页缓存表中content内容 - MedicalRecordHomepageCacheExample medicalRecordHomepageCacheExample = new MedicalRecordHomepageCacheExample(); - MedicalRecordHomepageCacheExample.Criteria criteria = medicalRecordHomepageCacheExample.createCriteria(); - if (!StringUtils.isEmpty(list.get(i).getId())){ - criteria.andMasterIdEqualTo(list.get(i).getId()); - } - medicalRecordHomepageCacheList = medicalRecordHomepageCacheMapper.selectByExample(medicalRecordHomepageCacheExample); - - if (medicalRecordHomepageCacheList.size()>0){ - //查出content - String content = medicalRecordHomepageCacheList.get(0).getContent(); - //根据content内容获取首页中主治医生name、主任(副主任)医生name - doctorInChargeInHomePage = JSONObject.parseObject(content).getJSONObject("commonTable").getString("yZY054"); - directorDoctorInHomePage = JSONObject.parseObject(content).getJSONObject("commonTable1").getString("yZY052"); - } -// //重新赋值主管医生、主任(副主任)医生 -// if (doctorInChargeInHomePage != null && !doctorInChargeInHomePage.equals("")){ -// list.get(i).setDoctorInCharge(doctorInChargeInHomePage); -// }else { -// list.get(i).setDoctorInCharge("首页尚未填写主治医生!"); -// } - - if (directorDoctorInHomePage != null && !directorDoctorInHomePage.equals("")){ - list.get(i).setFirstInstance(directorDoctorInHomePage); - }else { - list.get(i).setFirstInstance("首页尚未填写主任(副主任)医生!"); - } - //2021-09-17 - } - } - } ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames); String result=utils.exportExcelToFilePath(response,utils.listConvert(list)); } diff --git a/src/main/java/com/emr/controller/taskController.java b/src/main/java/com/emr/controller/taskController.java index 785f71cd..71710720 100644 --- a/src/main/java/com/emr/controller/taskController.java +++ b/src/main/java/com/emr/controller/taskController.java @@ -76,48 +76,48 @@ public class taskController { } - @Scheduled(cron="0 0 1 * * ?")//每天4点触发cron="0 0 4 * * ?" - public void taskPDF() throws IOException { - Date date1 = new Date(); - Calendar calendar = Calendar.getInstance(); //得到日历 - calendar.setTime(date1);//把当前时间赋给日历 - calendar.add(calendar.DATE, -15); //设置为前15天 - Date date2 = calendar.getTime();//获取15天前的时间 - DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - Date date; - //转换成时间戳 - long t1 = date2.getTime(); - try { - File f = new File("D:\\docus\\caCopy"); - File[] files = f.listFiles(); - for (int i = 0; i < files.length; i++) { - //获取文件路径 - String filePath = files[i].getCanonicalPath(); - //获取文件名,文件名为yyyy--mm--dd格式时间 - String lastTime = files[i].getName(); - //将lastTime时间转为long类型 - try { - date = format.parse(lastTime); - } catch (ParseException e) { - throw new RuntimeException(e); - } - Long timestamp = date.getTime(); - if (timestamp < t1) { - //删除 - FileSystemUtils.deleteRecursively(new File(filePath)); - } - } - } catch (IOException e) { - e.printStackTrace(); - } - File file = new File(waterTifToJpgPath); - if (file.isDirectory()) { - for (File f : file.listFiles()) { - f.delete(); - } - } - - } +// @Scheduled(cron="0 0 1 * * ?")//每天4点触发cron="0 0 4 * * ?" +// public void taskPDF() throws IOException { +// Date date1 = new Date(); +// Calendar calendar = Calendar.getInstance(); //得到日历 +// calendar.setTime(date1);//把当前时间赋给日历 +// calendar.add(calendar.DATE, -15); //设置为前15天 +// Date date2 = calendar.getTime();//获取15天前的时间 +// DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); +// Date date; +// //转换成时间戳 +// long t1 = date2.getTime(); +// try { +// File f = new File("D:\\docus\\caCopy"); +// File[] files = f.listFiles(); +// for (int i = 0; i < files.length; i++) { +// //获取文件路径 +// String filePath = files[i].getCanonicalPath(); +// //获取文件名,文件名为yyyy--mm--dd格式时间 +// String lastTime = files[i].getName(); +// //将lastTime时间转为long类型 +// try { +// date = format.parse(lastTime); +// } catch (ParseException e) { +// throw new RuntimeException(e); +// } +// Long timestamp = date.getTime(); +// if (timestamp < t1) { +// //删除 +// FileSystemUtils.deleteRecursively(new File(filePath)); +// } +// } +// } catch (IOException e) { +// e.printStackTrace(); +// } +// File file = new File(waterTifToJpgPath); +// if (file.isDirectory()) { +// for (File f : file.listFiles()) { +// f.delete(); +// } +// } +// +// } //@Scheduled(cron="0 0 3 * * ?")//每天3点触发0 0 3 * * ? diff --git a/src/main/java/com/emr/dao/ArchiveDetailCaCopyMapper.java b/src/main/java/com/emr/dao/ArchiveDetailCaCopyMapper.java new file mode 100644 index 00000000..de959934 --- /dev/null +++ b/src/main/java/com/emr/dao/ArchiveDetailCaCopyMapper.java @@ -0,0 +1,40 @@ +package com.emr.dao; + +import com.emr.dto.Archive_DetailPdfPathDto; +import com.emr.entity.Archive_Detail_Vo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @InterfaceName ArchiveDetailCACOPY + * @Description 签章后文件保存记录表 + * @Author linjj + * @Date 2023/10/27 11:12 + * @Version 1.0 + */ +public interface ArchiveDetailCaCopyMapper { + + int addArchiveDetailCaCopyMapper(@Param("list") List list); + + /** + * 根据可选字段查询记录 + * @param record + * @return + */ + List selectByClo(Archive_Detail_Vo record); + + /** + * 根据可选字段查询记录详情 + * @param record + * @return + */ + List detailByClo(Archive_Detail_Vo record); + + List getChildPdfUrlByMasterIds(@Param("masterIds")String masterIds); + + List getPdfUrlByMasterOrId(@Param("assortIds") String[] assortIds, @Param("masterId")String masterId, @Param("flag")String flag, @Param("fileIds")String fileIds); + + int getArchiveDetailNum(@Param("fileIds")String fileIds); +} + diff --git a/src/main/java/com/emr/dao/Archive_MasterMapper.java b/src/main/java/com/emr/dao/Archive_MasterMapper.java index 1eb79c09..25cc48dc 100644 --- a/src/main/java/com/emr/dao/Archive_MasterMapper.java +++ b/src/main/java/com/emr/dao/Archive_MasterMapper.java @@ -163,6 +163,8 @@ public interface Archive_MasterMapper { * @return */ List selectOverdue(Archive_Master_Vo record); + + List selectOverdueE(Archive_Master_Vo record); //获取初次审核信息 ListgetFollowingInfo(@Param("ids")String ids); diff --git a/src/main/java/com/emr/dao/CaSignatureMapper.java b/src/main/java/com/emr/dao/CaSignatureMapper.java new file mode 100644 index 00000000..2bb46ae6 --- /dev/null +++ b/src/main/java/com/emr/dao/CaSignatureMapper.java @@ -0,0 +1,18 @@ +package com.emr.dao; + +import org.apache.ibatis.annotations.Param; + +/** + * @InterfaceName CaSignatureMapper + * @Description 签章记录状态 + * @Author linjj + * @Date 2023/10/26 16:31 + * @Version 1.0 + */ +public interface CaSignatureMapper { + + int addCaSignature(@Param("masterId") String masterId,@Param("signatureStatic") int signatureStatic); + + int getCaMasterId(@Param("masterId") String masterId,@Param("signatureStatic") int signatureStatic); + +} diff --git a/src/main/java/com/emr/dto/Archive_DetailPdfPathDto.java b/src/main/java/com/emr/dto/Archive_DetailPdfPathDto.java index 3394ce26..0ac4f114 100644 --- a/src/main/java/com/emr/dto/Archive_DetailPdfPathDto.java +++ b/src/main/java/com/emr/dto/Archive_DetailPdfPathDto.java @@ -12,4 +12,32 @@ public class Archive_DetailPdfPathDto { private String id; private String pdfPath; + + private String masterID; + + private String upLoadDateTime; + + private String assortID; + private String source; + private String subAssort; + private String title; + private String flag; + private String Sys; + private String applyId; + + private Integer pageNumber; + + private String checkReportId; + + + private String recoverPdfPath; + + private String fileCode; + private Integer cType; + + private String fileContext; + + private Integer pageCount; + + } diff --git a/src/main/java/com/emr/entity/Archive_Detail_caSign.java b/src/main/java/com/emr/entity/Archive_Detail_caSign.java index 30e26146..f1a47e24 100644 --- a/src/main/java/com/emr/entity/Archive_Detail_caSign.java +++ b/src/main/java/com/emr/entity/Archive_Detail_caSign.java @@ -14,4 +14,6 @@ public class Archive_Detail_caSign { private String archiveDetailId; private String masterId; private Date signTime; + + private Integer caStatic; } diff --git a/src/main/java/com/emr/entity/Archive_Master_Vo.java b/src/main/java/com/emr/entity/Archive_Master_Vo.java index e52e6c79..5146a7c1 100644 --- a/src/main/java/com/emr/entity/Archive_Master_Vo.java +++ b/src/main/java/com/emr/entity/Archive_Master_Vo.java @@ -25,6 +25,8 @@ public class Archive_Master_Vo { private String visitId; + private String deptNameCode; + private String name; private String sex; diff --git a/src/main/java/com/emr/entity/Power_User.java b/src/main/java/com/emr/entity/Power_User.java index 8b35f740..f7b6f983 100644 --- a/src/main/java/com/emr/entity/Power_User.java +++ b/src/main/java/com/emr/entity/Power_User.java @@ -33,6 +33,17 @@ public class Power_User { private String deptIdQuality; private String deptId; + + private String deptCode; + + public String getDeptCode() { + return deptCode; + } + + public void setDeptCode(String deptCode) { + this.deptCode = deptCode; + } + /** * 用户名 */ diff --git a/src/main/java/com/emr/service/ArchiveDetailCaCopyServer.java b/src/main/java/com/emr/service/ArchiveDetailCaCopyServer.java new file mode 100644 index 00000000..9eb7accb --- /dev/null +++ b/src/main/java/com/emr/service/ArchiveDetailCaCopyServer.java @@ -0,0 +1,15 @@ +package com.emr.service; + +import java.util.List; + +/** + * @InterfaceName ArchiveDetailCaCopyServer + * @Description + * @Author linjj + * @Date 2023/10/31 13:58 + * @Version 1.0 + */ +public interface ArchiveDetailCaCopyServer { + + List getPdfUrlByMasterOrId(String[] assortIds, String masterId, String flag, String fileIds); +} diff --git a/src/main/java/com/emr/service/Archive_MasterService.java b/src/main/java/com/emr/service/Archive_MasterService.java index 40012410..d10bb83d 100644 --- a/src/main/java/com/emr/service/Archive_MasterService.java +++ b/src/main/java/com/emr/service/Archive_MasterService.java @@ -218,6 +218,17 @@ public interface Archive_MasterService { */ List selectOverdue(Archive_Master_Vo archiveMasterVo); + + + + /** + * 根据条件查找超期天数列表(初次提交归档) + * + * @param archiveMasterVo + * @return + */ + List selectOverdueE(Archive_Master_Vo archiveMasterVo); + /** * 根据条件查找超期天数列表(初次提交归档) * diff --git a/src/main/java/com/emr/service/ipml/ArchiveDetailCaCopyServerImpl.java b/src/main/java/com/emr/service/ipml/ArchiveDetailCaCopyServerImpl.java new file mode 100644 index 00000000..d26fac31 --- /dev/null +++ b/src/main/java/com/emr/service/ipml/ArchiveDetailCaCopyServerImpl.java @@ -0,0 +1,87 @@ +package com.emr.service.ipml; + +import com.emr.dao.ArchiveDetailCaCopyMapper; +import com.emr.dao.Archive_MasterMapper; +import com.emr.dto.Archive_MasterDto; +import com.emr.entity.Archive_Master; +import com.emr.service.ArchiveDetailCaCopyServer; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.util.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName ArchiveDetailCaCopyServerImpl + * @Description + * @Author linjj + * @Date 2023/10/31 13:58 + * @Version 1.0 + */ +@Slf4j +@Service +public class ArchiveDetailCaCopyServerImpl implements ArchiveDetailCaCopyServer { + + @Autowired + private Archive_MasterMapper archiveMasterMapper; + @Autowired + private ArchiveDetailCaCopyMapper archiveDetailCaCopyMapper; + + + @Override + public List getPdfUrlByMasterOrId(String[] assortIds, String masterId, String flag, String fileIds) { + List resultList = new ArrayList<>(); + //查询本病历 + List pdfUrlByMasterOrId = archiveDetailCaCopyMapper.getPdfUrlByMasterOrId(assortIds, masterId, flag, fileIds); + if(!CollectionUtils.isEmpty(pdfUrlByMasterOrId)){ + resultList.addAll(pdfUrlByMasterOrId); + } + //判断是否存在查询新生儿 + if(null != assortIds){ + boolean childFlag = false; + for (String assortId:assortIds){ + if(StringUtils.isNotBlank(assortId) && assortId.equals("1000")){ + childFlag = true; + break; + } + } + if(childFlag){ + String childMidsByMasterId = getChildMidsByMasterId(masterId); + List childPdfUrlByMasterIds = archiveDetailCaCopyMapper.getChildPdfUrlByMasterIds(childMidsByMasterId); + if(!CollectionUtils.isEmpty(childPdfUrlByMasterIds)){ + resultList.addAll(childPdfUrlByMasterIds); + } + } + } + return resultList; + } + + + /** + * 根据masterId查询新生儿masterId逗号隔开的字符串 + * @param masterId + * @return + */ + private String getChildMidsByMasterId(String masterId) { + //查询该主键的病案号和住院时间 + Archive_Master archiveMaster = archiveMasterMapper.selectById(masterId); + //查询该住院时间的数据集合 + List list = archiveMasterMapper.selectChildMasterId(archiveMaster.getAdmissionDateTime()); + //定义是该患者的婴儿的masterId集合 + StringBuilder mIdStr = new StringBuilder(); + if(!CollectionUtils.isEmpty(list)){ + for (Archive_MasterDto dto : list){ + if(!dto.getId().equals(archiveMaster.getId()) && (dto.getInpNo().contains(archiveMaster.getInpNo() + "B") || dto.getInpNo().contains(archiveMaster.getInpNo() + "_B"))){ + if(StringUtils.isNotBlank(mIdStr)){ + mIdStr.append(","); + } + mIdStr.append("'").append(dto.getId()).append("'"); + } + } + } + return mIdStr.toString(); + } +} diff --git a/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java b/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java index b7950b32..c4a905b2 100644 --- a/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java @@ -20,6 +20,7 @@ import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.google.common.base.Function; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -33,7 +34,6 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Collectors; @Slf4j @Service @@ -193,7 +193,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { setNameAndPrintFlagNew(archiveMasterVo, list); List dicList = emrDictionaryService.dicByTypeCode(dic); //转换科室 - Map codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode); + Map codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode); Setters.instance().list(list).cycleSetProperties(p -> { String deptCode = p.getDeptName(); if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){ @@ -202,13 +202,13 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } }); //masterIds集合 - List masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getId); + List masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getId); //转成逗号拼接 String ids = String.join(",", masterIds); //获取医生缺陷数量 List doctorDefectNum = archiveMasterMapper.getDoctorDefectNum(ids); //医生是否有缺陷 - Map doctorMap = ListUtils.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId); + Map doctorMap = ListUtil.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId); Setters.instance().list(list).cycleSetProperties(p -> { String doctorId = p.getId(); if (doctorMap.containsKey(doctorId)){ @@ -220,7 +220,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { //获取护士缺陷数量 List nurseDefectNum = archiveMasterMapper.getNurseDefectNum(ids); //护士是否有缺陷 - Map nurseMap = ListUtils.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId); + Map nurseMap = ListUtil.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId); //判断是否有缺陷就填入 Setters.instance().list(list).cycleSetProperties(p -> { String nurseId = p.getId(); @@ -279,7 +279,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { dic.setTypecode("dept_code"); List dicList = emrDictionaryService.dicByTypeCode(dic); //转换科室 - Map codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode); + Map codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode); Setters.instance().list(list).cycleSetProperties(p -> { String deptCode = p.getDeptName(); String deptAdmissionCode = p.getDeptAdmissionTo(); @@ -293,13 +293,13 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } }); //masterIds集合 - List masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getId); + List masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getId); //转成逗号拼接 String ids = String.join(",", masterIds); //获取医生缺陷数量 List doctorDefectNum = archiveMasterMapper.getDoctorDefectNum(ids); //医生是否有缺陷 - Map doctorMap = ListUtils.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId); + Map doctorMap = ListUtil.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId); Setters.instance().list(list).cycleSetProperties(p -> { String doctorId = p.getId(); if (doctorMap.containsKey(doctorId)){ @@ -311,7 +311,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { //获取护士缺陷数量 List nurseDefectNum = archiveMasterMapper.getNurseDefectNum(ids); //护士是否有缺陷 - Map nurseMap = ListUtils.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId); + Map nurseMap = ListUtil.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId); //判断是否有缺陷就填入 Setters.instance().list(list).cycleSetProperties(p -> { String nurseId = p.getId(); @@ -627,7 +627,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { dic.setTypecode("dept_code"); List dicList = emrDictionaryService.dicByTypeCode(dic); //转换科室 - Map codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode); + Map codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode); Setters.instance().list(list).cycleSetProperties(p -> { String deptCode = p.getDeptName(); String deptAdmissionCode = p.getDeptAdmissionTo(); @@ -641,13 +641,13 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } }); //masterIds集合 - List masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getId); + List masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getId); //转成逗号拼接 String ids = String.join(",", masterIds); //获取医生缺陷数量 List doctorDefectNum = archiveMasterMapper.getDoctorDefectNum(ids); //医生是否有缺陷 - Map doctorMap = ListUtils.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId); + Map doctorMap = ListUtil.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId); Setters.instance().list(list).cycleSetProperties(p -> { String doctorId = p.getId(); if (doctorMap.containsKey(doctorId)){ @@ -659,7 +659,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { //获取护士缺陷数量 List nurseDefectNum = archiveMasterMapper.getNurseDefectNum(ids); //护士是否有缺陷 - Map nurseMap = ListUtils.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId); + Map nurseMap = ListUtil.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId); //判断是否有缺陷就填入 Setters.instance().list(list).cycleSetProperties(p -> { String nurseId = p.getId(); @@ -858,6 +858,41 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { List dicList = emrDictionaryService.dicByTypeCode(dic); List list = archiveMasterMapper.selectOverdue(archiveMasterVo); if(list!=null && list.size()>0) { + //转换科室 + Map codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode); + Setters.instance().list(list).cycleSetProperties(p -> { + String deptCode = p.getDeptName(); + String deptAdmissionCode = p.getDeptAdmissionTo(); + if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){ + String deptName = codeMap.get(deptCode).getName(); + p.setDeptName(deptName); + } + if(StringUtils.isNotBlank(deptAdmissionCode) && codeMap.containsKey(deptAdmissionCode)){ + String deptAdmissionTo = codeMap.get(deptAdmissionCode).getName(); + p.setDeptAdmissionTo(deptAdmissionTo); + } + }); + //masterIds集合 + List masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getMasterId); + //分批次 + List> newList = ListUtils.partition(masterIds, 1000); + for (List messageList : newList) { + //转成逗号拼接 + String ids = String.join(",", messageList); + //根据分页的masterId获取签收信息 + List followingInfo = archiveMasterMapper.getFollowingInfo(ids); + //医生是否有缺陷 + Map followingMap = ListUtil.toMap(followingInfo, Archive_Master_Vo::getMasterId); + Setters.instance().list(list).cycleSetProperties(p -> { + String masterId = p.getMasterId(); + if (followingMap.containsKey(masterId)){ + String handleTime = followingMap.get(masterId).getHandleTime(); + String handleName = followingMap.get(masterId).getHandleName(); + p.setHandleTime(handleTime); + p.setHandleName(handleName); + } + }); + } //查询用户集合 JSONArray powerUsers = powerUserService.getPowerUserList("1"); List powerUserList = null; @@ -885,10 +920,16 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } Calendar ca1 = Calendar.getInstance(); Calendar ca2 = Calendar.getInstance(); + Calendar ca3 = Calendar.getInstance(); ca1.setTime(date1); ca2.setTime(date2); + ca3.setTime(date3); long distanceMin =( ca2.getTimeInMillis()- ca1.getTimeInMillis())/(1000*60*60*24); + long distanceMin2 =( ca2.getTimeInMillis()- ca3.getTimeInMillis())/(1000*60*60*24); int i= (int)distanceMin; + int i2= (int)distanceMin2; + archiveMaster.setDiffDay(String.valueOf(i2)); + archiveMasterVo.setDischargeDateTime1(date3); if (i>0){ archiveMaster.setOverTime(i); }else { @@ -903,25 +944,92 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { archiveMaster.setFirstInstance(name); } } - //转换科室 - for (int k = 0; k < dicList.size(); k++) { - if (StringUtils.isNotBlank(archiveMaster.getDeptName())){ - String deptName = archiveMaster.getDeptName(); - if (deptName.equals(dicList.get(k).getCode())) { - //出院科室 - deptName = deptName.replace(deptName, dicList.get(k).getName()); - archiveMaster.setDeptName(deptName); - } + } + } + } + return list; + } + + + + + @Override + public List selectOverdueE(Archive_Master_Vo archiveMasterVo) { + DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date date1=null; + Date date2=null; + Date date3=null; + Emr_Dictionary dic = new Emr_Dictionary(); + dic.setEffective(1); + dic.setTypecode("dept_code"); + //科室列表 + List dicList = emrDictionaryService.dicByTypeCode(dic); + List list = archiveMasterMapper.selectOverdueE(archiveMasterVo); + if(list!=null && list.size()>0) { + //转换科室 + Map codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode); + Setters.instance().list(list).cycleSetProperties(p -> { + String deptCode = p.getDeptName(); + String deptAdmissionCode = p.getDeptAdmissionTo(); + if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){ + String deptName = codeMap.get(deptCode).getName(); + p.setDeptName(deptName); + } + if(StringUtils.isNotBlank(deptAdmissionCode) && codeMap.containsKey(deptAdmissionCode)){ + String deptAdmissionTo = codeMap.get(deptAdmissionCode).getName(); + p.setDeptAdmissionTo(deptAdmissionTo); + } + }); + //查询用户集合 + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = null; + if (!CollectionUtils.isEmpty(powerUsers)) { + //转换对象 + powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), Power_User_Dto.class); + } + //遍历赋值 + for (Archive_Master_Vo archiveMaster : list) { + if (null != powerUserList) { + //获取主管医生 + String doctorInCharge = archiveMaster.getDoctorInCharge(); + //获取 初审人 + String firstInstance = archiveMaster.getFirstInstance(); + //遍历匹配工号赋值姓名 + String overTime1 = archiveMaster.getOverTime1(); + String handleTime = archiveMaster.getHandleTime(); + String dischargeDateTime = archiveMaster.getDischargeDateTime(); + try { + date1=format.parse(overTime1); + date2=format.parse(handleTime); + date3=format.parse(dischargeDateTime); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar ca1 = Calendar.getInstance(); + Calendar ca2 = Calendar.getInstance(); + Calendar ca3 = Calendar.getInstance(); + ca1.setTime(date1); + ca2.setTime(date2); + ca3.setTime(date3); + long distanceMin =( ca2.getTimeInMillis()- ca1.getTimeInMillis())/(1000*60*60*24); + long distanceMin2 =( ca2.getTimeInMillis()- ca3.getTimeInMillis())/(1000*60*60*24); + int i= (int)distanceMin; + int i2= (int)distanceMin2; + archiveMaster.setDiffDay(String.valueOf(i2)); + archiveMasterVo.setDischargeDateTime1(date3); + if (i>0){ + archiveMaster.setOverTime(i); + }else { + archiveMaster.setOverTime(0); + } + for (Power_User_Dto powerUserDto : powerUserList) { + String name = powerUserDto.getName(); + if (StringUtils.isNotBlank(doctorInCharge) && powerUserDto.getUserName().equals(doctorInCharge)) { + archiveMaster.setDoctorInCharge(name); } - if (StringUtils.isNotBlank(archiveMaster.getDeptAdmissionTo())){ - String dept2 = archiveMaster.getDeptAdmissionTo(); - if(dept2 != null && dept2.equals(dicList.get(k).getCode())) { - //入院科室dept_admission_to - dept2 = dept2.replace(dept2, dicList.get(k).getName()); - archiveMaster.setDeptAdmissionTo(dept2); - } + if (StringUtils.isNotBlank(firstInstance) && powerUserDto.getUserName().equals(firstInstance)) { + archiveMaster.setFirstInstance(name); } - } } } @@ -949,13 +1057,13 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { if(list!=null && list.size()>0) { //赋值签收信息 //masterIds集合 - List masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getMasterId); + List masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getMasterId); //转成逗号拼接 String ids = String.join(",", masterIds); //根据分页的masterId获取签收信息 List followingInfo = archiveMasterMapper.getFollowingInfo(ids); //医生是否有缺陷 - Map followingMap = ListUtils.toMap(followingInfo, Archive_Master_Vo::getMasterId); + Map followingMap = ListUtil.toMap(followingInfo, Archive_Master_Vo::getMasterId); Setters.instance().list(list).cycleSetProperties(p -> { String masterId = p.getMasterId(); if (followingMap.containsKey(masterId)){ @@ -965,6 +1073,11 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { p.setHandleName(handleName); } }); + Emr_Dictionary dic = new Emr_Dictionary(); + dic.setEffective(1); + dic.setTypecode("dept_code"); + //科室列表 + List dicList = emrDictionaryService.dicByTypeCode(dic); //查询用户集合 JSONArray powerUsers = powerUserService.getPowerUserList("1"); List powerUserList = null; @@ -1019,11 +1132,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { archiveMaster.setFirstInstance(name); } } - Emr_Dictionary dic = new Emr_Dictionary(); - dic.setEffective(1); - dic.setTypecode("dept_code"); - //科室列表 - List dicList = emrDictionaryService.dicByTypeCode(dic); + //转换科室 for (int k = 0; k < dicList.size(); k++) { if (StringUtils.isNotBlank(archiveMaster.getDeptName())){ @@ -1053,6 +1162,11 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { @Override public List selectOverdueXls2(Archive_Master_Vo archiveMasterVo) { + Emr_Dictionary dic = new Emr_Dictionary(); + dic.setEffective(1); + dic.setTypecode("dept_code"); + //科室列表 + List dicList = emrDictionaryService.dicByTypeCode(dic); List list = archiveMasterMapper.selectOverdue2(archiveMasterVo); if(list!=null && list.size()>0) { //查询用户集合 @@ -1079,6 +1193,27 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { archiveMaster.setFirstInstance(name); } } + //转换科室 + for (int k = 0; k < dicList.size(); k++) { + if (StringUtils.isNotBlank(archiveMaster.getDeptName())){ + String deptName = archiveMaster.getDeptName(); + + if (deptName.equals(dicList.get(k).getCode())) { + //出院科室 + deptName = deptName.replace(deptName, dicList.get(k).getName()); + archiveMaster.setDeptName(deptName); + } + } + if (StringUtils.isNotBlank(archiveMaster.getDeptAdmissionTo())){ + String dept2 = archiveMaster.getDeptAdmissionTo(); + if(dept2 != null && dept2.equals(dicList.get(k).getCode())) { + //入院科室dept_admission_to + dept2 = dept2.replace(dept2, dicList.get(k).getName()); + archiveMaster.setDeptAdmissionTo(dept2); + } + } + + } } } } @@ -1180,6 +1315,32 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } //遍历赋值 for (Archive_Master_Vo archiveMaster : list) { + Emr_Dictionary dic = new Emr_Dictionary(); + dic.setEffective(1); + dic.setTypecode("dept_code"); + //科室列表 + List dicList = emrDictionaryService.dicByTypeCode(dic); + //转换科室 + for (int k = 0; k < dicList.size(); k++) { + if (StringUtils.isNotBlank(archiveMaster.getDeptName())){ + String deptName = archiveMaster.getDeptName(); + + if (deptName.equals(dicList.get(k).getCode())) { + //出院科室 + deptName = deptName.replace(deptName, dicList.get(k).getName()); + archiveMaster.setDeptName(deptName); + } + } + if (StringUtils.isNotBlank(archiveMaster.getDeptAdmissionTo())){ + String dept2 = archiveMaster.getDeptAdmissionTo(); + if(dept2 != null && dept2.equals(dicList.get(k).getCode())) { + //入院科室dept_admission_to + dept2 = dept2.replace(dept2, dicList.get(k).getName()); + archiveMaster.setDeptAdmissionTo(dept2); + } + } + + } String overTime1 = archiveMaster.getOverTime1(); String handleTime = archiveMaster.getAgainTime(); try { @@ -1339,12 +1500,12 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { List dicList = emrDictionaryService.dicByTypeCode(dic); //添加封存类型 //masterIds集合 - List masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getMasterId); + List masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getMasterId); //转成逗号拼接 String ids = String.join(",", masterIds); //查询封存记录 List archiveMasterVos = archiveMasterMapper.selectFollowing(ids); - Map masterIdMap = ListUtils.toMap(archiveMasterVos, Archive_Master_Vo::getMasterId); + Map masterIdMap = ListUtil.toMap(archiveMasterVos, Archive_Master_Vo::getMasterId); Setters.instance().list(list).cycleSetProperties(p -> { String masterId = p.getMasterId(); if (masterIdMap.containsKey(masterId)){ @@ -1352,7 +1513,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } }); //转换科室 - Map codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode); + Map codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode); Setters.instance().list(list).cycleSetProperties(p -> { String afekeepingCode = p.getSafekeepingName(); if(StringUtils.isNotBlank(afekeepingCode) && codeMap.containsKey(afekeepingCode)){ @@ -1423,13 +1584,13 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { //转换科室 List list = archiveMasterMapper.selectByCmtCol(archiveMasterVo); //masterIds集合 - List masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getId); + List masterIds = ListUtil.distinctSelect(list, Archive_Master_Vo::getId); //转成逗号拼接 String ids = String.join(",", masterIds); //获取医生缺陷数量 List doctorDefectNum = archiveMasterMapper.getDoctorDefectNum(ids); //医生是否有缺陷 - Map doctorMap = ListUtils.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId); + Map doctorMap = ListUtil.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId); Setters.instance().list(list).cycleSetProperties(p -> { String doctorId = p.getId(); if (doctorMap.containsKey(doctorId)){ @@ -1441,7 +1602,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { //获取护士缺陷数量 List nurseDefectNum = archiveMasterMapper.getNurseDefectNum(ids); //护士是否有缺陷 - Map nurseMap = ListUtils.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId); + Map nurseMap = ListUtil.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId); //判断是否有缺陷就填入 Setters.instance().list(list).cycleSetProperties(p -> { String nurseId = p.getId(); @@ -1457,7 +1618,7 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { dic.setTypecode("dept_code"); List dicList = emrDictionaryService.dicByTypeCode(dic); //转换科室 - Map codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode); + Map codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode); Setters.instance().list(list).cycleSetProperties(p -> { String deptCode = p.getDeptName(); String deptAdmissionCode = p.getDeptAdmissionTo(); diff --git a/src/main/java/com/emr/service/ipml/CaSignServiceImpl.java b/src/main/java/com/emr/service/ipml/CaSignServiceImpl.java index 582cdd51..72d1824f 100644 --- a/src/main/java/com/emr/service/ipml/CaSignServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/CaSignServiceImpl.java @@ -5,7 +5,9 @@ import cn.org.bjca.seal.esspdf.client.message.ChannelMessage; import cn.org.bjca.seal.esspdf.client.message.RectangleBean; import cn.org.bjca.seal.esspdf.client.tools.AnySignClientTool; import cn.org.bjca.seal.esspdf.client.utils.ClientUtil; +import com.emr.dao.ArchiveDetailCaCopyMapper; import com.emr.dao.Archive_Detail_ca_reqParamMapper; +import com.emr.dao.CaSignatureMapper; import com.emr.dto.Archive_DetailPdfPathDto; import com.emr.entity.Archive_Detail_caSign; import com.emr.entity.Archive_Detail_ca_reqParam; @@ -47,12 +49,19 @@ public class CaSignServiceImpl { private int isCaOpen; @Value("${caCopyPath}") private String caCopyPath; + @Value("${newPdfPath}") + private String newPdfPath; @Resource private Archive_DetailService archiveDetailService; @Resource private Archive_Detai_CaSignServiceImpl archiveDetaiCaSignService; @Resource private Archive_Detail_ca_reqParamMapper archiveDetailCaReqParamMapper; + @Resource + private CaSignatureMapper caSignatureMapper; + @Resource + private ArchiveDetailCaCopyMapper archiveDetailCaCopyMapper; + /** * @Description: caSignByMasterId方法是根据masterId查询所有文件进行ca签章 * @param: [masterId] @@ -69,30 +78,49 @@ public class CaSignServiceImpl { try { List pdfPathList = archiveDetailService.getPdfPathByMasterId(masterId); if (!CollectionUtils.isEmpty(pdfPathList)) { + //保存文件表数据list + List list=new ArrayList<>(); + //签章后保存目录 + String newPath = newPdfPath + File.separator + masterId; + //没有目录创建目录 + if (!new File(newPath).isDirectory()) { + new File(newPath).mkdirs(); + } //查询签章位置比例 Archive_Detail_ca_reqParam caReqParam = archiveDetailCaReqParamMapper.selectAll(); //定义此次需要签章的文件id集合 List idList = new ArrayList<>(); - SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); - //获取今天日期 - String todayDate = fmt.format(new Date()); + //签章失败文件id集合 + List failIdList = new ArrayList<>(); //遍历文件集合 for (Archive_DetailPdfPathDto dto : pdfPathList) { //获取文件路径 String pdfPath = dto.getPdfPath(); File file = new File(pdfPath); if (file.isFile()) { - //备份源文件 - caCopyFile(pdfPath, todayDate, masterId); + SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + //获取今天日期 + String todayDate = fmt.format(new Date()); + //签章后地址 + String newpdfPath = newPath + File.separator + todayDate+".pdf"; //进行签章 - boolean isSign = caSign(pdfPath,caReqParam); + boolean isSign = caSign(pdfPath, newpdfPath, caReqParam); if (isSign) { idList.add(dto.getId()); + dto.setPdfPath(newpdfPath); + } else { + failIdList.add(dto.getId()); + dto.setPdfPath(newpdfPath); } } + list.add(dto); } //添加签章记录 - updateCaFileState(idList,masterId); + updateCaFileState(idList, failIdList, masterId); + //签章完后保存新的文件表 + archiveDetailCaCopyMapper.addArchiveDetailCaCopyMapper(list); + //签章完成后保存状态 + caSignatureMapper.addCaSignature(masterId, 1); } } catch (Exception e) { e.printStackTrace(); @@ -106,20 +134,31 @@ public class CaSignServiceImpl { * @author 曾文和 * @createTime 2023/7/25 16:19 */ - private void updateCaFileState(List idList, String masterId) { - if(!CollectionUtils.isEmpty(idList)) { + private void updateCaFileState(List idList, List failIdList, String masterId) { + if (!CollectionUtils.isEmpty(idList)) { //先删除原有签章记录 archiveDetaiCaSignService.deletesFromMasterId(masterId); //后新增 List list = new ArrayList<>(); Date date = new Date(); - for(String id : idList){ + for (String id : idList) { Archive_Detail_caSign obj = new Archive_Detail_caSign(); obj.setArchiveDetailId(id); obj.setMasterId(masterId); obj.setSignTime(date); + obj.setCaStatic(1); list.add(obj); } + if (!CollectionUtils.isEmpty(failIdList)) { + for (String id : failIdList) { + Archive_Detail_caSign obj = new Archive_Detail_caSign(); + obj.setArchiveDetailId(id); + obj.setMasterId(masterId); + obj.setSignTime(date); + obj.setCaStatic(2); + list.add(obj); + } + } //批量新增 archiveDetaiCaSignService.insertBatchCaSign(list); } @@ -132,9 +171,9 @@ public class CaSignServiceImpl { * @author 曾文和 * @createTime 2023/7/25 15:51 */ - private void caCopyFile(String pdfPath, String todayDate,String masterId) { - String newPath = caCopyPath + File.separator + todayDate + File.separator + masterId ; - if(!new File(newPath).isDirectory()){ + private void caCopyFile(String pdfPath, String todayDate, String masterId) { + String newPath = caCopyPath + File.separator + todayDate + File.separator + masterId; + if (!new File(newPath).isDirectory()) { new File(newPath).mkdirs(); } String newSrc = newPath + File.separator + new File(pdfPath).getName(); @@ -160,8 +199,8 @@ public class CaSignServiceImpl { * * z:docus/caTemp/masterId/病案首页 */ - private boolean caSign(String fileSrc,Archive_Detail_ca_reqParam caReqParam) throws Exception { - System.out.println("fileSrc:"+fileSrc); + private boolean caSign(String fileSrc, String newpdfPath, Archive_Detail_ca_reqParam caReqParam) throws Exception { + System.out.println("fileSrc:" + fileSrc); //定义是否成功 boolean flag = false; PdfReader pdfReader = null; @@ -177,7 +216,7 @@ public class CaSignServiceImpl { byte[] pdfBty = ClientUtil.readFileToByteArray(file); //pdf验章 ChannelMessage messageExist = anySignClientTool.pdfVerify(pdfBty); - if(!StringUtils.isEmpty(messageExist.getStatusInfo()) && "pdf文档未签章".equals(messageExist.getStatusInfo())) { + if (!StringUtils.isEmpty(messageExist.getStatusInfo()) && "pdf文档未签章".equals(messageExist.getStatusInfo())) { RectangleBean bean = new RectangleBean(); int numberOfPages = pdfReader.getNumberOfPages(); for (int i = 0; i < numberOfPages; i++) { @@ -187,19 +226,19 @@ public class CaSignServiceImpl { bean.setPageNo(i + 1); ChannelMessage message = null; //获取pdf的高宽 - Rectangle pageSize = pdfReader.getPageSizeWithRotation(i+1); + Rectangle pageSize = pdfReader.getPageSizeWithRotation(i + 1); // 获取页面的宽度和高度 float width = pageSize.getWidth(); float height = pageSize.getHeight(); - System.out.println("pdf尺寸:width:"+width+",height:"+height); + System.out.println("pdf尺寸:width:" + width + ",height:" + height); bean.setLeft(Float.valueOf(width - caReqParam.getSignLeft())); bean.setTop(Float.valueOf(caReqParam.getSignTop())); bean.setRight(Float.valueOf(width)); bean.setBottom(Float.valueOf(caReqParam.getSignBottom())); - System.out.println("左:"+bean.getLeft()+",上:"+bean.getTop()+",右:"+bean.getRight()+",下:"+bean.getBottom()); + System.out.println("左:" + bean.getLeft() + ",上:" + bean.getTop() + ",右:" + bean.getRight() + ",下:" + bean.getBottom()); message = anySignClientTool.pdfSignByParam(pdfBty, signNo, bean); if ("200".equals(message.getStatusCode())) {//成功 - ClientUtil.writeByteArrayToFile(new File(fileSrc), message.getBody()); + ClientUtil.writeByteArrayToFile(new File(newpdfPath), message.getBody()); System.out.println("签章成功"); } else { String statusCode = message.getStatusCode(); @@ -209,11 +248,11 @@ public class CaSignServiceImpl { } } flag = true; - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } else { - log.error("进行签章pdf:"+fileSrc+"不存在或损坏"); + log.error("进行签章pdf:" + fileSrc + "不存在或损坏"); } System.out.println("完成"); return flag; diff --git a/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java b/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java index 4582ab74..319e1186 100644 --- a/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Emr_Fault_DetailServiceImpl.java @@ -15,7 +15,7 @@ import com.emr.service.Emr_DictionaryService; import com.emr.service.Emr_Fault_DetailService; import com.emr.service.Emr_Fault_TypeService; import com.emr.service.PowerUserService; -import com.emr.util.ListUtils; +import com.emr.util.ListUtil; import com.emr.util.Setters; import com.emr.vo.Power_User_Dto; import com.github.pagehelper.Page; @@ -366,7 +366,7 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { dic.setTypecode("dept_code"); List dicList = emrDictionaryService.dicByTypeCode(dic); //转换科室 - Map codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode); + Map codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode); Setters.instance().list(list).cycleSetProperties(p -> { String deptCode = p.getDeptName(); if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){ diff --git a/src/main/java/com/emr/service/ipml/Sign_ListServiceImpl.java b/src/main/java/com/emr/service/ipml/Sign_ListServiceImpl.java index 73060222..d8eac789 100644 --- a/src/main/java/com/emr/service/ipml/Sign_ListServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Sign_ListServiceImpl.java @@ -7,28 +7,22 @@ package com.emr.service.ipml; import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.emr.dao.Archive_MasterMapper; import com.emr.dao.Sign_ListMapper; import com.emr.entity.*; -import com.emr.service.Archive_MasterService; import com.emr.service.Emr_DictionaryService; import com.emr.service.PowerUserService; import com.emr.service.Sign_ListService; -import com.emr.util.ListUtils; +import com.emr.util.ListUtil; import com.emr.util.Setters; import com.emr.vo.Power_User_Dto; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; -import com.google.common.base.Function; -import com.google.common.collect.Maps; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.*; -import java.util.stream.Collectors; @Service public class Sign_ListServiceImpl implements Sign_ListService { @@ -53,7 +47,7 @@ public class Sign_ListServiceImpl implements Sign_ListService { dic.setTypecode("dept_code"); List dicList = emrDictionaryService.dicByTypeCode(dic); //转换科室 - Map codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode); + Map codeMap = ListUtil.toMap(dicList, Emr_Dictionary::getCode); Setters.instance().list(list).cycleSetProperties(p -> { String deptCode = p.getDeptName(); String deptAdmissionCode = p.getDeptAdmissionTo(); @@ -90,12 +84,12 @@ public class Sign_ListServiceImpl implements Sign_ListService { } //查询签收次数 //masterIds集合 - List masterIds = ListUtils.distinctSelect(list, Sign_List_Vo::getMasterID); + List masterIds = ListUtil.distinctSelect(list, Sign_List_Vo::getMasterID); //转成逗号拼接 String ids = String.join(",", masterIds); List signNum = signListMapper.getSignNum(ids); //遍历签收次数 - Map signNumMap = ListUtils.toMap(signNum, Sign_List_Vo::getMasterID); + Map signNumMap = ListUtil.toMap(signNum, Sign_List_Vo::getMasterID); Setters.instance().list(list).cycleSetProperties(p -> { String masterID = p.getMasterID(); if (signNumMap.containsKey(masterID)){ diff --git a/src/main/java/com/emr/util/ListUtils.java b/src/main/java/com/emr/util/ListUtil.java similarity index 98% rename from src/main/java/com/emr/util/ListUtils.java rename to src/main/java/com/emr/util/ListUtil.java index c950aa0a..524041d1 100644 --- a/src/main/java/com/emr/util/ListUtils.java +++ b/src/main/java/com/emr/util/ListUtil.java @@ -10,7 +10,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -public final class ListUtils { +public final class ListUtil { public static Map toMap(List list, FieldSelector selector) { if (CollectionUtils.isEmpty(list)) return Collections.emptyMap(); Map map = new HashMap<>(list.size()); diff --git a/src/main/resources/config/caSign.properties b/src/main/resources/config/caSign.properties index b7e2c1cc..943b1b95 100644 --- a/src/main/resources/config/caSign.properties +++ b/src/main/resources/config/caSign.properties @@ -1,20 +1,23 @@ #\u662F\u5426\u5F00\u542F\u63A5\u53E3 1:\u5F00\u542F\uFF1B0:\u5173\u95ED -isCaOpen=0 +isCaOpen=1 #ca\u63A5\u53E3ip -caServerIp=10.6.0.88 -#ca\u63A5\u53E3\u7AEF\u53E3 -caServerPort=8002 -\u7B7E\u7AE0\u7F16\u53F7 -signNo=3012E4D7D234DC58 +#caServerIp=10.6.0.88 +##ca\u63A5\u53E3\u7AEF\u53E3 +#caServerPort=8002 +#\u7B7E\u7AE0\u7F16\u53F7 +#signNo=3012E4D7D234DC58 #\u7B7E\u7AE0\u7BA1\u7406\u540E\u53F0\u8D26\u53F7\uFF1Aoperator \u5BC6\u7801\uFF1A111111 #\u5916\u7F51\u6D4B\u8BD5 #ca\u63A5\u53E3ip -#caServerIp=223.70.139.221 -##ca\u63A5\u53E3\u7AEF\u53E3 -#caServerPort=18002 -###\u7B7E\u7AE0\u7F16\u53F7 -#signNo=59BC18FE5DEB0F15 +caServerIp=223.70.139.221 +#ca\u63A5\u53E3\u7AEF\u53E3 +caServerPort=18002 +##\u7B7E\u7AE0\u7F16\u53F7 +signNo=59BC18FE5DEB0F15 #\u5907\u4EFD\u539F\u6587\u4EF6\u8DEF\u5F84 -caCopyPath=d:docus/caCopy \ No newline at end of file +caCopyPath=d:docus/caCopy + + +newPdfPath=G:/caPdfs \ No newline at end of file diff --git a/src/main/resources/config/jdbc.properties b/src/main/resources/config/jdbc.properties index 8fbdb9e8..3bdb43e7 100644 --- a/src/main/resources/config/jdbc.properties +++ b/src/main/resources/config/jdbc.properties @@ -1,4 +1,4 @@ -POWER_IP=127.0.0.1 +POWER_IP=localhost jdbc.username=sa jdbc.password=admin123 dataBaseName=zj_record_new @@ -18,7 +18,7 @@ hibernate.enable_lazy_load_no_trans=true WEBSOCKET_URLHEAD=${POWER_JSPHEAD}:8088 #\u901A\u77E5\u5B57\u7B26\u4E32\u95F4\u9694\u7B26 STR_SPLIT=*^:|,. -POWER_JSPHEAD=127.0.0.1 +POWER_JSPHEAD=localhost ##\u56FE\u7247\u5730\u5740 pictureUrl=Z:\\test\\uploadImage diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties index 5f3fdc62..8faf9046 100644 --- a/src/main/resources/log4j.properties +++ b/src/main/resources/log4j.properties @@ -3,7 +3,7 @@ log4j.appender.myLog=org.apache.log4j.DailyRollingFileAppender log4j.appender.myLog.File=D:\\logs\\emr_medical_record\\info\\info_log log4j.appender.myLog.DatePattern=-yyyy-MM-dd'.log' log4j.appender.myLog.Append = true -log4j.appender.myLog.Threshold = debug +log4j.appender.myLog.Threshold = info log4j.appender.myLog.layout=org.apache.log4j.PatternLayout log4j.appender.myLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}:%m%n @@ -12,7 +12,7 @@ log4j.appender.errorMsg=org.apache.log4j.DailyRollingFileAppender log4j.appender.errorMsg.File=D:\\logs\\emr_medical_record\\error\\error_log log4j.appender.errorMsg.DatePattern=-yyyy-MM-dd'.log' log4j.appender.errorMsg.Append = true -log4j.appender.errorMsg.Threshold = debug +log4j.appender.errorMsg.Threshold = info log4j.appender.errorMsg.layout=org.apache.log4j.PatternLayout log4j.appender.errorMsg.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}:%m%n @@ -22,6 +22,6 @@ log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern =%d %-5p [%c{5}] - %m%n -log4j.logger.com.emr=debug -log4j.logger.com.alibaba=debug -log4j.logger.org=debug +log4j.logger.com.emr=info +log4j.logger.com.alibaba=info +log4j.logger.org=info diff --git a/src/main/resources/mapper/ArchiveDetailCaCopyMapper.xml b/src/main/resources/mapper/ArchiveDetailCaCopyMapper.xml new file mode 100644 index 00000000..27c026dd --- /dev/null +++ b/src/main/resources/mapper/ArchiveDetailCaCopyMapper.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into Archive_Detail_CA_COPY(ID,PDF_PATH,MasterID,UpLoadDateTime,AssortID,Source,SubAssort,Title,flag,Sys,apply_id, + page_number,check_report_Id,recover_pdf_path,FileCode,CType,FileContext,pageCount) + values + + (#{item.id},#{item.pdfPath},#{item.masterID},#{item.upLoadDateTime},#{item.assortID},#{item.source},#{item.subAssort},#{item.title},#{item.flag} + ,#{item.Sys},#{item.applyId},#{item.pageNumber},#{item.checkReportId},#{item.crecoverPdfPath},#{item.fileCode},#{item.cType},#{item.fileContext} + ,#{item.pageCount}) + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Archive_DetailMapper.xml b/src/main/resources/mapper/Archive_DetailMapper.xml index a50cdd00..5e92ab2e 100644 --- a/src/main/resources/mapper/Archive_DetailMapper.xml +++ b/src/main/resources/mapper/Archive_DetailMapper.xml @@ -768,6 +768,6 @@ select Title,page_number,Source,flag,PDF_PATH from Archive_Detail where ID=#{detailId} \ No newline at end of file diff --git a/src/main/resources/mapper/Archive_Detail_caSignMapper.xml b/src/main/resources/mapper/Archive_Detail_caSignMapper.xml index 77dee51d..f262dde5 100644 --- a/src/main/resources/mapper/Archive_Detail_caSignMapper.xml +++ b/src/main/resources/mapper/Archive_Detail_caSignMapper.xml @@ -1,11 +1,15 @@ + + + + - insert into Archive_Detail_caSign(archive_detail_id,master_id,sign_time) + insert into Archive_Detail_caSign(archive_detail_id,master_id,sign_time,ca_static) values - (#{item.archiveDetailId},#{item.masterId},#{item.signTime}) + (#{item.archiveDetailId},#{item.masterId},#{item.signTime},#{item.caStatic}) diff --git a/src/main/resources/mapper/Archive_MasterMapper.xml b/src/main/resources/mapper/Archive_MasterMapper.xml index 9767786c..452f02bb 100644 --- a/src/main/resources/mapper/Archive_MasterMapper.xml +++ b/src/main/resources/mapper/Archive_MasterMapper.xml @@ -49,6 +49,7 @@ + @@ -382,10 +383,10 @@ + + + + + + + + + + select count(*) num from ca_signature where master_id=#{masterId} and signature_static=#{signatureStatic} + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/faultDir/faultList.jsp b/src/main/webapp/WEB-INF/views/faultDir/faultList.jsp index d785f937..9615d7d6 100644 --- a/src/main/webapp/WEB-INF/views/faultDir/faultList.jsp +++ b/src/main/webapp/WEB-INF/views/faultDir/faultList.jsp @@ -530,53 +530,6 @@ //return changeDateFormat(value) } }, - // { - // field: 'creater', - // title: '创建人', - // valign: 'middle', - // } - /*{ - field: 'createTime', - title: '创建时间', - valign: 'middle', - formatter: function (value, row, index) { - return value; - //return changeDateFormat(value) - } - }, - - },*/ - // { - // field: 'updater', - // title: '修改人', - // valign: 'middle', - // formatter: function (value, row, index) { - // return value; - // //return changeDateFormat(value) - // } - // }, - // { - // field: 'updateTime', - // title: '修改时间', - // valign: 'middle', - // formatter: function (value, row, index) { - // return value; - // //return changeDateFormat(value) - // } - // } - // { - // title: "操作", - // align: 'center', - // valign: 'middle', - // width: 160, // 定义列的宽度,单位为像素px - // formatter: function (value, row, index) { - // return ' '; - // }, - // cellStyle: function (value, row, index) { - // return {classes: 'success'} - // - // } - // } ], onLoadSuccess: function (result) { //加载成功时执行 //console.info("加载成功"); @@ -1168,7 +1121,7 @@ window.location.href = "${path}/fault/exportExcel?inpNo=" + inpNo + "&visitId=" + visitId + "&name=" + name + "&startDate=" + startDate + "&endDate=" + endDate + "&archivestate=" + archivestate+ "&deptName="+ deptName + "&doctorInCharge=" + doctorInCharge - + "&assortId=" + assortId + "&creater=" + creater+"&backFlag="+backFlag; + + "&assortId=" + assortId +"&backFlag="+backFlag; }); diff --git a/src/main/webapp/WEB-INF/views/lastVerifyDir/lastVerifyList.jsp b/src/main/webapp/WEB-INF/views/lastVerifyDir/lastVerifyList.jsp index 1c50f7da..68f509ff 100644 --- a/src/main/webapp/WEB-INF/views/lastVerifyDir/lastVerifyList.jsp +++ b/src/main/webapp/WEB-INF/views/lastVerifyDir/lastVerifyList.jsp @@ -19,6 +19,8 @@ <%@include file="../../jspf/ztreeCommom.jsp" %> +