From 7deb16e7cb1a5fcc8dfc069669f60d78eff31244 Mon Sep 17 00:00:00 2001 From: hujl <123@qq.com> Date: Tue, 30 Mar 2021 18:59:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E9=A1=B5=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/emr/controller/LogAopAction.java | 52 +- .../com/emr/controller/LoginController.java | 23 +- .../controller/MedicalRecallController.java | 54 +- .../emr/controller/UploadFilesController.java | 2 +- .../com/emr/controller/UrlInterceptor.java | 46 +- .../com/emr/controller/VCountController.java | 177 +- .../controller/beHospitaledController.java | 403 +- .../com/emr/controller/faultController.java | 277 +- .../emr/controller/inHospitalController.java | 997 ++++- .../emr/controller/lastVerifyController.java | 266 +- .../com/emr/controller/taskController.java | 37 +- .../controller/unfileMedicalController.java | 33 +- .../com/emr/dao/Archive_DetailMapper.java | 7 +- .../com/emr/dao/Archive_MasterMapper.java | 26 +- .../com/emr/dao/Emr_Fault_DetailMapper.java | 21 +- src/main/java/com/emr/dao/V_CountMapper.java | 7 + .../java/com/emr/entity/Archive_Detail.java | 57 +- .../com/emr/entity/Archive_Detail_Vo.java | 118 +- .../java/com/emr/entity/Archive_Master.java | 156 + .../com/emr/entity/Archive_Master_Vo.java | 291 ++ .../java/com/emr/entity/Emr_Fault_Detail.java | 70 + .../java/com/emr/entity/Emr_Fault_Type.java | 12 + .../java/com/emr/entity/Emr_Fault_Vo.java | 119 + .../emr/service/Archive_DetailService.java | 19 + .../emr/service/Archive_MasterService.java | 111 +- .../emr/service/Emr_Fault_DetailService.java | 56 +- .../java/com/emr/service/V_CountService.java | 17 + .../ipml/Archive_DetailServiceImpl.java | 20 + .../ipml/Archive_MasterServiceImpl.java | 275 +- .../ipml/Emr_Fault_DetailServiceImpl.java | 144 +- .../com/emr/service/ipml/LogServiceImpl.java | 1 - .../emr/service/ipml/V_CountServiceImpl.java | 11 + src/main/java/com/emr/shiro/MyRealm.java | 7 +- .../java/com/emr/util/ExportExcelUtil.java | 3 +- .../java/com/emr/util/HttpClientUtils.java | 2 +- src/main/java/com/emr/util/PDFUtils.java | 113 +- .../java/com/emr/util/PrintToPdfUtil.java | 543 ++- src/main/java/com/emr/util/ReadFile.java | 8 +- src/main/java/com/emr/util/UrlUtil.java | 2 +- src/main/java/com/emr/util/test.java | 130 +- .../resources/config/applicationContext.xml | 6 +- .../resources/config/gennerator.properties | 7 +- src/main/resources/config/jdbc.properties | 48 +- src/main/resources/config/log4j.properties | 1 + src/main/resources/config/mybatis-config.xml | 1 + src/main/resources/config/spring-shiro.xml | 1 + src/main/resources/generatorConfig.xml | 8 +- .../resources/mapper/Archive_DetailMapper.xml | 127 +- .../resources/mapper/Archive_MasterMapper.xml | 708 +++- .../resources/mapper/Emr_DictionaryMapper.xml | 9 +- .../mapper/Emr_Fault_DetailMapper.xml | 397 +- .../resources/mapper/Emr_Fault_TypeMapper.xml | 19 +- src/main/resources/mapper/Emr_LogMapper.xml | 31 +- src/main/resources/mapper/V_CountMapper.xml | 77 +- src/main/test/java/com/emr/MapperTest.java | 4 +- src/main/webapp/WEB-INF/jspf/comm.jspf | 9 +- .../views/beHospitaledDir/beHospList.jsp | 3433 ++++++++++++++--- .../views/dictionaryDir/dictionary.jsp | 149 +- .../WEB-INF/views/faultDir/faultList.jsp | 662 ++-- .../views/faultTypeDir/faultTypeList.jsp | 118 +- .../views/inHospitalDir/inHositalList.jsp | 1726 ++++++--- src/main/webapp/WEB-INF/views/index.jsp | 275 +- .../views/lastVerifyDir/lastVerifyList.jsp | 2160 ++++++++--- .../medicalRecallDateDir/recallDateList.jsp | 450 +-- .../medicalRecallDir/medicalRecallList.jsp | 928 ++--- .../unfileMedicalDir/unfileMedicalList.jsp | 2391 +++++++++--- .../WEB-INF/views/vCountDir/vCountList.jsp | 1061 ++++- src/main/webapp/WEB-INF/web.xml | 1 - .../dist/bootstrap-table.js | 4 +- .../bootstrap-table-fixed-columns.css | 2 +- .../bootstrap-table-fixed-columns.js | 2 +- .../docs/dist/bootstrap-table.js | 4 +- .../src/bootstrap-table.js | 4 +- src/main/webapp/static/css/comm.css | 1 + .../HC3SL2HENH348M8X619PMCA7GC5R3125.pdf | Bin 204961 -> 204961 bytes .../HC3SL2HENH348M8X619PMCA7GC5R3125.pdf | Bin 318148 -> 425057 bytes src/main/webapp/static/js/comm.js | 65 - src/main/webapp/static/js/menu.js | 4 +- src/main/webapp/static/pdfjs/web/viewer.html | 4 +- src/main/webapp/static/pdfjs/web/viewer.js | 6 +- 80 files changed, 15372 insertions(+), 4244 deletions(-) diff --git a/src/main/java/com/emr/controller/LogAopAction.java b/src/main/java/com/emr/controller/LogAopAction.java index 3dbeccc8..0fd76643 100644 --- a/src/main/java/com/emr/controller/LogAopAction.java +++ b/src/main/java/com/emr/controller/LogAopAction.java @@ -21,9 +21,7 @@ import java.lang.reflect.Method; import java.net.InetAddress; import java.net.UnknownHostException; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; +import java.util.*; /** * 系统日志,切面处理类 @@ -144,10 +142,8 @@ public class LogAopAction { newmap.put(name, newvalues); } - logBo.setLogTitle(request.getParameter("id")); - logBo.setSysFlag("EMR_Medical_Record"); - // 添加到数据库 - logService.insert(logBo); + + } catch (Throwable e) { //接受客户端的数据 Map map = request.getParameterMap(); @@ -169,11 +165,47 @@ public class LogAopAction { newmap.put(name, newvalues); } - logBo.setLogTitle(request.getParameter("id")); - logBo.setSysFlag("EMR_Medical_Record"); - //添加到数据库 + +// if(request.getParameter("archiveDetailId")!=null && request.getParameter("archiveDetailId")!="") { +// logBo.setLogTitle(request.getParameter("archiveDetailId")); +// // 添加到数据库 +// logService.insert(logBo); +// } +// if(request.getParameter("id")!=null &&request.getParameter("id")!=""){ +// if(logBo.getLogTitle().indexOf(",")!=-1){ +// String[] idArr = request.getParameter("id").split(","); +// for (int i = 0; i < idArr.length; i++) { +// logBo.setLogTitle(idArr[i]); +// // 添加到数据库 +// logService.insert(logBo); +// } +// }else{ +// logBo.setLogTitle(request.getParameter("id")); +// // 添加到数据库 +// logService.insert(logBo); +// } +// } + } + logBo.setSysFlag("EMR_Medical_Record"); + if(request.getParameter("archiveDetailId")!=null && request.getParameter("archiveDetailId")!="") { + logBo.setLogTitle(request.getParameter("archiveDetailId")); + // 添加到数据库 logService.insert(logBo); } + if(request.getParameter("id")!=null &&request.getParameter("id")!=""){ + if( request.getParameter("id").indexOf(",")!=-1){ + String[] idArr = request.getParameter("id").split(","); + for (int i = 0; i < idArr.length; i++) { + logBo.setLogTitle(idArr[i]); + // 添加到数据库 + logService.insert(logBo); + } + }else{ + logBo.setLogTitle(request.getParameter("id")); + // 添加到数据库 + logService.insert(logBo); + } + } } return object; } diff --git a/src/main/java/com/emr/controller/LoginController.java b/src/main/java/com/emr/controller/LoginController.java index cf6a523a..53a1c16b 100644 --- a/src/main/java/com/emr/controller/LoginController.java +++ b/src/main/java/com/emr/controller/LoginController.java @@ -18,7 +18,9 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import java.io.IOException; /** * @author HJL @@ -54,21 +56,36 @@ public class LoginController { public String login(Model model, HttpServletRequest request) { String token = request.getParameter("token"); String userName = request.getParameter("userName"); - UsernamePasswordToken userToken = new UsernamePasswordToken(userName, "123456"); + String name = request.getParameter("name"); + UsernamePasswordToken userToken = new UsernamePasswordToken(userName, "456789"); Subject subject = SecurityUtils.getSubject(); subject.login(userToken); model.addAttribute("POWER_URLHEAD", POWER_JSP); request.getSession().setAttribute("token", token); - request.getSession().setAttribute("userName", userName); + // request.getSession().setAttribute("userName", userName); + // request.getSession().setAttribute("userName", "123"); return "index"; } @RequestMapping(value = "/index") - public String Login(HttpServletRequest request, Model model) { + public String Login(HttpServletResponse response, HttpServletRequest request, Model model) throws IOException { return "index"; } + + @RequestMapping(value = "/toError") + public String error(Model model) { + // 从session获取用户名 + // Subject currentUser = SecurityUtils.getSubject(); + // Session session = currentUser.getSession(); + // session.removeAttribute("username"); + // session.removeAttribute("menuList"); + // session.removeAttribute("userSession"); + //session.invalidate(); + + return "redirect:/error.jsp"; + } } diff --git a/src/main/java/com/emr/controller/MedicalRecallController.java b/src/main/java/com/emr/controller/MedicalRecallController.java index 0dddac51..3d1d0279 100644 --- a/src/main/java/com/emr/controller/MedicalRecallController.java +++ b/src/main/java/com/emr/controller/MedicalRecallController.java @@ -8,10 +8,7 @@ package com.emr.controller; import com.emr.annotation.OptionalLog; import com.emr.entity.*; -import com.emr.service.Archive_MasterService; -import com.emr.service.Emr_DictionaryService; -import com.emr.service.Emr_Fault_DetailService; -import com.emr.service.LogService; +import com.emr.service.*; import com.emr.util.ExportExcelUtil; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; @@ -20,12 +17,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -43,6 +42,9 @@ public class MedicalRecallController { @Autowired private Archive_MasterService archiveMasterService; + @Autowired(required = false) + private Archive_Master_FollowingService archive_master_followingService; + @Value("${recallReason}") private String recallReason; @@ -97,29 +99,57 @@ public class MedicalRecallController { exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response); } + @Transactional @OptionalLog(methods = "病案召回") @ResponseBody @RequestMapping(value = "/updateState") - public int updateState(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) { + public int updateState(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) throws UnsupportedEncodingException { + response.setCharacterEncoding("utf-8"); + request.setCharacterEncoding("utf-8"); Subject currentUser = SecurityUtils.getSubject(); Session session = currentUser.getSession(); String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + //2021-01-30 + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + String handleName = user.getUserPosition();//姓名 + //2021-01-30 + emrFaultDetail.setUpdater(username); - SimpleDateFormat from1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - emrFaultDetail.setUpdateTime(from1.format(new Date())); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nowTime = format1.format(new Date()); + + emrFaultDetail.setUpdateTime(nowTime); if(emrFaultDetail.getRecallReason()==null ||emrFaultDetail.getRecallReason()==""){ emrFaultDetail.setRecallReason(recallReason); } //emrFaultDetail.setRecallReason("医院需要这份病案"); Archive_Master archiveMaster=new Archive_Master(); archiveMaster.setId(emrFaultDetail.getArchiveDetailId()); + archiveMaster.setCmtNurse(1); + archiveMaster.setCmtDoctor(1); archiveMaster.setArchivestate("初审"); int bol=archiveMasterService.updateByClo(archiveMaster); - emrFaultDetail.setArchiveDetailId(null); - if(bol==1){ - bol = emrFaultDetailService.updateCloByPrimaryKey(emrFaultDetail); - }else{ - bol=0; + if (bol == 1) { + //删除该病案号和state不为空的记录 + bol = emrFaultDetailService.delByArchiveId(emrFaultDetail); + //重新插入一条记录 + //emrFaultDetail.setArchiveDetailId(null);+ + if (bol == 1|| bol==0) { + emrFaultDetail.setCreater(username); + emrFaultDetail.setCreateTime(nowTime); + emrFaultDetail.setFirstTrial(null); + bol = emrFaultDetailService.insertSel(emrFaultDetail); + } + + Archive_Master_Following archive_master_following = new Archive_Master_Following(); + archive_master_following.setMasterId(emrFaultDetail.getArchiveDetailId()); + //following表中添加病案室审核操作记录 + archive_master_following.setFollowingType("10"); + archive_master_following.setFollowingContent("病案召回"); + archive_master_following.setHandleTime(nowTime); + archive_master_following.setHandleId(username); + archive_master_following.setHandleName(handleName); + archive_master_followingService.insertSelective(archive_master_following); } return bol; } diff --git a/src/main/java/com/emr/controller/UploadFilesController.java b/src/main/java/com/emr/controller/UploadFilesController.java index 2d66c277..08dbb88b 100644 --- a/src/main/java/com/emr/controller/UploadFilesController.java +++ b/src/main/java/com/emr/controller/UploadFilesController.java @@ -109,7 +109,7 @@ public class UploadFilesController { @ResponseBody @RequestMapping("upload") public String upload(HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException { - System.out.println("执行upload"); + //System.out.println("执行upload"); request.setCharacterEncoding("UTF-8"); logger.info("执行图片上传"); String userId = request.getParameter("userId"); diff --git a/src/main/java/com/emr/controller/UrlInterceptor.java b/src/main/java/com/emr/controller/UrlInterceptor.java index d89445c3..23c35018 100644 --- a/src/main/java/com/emr/controller/UrlInterceptor.java +++ b/src/main/java/com/emr/controller/UrlInterceptor.java @@ -19,6 +19,9 @@ import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; +import java.io.OutputStreamWriter; public class UrlInterceptor implements HandlerInterceptor { @Value("${POWER_URLHEAD}") @@ -64,6 +67,7 @@ public class UrlInterceptor implements HandlerInterceptor { // } // } // return true; + String url = request.getServletPath(); String token = (String) request.getSession().getAttribute("token"); if (!"/login".equals(url) && StringUtils.isNoneBlank(token)) { @@ -76,14 +80,27 @@ public class UrlInterceptor implements HandlerInterceptor { //设置进session request.getSession().setAttribute("CURRENT_USER", powerUser); if (null == powerUser.getUserId()) { - response.sendRedirect(POWER_URLHEAD + "/login"); + response.sendRedirect( "/emr_medical_record/error.jsp"); + + //request.setAttribute("param", "重新登录"); return false; } } catch (Exception e) { + response.sendRedirect("/emr_medical_record/error.jsp"); e.printStackTrace(); - response.sendRedirect(POWER_URLHEAD + "/login"); + // response.sendRedirect(POWER_URLHEAD + "/login"); + //request.setAttribute("param", "重新登录"); return false; } + }else{ + +// response.sendRedirect("/emr_medical_record/error.jsp"); +// String url2 = request.getRequestURL().toString(); +// System.out.println("当前访问地址:" + url2); +// toAlert(response); +// return false; + + } // } else { // response.sendRedirect(POWER_URLHEAD + "/login"); @@ -93,6 +110,31 @@ public class UrlInterceptor implements HandlerInterceptor { } + //前台弹出alert框 + public void toAlert(HttpServletResponse response) throws IOException { + //response.sendRedirect("/emr_medical_record/error.jsp"); + try { + response.setContentType("text/html;charset=UTF-8"); + response.setCharacterEncoding("UTF-8"); + + OutputStreamWriter out = new OutputStreamWriter(response.getOutputStream()); + + String msg = "由于您长时间没有操作,session已过期,请重新登录!"; + msg = new String(msg.getBytes("UTF-8")); + + out.write(""); + out.write(""); + out.flush(); + out.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + } + } diff --git a/src/main/java/com/emr/controller/VCountController.java b/src/main/java/com/emr/controller/VCountController.java index e0144e1d..3b98c897 100644 --- a/src/main/java/com/emr/controller/VCountController.java +++ b/src/main/java/com/emr/controller/VCountController.java @@ -6,9 +6,12 @@ */ package com.emr.controller; +import com.emr.annotation.OptionalLog; import com.emr.entity.*; import com.emr.service.*; import com.emr.util.ExportExcelUtil; +import org.apache.axis.client.Call; +import org.apache.axis.client.Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -17,6 +20,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.xml.namespace.QName; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; @@ -46,6 +50,13 @@ public class VCountController { return result; } + @ResponseBody + @RequestMapping(value = "/vCountNumList") + public List medicalCountDayList(HttpServletResponse response, V_Count vCount) throws Exception { + //统计列表 + return v_countService.selectByCol(vCount); + } + @ResponseBody @RequestMapping(value = "/exportExcel") @@ -54,47 +65,47 @@ public class VCountController { String fieldCns = "deptCode,deptName,outNum,fileNum,unfileNum,deathNum,fileRate,day2Rate,day3Rate,day7Rate"; //构造excel的数据 List list = v_countService.selectByCol(vCount); - for (int i = 0; i < list.size(); i++) { - if(list.get(i).getInNum()==null){ - list.get(i).setInNum(0); - } - if (list.get(i).getOutNum() == null) { - list.get(i).setOutNum(0); - } - if (list.get(i).getFileNum() == null) { - list.get(i).setFileNum(0); - } - if (list.get(i).getUnfileNum() == null) { - list.get(i).setUnfileNum(0); - } - if (list.get(i).getDeathNum() == null) { - list.get(i).setDeathNum(0); - } - if (list.get(i).getFileRate() == null) { - list.get(i).setFileRate("0.0%"); - }else{ - Double val= Double.valueOf(list.get(i).getFileRate())/100; - list.get(i).setFileRate(val+"%"); - } - if (list.get(i).getDay2Rate() == null) { - list.get(i).setDay2Rate("0.0%"); - } else { - Double val = Double.valueOf(list.get(i).getDay2Rate()) / 100; - list.get(i).setDay2Rate(val + "%"); - } - if (list.get(i).getDay3Rate() == null) { - list.get(i).setDay3Rate("0.0%"); - } else { - Double val = Double.valueOf(list.get(i).getDay3Rate()) / 100; - list.get(i).setDay3Rate(val + "%"); - } - if (list.get(i).getDay7Rate() == null) { - list.get(i).setDay7Rate("0.0%"); - } else { - Double val = Double.valueOf(list.get(i).getDay7Rate()) / 100; - list.get(i).setDay7Rate(val + "%"); - } - } +// for (int i = 0; i < list.size(); i++) { +// if(list.get(i).getInNum()==null){ +// list.get(i).setInNum(0); +// } +// if (list.get(i).getOutNum() == null) { +// list.get(i).setOutNum(0); +// } +// if (list.get(i).getFileNum() == null) { +// list.get(i).setFileNum(0); +// } +// if (list.get(i).getUnfileNum() == null) { +// list.get(i).setUnfileNum(0); +// } +// if (list.get(i).getDeathNum() == null) { +// list.get(i).setDeathNum(0); +// } +// if (list.get(i).getFileRate() == null) { +// list.get(i).setFileRate("0.0%"); +// }else{ +// Double val= Double.valueOf(list.get(i).getFileRate())/100; +// list.get(i).setFileRate(val+"%"); +// } +// if (list.get(i).getDay2Rate() == null) { +// list.get(i).setDay2Rate("0.0%"); +// } else { +// Double val = Double.valueOf(list.get(i).getDay2Rate()) / 100; +// list.get(i).setDay2Rate(val + "%"); +// } +// if (list.get(i).getDay3Rate() == null) { +// list.get(i).setDay3Rate("0.0%"); +// } else { +// Double val = Double.valueOf(list.get(i).getDay3Rate()) / 100; +// list.get(i).setDay3Rate(val + "%"); +// } +// if (list.get(i).getDay7Rate() == null) { +// list.get(i).setDay7Rate("0.0%"); +// } else { +// Double val = Double.valueOf(list.get(i).getDay7Rate()) / 100; +// list.get(i).setDay7Rate(val + "%"); +// } +// } //文件名 String fileName = "统计数据" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; @@ -112,7 +123,7 @@ public class VCountController { String tableThNames = "名字,入院科室,入院日期,出院科室,出院日期,主管医生"; String fieldCns = "name,deptAdmissionTo,admissionDateTime,deptName,dischargeDateTime,doctorInCharge"; //构造excel的数据 - List list = archiveMasterService.selectByUnfile(archiveMasterVo); + List list = archiveMasterService.selectByUnfile2(archiveMasterVo); Emr_Dictionary dic = new Emr_Dictionary(); dic.setEffective(1); dic.setTypecode("dept_code"); @@ -146,6 +157,88 @@ public class VCountController { //导出excel的操作 exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response); } + + @ResponseBody + @RequestMapping(value = "/exportExcel3") + public void exportExcel3(HttpServletResponse response, Archive_Master_Vo archiveMasterVo) throws Exception { + String tableThNames = "名字,入院科室,入院日期,出院科室,出院日期,主管医生,推迟天数"; + String fieldCns = "name,deptAdmissionTo,admissionDateTime,deptName,dischargeDateTime,doctorInCharge,cmtNurse"; + //构造excel的数据 + List list = archiveMasterService.sel7DayByCol(archiveMasterVo); + Emr_Dictionary dic = new Emr_Dictionary(); + dic.setEffective(1); + dic.setTypecode("dept_code"); + //科室列表 + List dicList = emrDictionaryService.dicByTypeCode(dic); + + for (int i = 0; i < list.size(); i++) { + //替换科室 + for (int k = 0; k < dicList.size(); k++) { + String deptName = list.get(i).getDeptName(); + //入院科室dept_admission_to + String dept2 = list.get(i).getDeptAdmissionTo(); + + if ((deptName != null && deptName.equals(dicList.get(k).getCode())) || (dept2 != null && dept2.equals(dicList.get(k).getCode()))) { + //出院科室 + if(deptName != null) { + deptName = deptName.replace(deptName, dicList.get(k).getName()); + list.get(i).setDeptName(deptName); + } + dept2 = dept2.replace(dept2, dicList.get(k).getName()); + list.get(i).setDeptAdmissionTo(dept2); + } + } + } + + //文件名 + String fileName = "超过7天的初审和已归档列表" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; + //ExportExcelUtil + ExportExcelUtil exportExcelUtil = new ExportExcelUtil(); + response.setContentType("application/ms-excel;charset=gbk"); + //导出excel的操作 + exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response); + } + + //获取完整信息 + @ResponseBody + @RequestMapping(value = "/HomepageDic") + public String HomepageDic(HttpServletRequest request, HttpServletResponse response) { + String result=""; + try { + String endpoint = "http://120.27.212.36:9999/filing/services/HomepageDictionary?wsdl"; + + //String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl"; + + //直接引用远程的wsdl文件 + + //以下都是套路 + Service service = new Service(); + Call call = (Call) service.createCall(); + call.setTargetEndpointAddress(endpoint); + + call.setOperationName(new QName("http://interfaces.ann.com/", "CheckData")); + + + //call.setOperationName("CheckData");//WSDL里面描述的接口名称 + call.addParameter("masterId", org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//接口的参数 + + call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型 + + String temp = "02e4ba46662327995711"; + + result = (String) call.invoke(new Object[]{temp}); + + //给方法传递参数,并且调用方法 + + //System.out.println("result is " + result); + + } catch (Exception e) { + + //System.err.println(e.toString()); + + } + return result; + } } diff --git a/src/main/java/com/emr/controller/beHospitaledController.java b/src/main/java/com/emr/controller/beHospitaledController.java index 88a3cccc..7c30beb0 100644 --- a/src/main/java/com/emr/controller/beHospitaledController.java +++ b/src/main/java/com/emr/controller/beHospitaledController.java @@ -9,17 +9,27 @@ package com.emr.controller; import com.emr.entity.*; import com.emr.service.*; import com.emr.util.ExportExcelUtil; +import org.apache.axis.client.Call; +import org.apache.axis.client.Service; +import org.apache.cxf.endpoint.Client; +import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.xml.namespace.QName; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -39,14 +49,29 @@ public class beHospitaledController { @Autowired private Emr_Fault_DetailService emrFaultDetailService; + @Autowired + private Emr_Staff_RemarkService emrStaffRemarkService; + @Autowired private Emr_PictureService emrPictureService; + @Autowired(required = false) + private Archive_Master_FollowingService archive_master_followingService; + + @Value("${HomepageDictionary}") + private String HomepageDictionary; + @Value("${HomepageMethod}") + private String HomepageMethod; + + @RequestMapping(value = "/beHosps") public String inHospitals(Model model) { + //return "beHospitaledDir/beHospListNow"; return "beHospitaledDir/beHospList"; } + + @ResponseBody @RequestMapping(value = "/beHospList") public OffsetLimitPage beHospList(HttpServletRequest request, HttpServletResponse response, Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { @@ -58,11 +83,12 @@ public class beHospitaledController { @ResponseBody @RequestMapping(value = "/exportExcel") public void exportExcel(HttpServletResponse response, Archive_Master_Vo archiveMasterVo) throws Exception { - String tableThNames = "病历清单id,住院号,住院次数,名字,性别,身份证,出院科室,出院日期,主管医生,状态"; - String fieldCns = "id,inpNo,visitId,name,sex,idNo,deptName,dischargeDateTime,doctorInCharge,archivestate"; - //构造excel的数据 + String tableThNames = "病历清单id,住院号,住院次数,名字,性别,身份证,出院科室,出院日期,主管医生,状态,医生是否提交,医生,医生提交日期,护士是否提交,护士,护士提交日期,电子病历医生提交,电子病历护士提交,是否死亡"; + String fieldCns = "id,inpNo,visitId,name,sex,idNo,deptName,dischargeDateTime,doctorInCharge,archivestate,cmtDoctor,doctorName,cmtDoctorDate,cmtNurse,nurseName,cmtDurseDate,emrDoctorCmt,emrNureCmt,deathFlag"; + //构造excel的数据beHospList List list = archiveMasterService.selectByColumn(archiveMasterVo); + //文件名 String fileName = "出院浏览" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; //ExportExcelUtil @@ -72,34 +98,371 @@ public class beHospitaledController { exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response); } + @ResponseBody + @RequestMapping(value = "/wzByArchivId") + public String wzByArchivId(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) { + String result = ""; + try { + String endpoint = HomepageDictionary; + //String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl"; + String method = HomepageMethod; + JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); + Client client = factory.createClient(endpoint); + String temp = emrFaultDetail.getArchiveDetailId(); + Object[] res = null; + res = client.invoke(method, temp); + result = (String) res[0]; + //给方法传递参数,并且调用方法 + //System.out.println("result is " + result); + } catch (Exception e) { + System.err.println(e.toString()); + } + + return result+""; + } + @ResponseBody @RequestMapping(value = "/updateStateByArchivId") - public int updateStateByArchivId(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) { + public String updateStateByArchivId(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) { + // 从session获取用户名 + Subject currentUser = SecurityUtils.getSubject(); + Session session = currentUser.getSession(); + String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nowTime = format1.format(new Date()); + String result = ""; + try { + String endpoint = HomepageDictionary; + //String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl"; + String method = HomepageMethod; + JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); + Client client = factory.createClient(endpoint); + String temp = emrFaultDetail.getArchiveDetailId(); + Object[] res = null; + res = client.invoke(method, temp); + result = (String) res[0]; - //修改病案归档状态 - Archive_Master archiveMaster=new Archive_Master(); - archiveMaster.setId(emrFaultDetail.getArchiveDetailId()); - archiveMaster.setArchivestate(emrFaultDetail.getState()); - int bol= archiveMasterService.updateByClo(archiveMaster); - //添加初审内容 - if(bol==1){ - // 从session获取用户名 - Subject currentUser = SecurityUtils.getSubject(); - Session session = currentUser.getSession(); - String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + //给方法传递参数,并且调用方法 + //System.out.println("result is " + result); - SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String nowTime = format1.format(new Date()); + } catch (Exception e) { - //参数输入 + System.err.println(e.toString()); + + } + if(result.equals("完整")) { + //修改病案归档状态 + Archive_Master archiveMaster = new Archive_Master(); + archiveMaster.setId(emrFaultDetail.getArchiveDetailId()); + archiveMaster.setArchivestate(emrFaultDetail.getState()); + archiveMaster.setLockinfo(result); + archiveMaster.setCmtDoctor(1); + archiveMaster.setCmtNurse(1); + int bol = archiveMasterService.updateByClo(archiveMaster); + + //添加初审内容 + if (bol == 1) { + //参数输入 + archiveMaster.setFirstInstance(username); + emrFaultDetail.setCreater(username); + emrFaultDetail.setCreateTime(nowTime); + emrFaultDetail.setState("未召回"); + bol = emrFaultDetailService.insertSel(emrFaultDetail); + } + }else{ + //修改病案归档完整内容Lockinfo + Archive_Master archiveMaster = new Archive_Master(); emrFaultDetail.setCreater(username); emrFaultDetail.setCreateTime(nowTime); + archiveMaster.setFirstInstance(username); + //archiveMaster.setArchivestate(emrFaultDetail.getState()); + archiveMaster.setId(emrFaultDetail.getArchiveDetailId()); + archiveMaster.setLockinfo("强制提交,"+result); + archiveMaster.setCmtDoctor(1); + archiveMaster.setCmtNurse(1); + archiveMasterService.updateByClo(archiveMaster); + } + + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + String handleName = user.getUserPosition();//姓名 + + Archive_Master_Following archive_master_following = new Archive_Master_Following(); + archive_master_following.setMasterId(emrFaultDetail.getArchiveDetailId()); + //following表中添加科主任审核操作记录 + archive_master_following.setFollowingType("5"); + archive_master_following.setFollowingContent("科主任审核"); + archive_master_following.setHandleTime(nowTime); + archive_master_following.setHandleId(username); + archive_master_following.setHandleName(handleName); + archive_master_followingService.insertSelective(archive_master_following); + + return result; + } + + @ResponseBody + @RequestMapping(value = "/forceWZ") + public String forceWZ(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) { + // 从session获取用户名 + Subject currentUser = SecurityUtils.getSubject(); + Session session = currentUser.getSession(); + String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nowTime = format1.format(new Date()); + //修改病案归档状态 + Archive_Master archiveMaster = new Archive_Master(); + archiveMaster.setId(emrFaultDetail.getArchiveDetailId()); + archiveMaster.setArchivestate("初审"); + archiveMaster.setCmtDoctor(1); + archiveMaster.setCmtNurse(1); + archiveMaster.setFirstInstance(username); + archiveMaster.setLockinfo(emrFaultDetail.getContent()); + int bol = archiveMasterService.updateByClo(archiveMaster); + + emrFaultDetail.setCreater(username); + emrFaultDetail.setCreateTime(nowTime); + emrFaultDetail.setArchiveState("初审"); + bol = emrFaultDetailService.insertSel(emrFaultDetail); + //添加初审内容 + if (bol == 1) { + //参数输入 emrFaultDetail.setState("未召回"); - bol= emrFaultDetailService.insertSel(emrFaultDetail); + emrFaultDetail.setArchiveState(null); + bol = emrFaultDetailService.insertSel(emrFaultDetail); + } + + return bol+""; + } + + @ResponseBody + @RequestMapping(value = "/getMaster") + public Archive_Master selectById(HttpServletRequest request, HttpServletResponse response, Archive_Master archiveMaster){ + Archive_Master obj =new Archive_Master(); + //判断id 不为空 + if (!archiveMaster.getId().equals("") && !archiveMaster.equals(null)) { + obj = archiveMasterService.selectById(archiveMaster.getId()); } + return obj; + } + + @Transactional + @ResponseBody + @RequestMapping(value = "/cmtDoctorOrNurs") + public String cmtDoctorOrNurs(HttpServletRequest request, HttpServletResponse response, Archive_Master_Vo archiveMasterVo) { + // 从session获取用户名 + Subject currentUser = SecurityUtils.getSubject(); + Session session = currentUser.getSession(); + String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + String handleName = user.getUserPosition(); + Archive_Master archiveMaster=new Archive_Master(); + archiveMaster.setId(archiveMasterVo.getId()); + archiveMaster.setCmtDoctor(archiveMasterVo.getCmtDoctor()); + archiveMaster.setCmtNurse(archiveMasterVo.getCmtNurse()); + + Emr_Staff_Remark emrStaffRemark=new Emr_Staff_Remark(); + emrStaffRemark.setEffective(1); + emrStaffRemark.setMasterId(archiveMasterVo.getId()); + emrStaffRemark.setContent(archiveMasterVo.getContent()); + + Archive_Master_Following archive_master_following = new Archive_Master_Following(); + archive_master_following.setMasterId(archiveMasterVo.getId()); + + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nowTime = format1.format(new Date()); + String result=""; + int bol =0; + //判断id 不为空 + if(!archiveMaster.getId().equals("")&&!archiveMaster.equals(null)) { + Archive_Master obj=archiveMasterService.selectById(archiveMaster.getId()); + if(obj!=null) { + //修改病案归档状态 + if (archiveMaster.getCmtDoctor()==1) { + //医生提交(医生和护士同时提交后,归档状态变更为:提交) + if(obj.getCmtNurse()==1){ + archiveMaster.setArchivestate("提交"); + archiveMaster.setCmtNurse(1); + } + archiveMaster.setCmtDoctor(1); + archiveMaster.setDoctorName(username); + archiveMaster.setCmtDoctorDate(nowTime); - return bol; + //添加医生备注记录 + emrStaffRemark.setTypeFlag(0); + List list = emrStaffRemarkService.selectByCol(emrStaffRemark); + if(list!=null && list.size()>0){ + //修改 + list.get(0).setUpdateTime(nowTime); + list.get(0).setUpdater(username); + list.get(0).setContent(archiveMasterVo.getContent()); + list.get(0).setUpdateTime(nowTime); + bol=emrStaffRemarkService.updateByClo(list.get(0)); + }else{ + //插入 + emrStaffRemark.setCreater(username); + emrStaffRemark.setCreateTime(nowTime); + bol=emrStaffRemarkService.insertClo(emrStaffRemark); + } + + //following表中添加归档医生提交操作记录 + archive_master_following.setFollowingType("1");//followingType=1 归档医生提交 + archive_master_following.setFollowingContent("主管医生提交"); + archive_master_following.setHandleTime(nowTime); + archive_master_following.setHandleId(username); + archive_master_following.setHandleName(handleName); + bol = archive_master_followingService.insertSelective(archive_master_following); + } else if (archiveMaster.getCmtNurse()==1) { + //护士提交(医生和护士同时提交后,归档状态变更为:提交) + if (obj.getCmtDoctor()==1) { + archiveMaster.setArchivestate("提交"); + archiveMaster.setCmtDoctor(1); + } + archiveMaster.setCmtNurse(1); + archiveMaster.setNurseName(username); + archiveMaster.setCmtNurseDate(nowTime); + + //添加护士备注记录 + emrStaffRemark.setTypeFlag(1); + List list = emrStaffRemarkService.selectByCol(emrStaffRemark); + if(list!=null && list.size()>0){ + //修改 + list.get(0).setUpdater(username); + list.get(0).setUpdateTime(nowTime); + list.get(0).setContent(archiveMasterVo.getContent()); + bol=emrStaffRemarkService.updateByClo(list.get(0)); + }else{ + //插入 + emrStaffRemark.setCreater(username); + emrStaffRemark.setCreateTime(nowTime); + bol=emrStaffRemarkService.insertClo(emrStaffRemark); + } + + //following表中添加归档护士提交操作记录 + archive_master_following.setFollowingType("3"); + archive_master_following.setFollowingContent("护士长提交"); + archive_master_following.setHandleTime(nowTime); + archive_master_following.setHandleId(username); + archive_master_following.setHandleName(handleName); + bol = archive_master_followingService.insertSelective(archive_master_following); + } + if(bol==1) { + result = "成功"; + archiveMaster.setIsscaned(archiveMasterVo.getIsscaned()); + bol = archiveMasterService.updateByClo(archiveMaster); + }else{ + result = "备注失败"; + } + + + + }else{ + result = "病案不存在!"; + } + }else{ + result="病案不存在!"; + } + return result; + } + + + @RequestMapping("getImg2") + public void getImg2(HttpServletRequest request, HttpServletResponse response, String path) throws IOException { + FileInputStream fis = null; + OutputStream os = null; + try { + fis = new FileInputStream(path); + os = response.getOutputStream(); + int count = 0; + byte[] buffer = new byte[1024 * 8]; + while ((count = fis.read(buffer)) != -1) { + os.write(buffer, 0, count); + os.flush(); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + fis.close(); + os.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + @ResponseBody + @RequestMapping(value = "/getDoctorInCharge") + public List getDoctorInCharge(HttpServletResponse response, Archive_Master archiveMaster) throws Exception { + //根据目前账号所在科室获取主管医生列表 + return archiveMasterService.getDoctorInCharge(archiveMaster); + } + + @Transactional + @ResponseBody + @RequestMapping(value = "/withdrawDoctorOrNurs") + public String withdrawDoctorOrNurs(HttpServletRequest request, HttpServletResponse response,Archive_Master_Vo archiveMasterVo) { + Archive_Master archiveMaster=new Archive_Master(); + archiveMaster.setId(archiveMasterVo.getId()); + archiveMaster.setCmtDoctor(archiveMasterVo.getCmtDoctor()); + archiveMaster.setCmtNurse(archiveMasterVo.getCmtNurse()); + + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + String username = user.getUserName();//工号 + String handleName = user.getUserPosition();//姓名 + + Archive_Master_Following archive_master_following = new Archive_Master_Following(); + archive_master_following.setMasterId(archiveMasterVo.getId()); + + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nowTime = format1.format(new Date()); + + String result=""; + int bol =0; + //判断id 不为空 + if(!archiveMaster.getId().equals("")&&!archiveMaster.getId().equals(null)) { + Archive_Master obj = archiveMasterService.selectById(archiveMaster.getId()); + if (obj!=null){ + if (archiveMasterVo.getCmtDoctor()==0&&archiveMasterVo.getCmtNurse()==-1){ + //医生撤回操作 + archiveMaster.setCmtDoctorDate(""); + archiveMaster.setDoctorName(""); + + //following表中添加归档医生撤回操作记录 + archive_master_following.setFollowingType("2"); + archive_master_following.setFollowingContent("主管医生撤回提交"); + archive_master_following.setHandleTime(nowTime); + archive_master_following.setHandleId(username); + archive_master_following.setHandleName(handleName); + bol = archive_master_followingService.insertSelective(archive_master_following); + } + if (archiveMasterVo.getCmtNurse()==0&&archiveMasterVo.getCmtDoctor()==-1){ + //护士撤回操作 + archiveMaster.setCmtNurseDate(""); + archiveMaster.setNurseName(""); + + //following表中添加归档护士撤回操作记录 + archive_master_following.setFollowingType("4"); + archive_master_following.setFollowingContent("护士长撤回提交"); + archive_master_following.setHandleTime(nowTime); + archive_master_following.setHandleId(username); + archive_master_following.setHandleName(handleName); + bol = archive_master_followingService.insertSelective(archive_master_following); + } + archiveMaster.setIsscaned(archiveMasterVo.getIsscaned()); + bol=archiveMasterService.updateByClo(archiveMaster); + if (bol==1){ + result = "成功"; + }else{ + result = "撤回失败"; + } + }else{ + result = "病案不存在!"; + } + }else{ + result="病案不存在!"; + } + return result; } } diff --git a/src/main/java/com/emr/controller/faultController.java b/src/main/java/com/emr/controller/faultController.java index 4d24df65..13f133b6 100644 --- a/src/main/java/com/emr/controller/faultController.java +++ b/src/main/java/com/emr/controller/faultController.java @@ -11,14 +11,19 @@ import com.emr.service.Emr_DictionaryService; import com.emr.service.Emr_Fault_DetailService; import com.emr.service.Emr_Fault_TypeService; import com.emr.util.ExportExcelUtil; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.session.Session; +import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; @@ -37,14 +42,14 @@ public class faultController { private Emr_DictionaryService emrDictionaryService; @RequestMapping(value = "/faults") - public String faults(Model model){ + public String faults(Model model) { return "faultDir/faultList"; } @ResponseBody @RequestMapping(value = "/faultList") public OffsetLimitPage faultList(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) { - OffsetLimitPage result = emrFaultDetailService.selectByCol(emrFaultVo,offset, limit); + OffsetLimitPage result = emrFaultDetailService.selectByCol(emrFaultVo, offset, limit); return result; } @@ -62,11 +67,11 @@ public class faultController { //科室列表 List dicList = emrDictionaryService.dicByTypeCode(dic); //获取缺陷类别列表 - Emr_Fault_Type obj=new Emr_Fault_Type(); + Emr_Fault_Type obj = new Emr_Fault_Type(); obj.setEffective(1); //缺陷选项 - List typeLis= emrFaultTypeService.selectByCol(obj); - for(int i=0;i typeLis = emrFaultTypeService.selectByCol(obj); + for (int i = 0; i < list.size(); i++) { String assortId = list.get(i).getAssortId(); if (assortId != "" && assortId != null) { String[] assorArr = assortId.split(","); @@ -84,8 +89,9 @@ public class faultController { for (int k = 0; k < dicList.size(); k++) { String deptName = list.get(i).getDeptName(); //入院科室dept_admission_to - String dept2 = list.get(i).getDeptAdmissionTo();; - if ((deptName != null && deptName.equals(dicList.get(k).getCode()))|| (dept2 != null && dept2.equals(dicList.get(k).getCode()))) { + String dept2 = list.get(i).getDeptAdmissionTo(); + ; + if ((deptName != null && deptName.equals(dicList.get(k).getCode())) || (dept2 != null && dept2.equals(dicList.get(k).getCode()))) { //出院科室 deptName = deptName.replace(deptName, dicList.get(k).getName()); list.get(i).setDeptName(deptName); @@ -113,6 +119,263 @@ public class faultController { // Emr_Fault_Detail result = emrFaultDetailService.selectByArchiveDetailId(archiveDetailId); // return result; // } + + @ResponseBody + @RequestMapping(value = "/getFaultList") + public List getFaultList(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) { + List list = emrFaultDetailService.selectByColumn(emrFaultDetail); + return list; + } + + @ResponseBody + @RequestMapping(value = "/getFaultPage") + public OffsetLimitPage getFaultPage(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail, Integer offset, Integer limit) { + OffsetLimitPage result = emrFaultDetailService.selectByColumn(emrFaultDetail, offset, limit); + return result; + } + //bol = emrFaultDetailService.insertSel(emrFaultDetail); + + @Transactional + @ResponseBody + @RequestMapping(value = "/addFaultList") + public String addFaultList(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Vo emrFaultVo) { + + String result = ""; + + // 从session获取用户名 + Subject currentUser = SecurityUtils.getSubject(); + Session session = currentUser.getSession(); + String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nowTime = format1.format(new Date()); + if (emrFaultVo.getArchiveDetailId() != null) { + //判断是修改还是添加 + if (emrFaultVo.getId() != null) { + + //已存在删了,重新添加 + emrFaultDetailService.deleteById(emrFaultVo.getId()); + + } + //添加 + if (!(emrFaultVo.getBackFlag()).equals(null) && !emrFaultVo.getBackFlag().equals("")) { + //判断是医生还是护士 + String roleVal = emrFaultVo.getBackFlag(); + if (roleVal.indexOf(",") != -1) { + Emr_Fault_Detail emrFaultDetail = new Emr_Fault_Detail(); + emrFaultDetail.setCreater(username); + emrFaultDetail.setCreateTime(nowTime); + emrFaultDetail.setArchiveDetailId(emrFaultVo.getArchiveDetailId()); + emrFaultDetail.setContent(emrFaultVo.getContent()); + emrFaultDetail.setDealFlag("0"); + //医生和护士 + String[] arr = roleVal.split(","); + for (int j = 0; j < arr.length; j++) { + emrFaultDetail.setBackFlag(arr[j]); + //缺陷类别 + if (emrFaultVo.getAssortId() != null && emrFaultVo.getAssortId() != "") { + if ((emrFaultVo.getAssortId()).indexOf(",") != -1) { + int bol = 0; + int sum = 0; + String[] assortArr = (emrFaultVo.getAssortId()).split(","); + String[] priceArr = (emrFaultVo.getBackContent()).split(","); + //多个缺陷循环插入数据 + for (int i = 0; i < assortArr.length; i++) { + String assrotId = assortArr[i]; + Emr_Fault_Type emrFaultType = emrFaultTypeService.selectById(Integer.valueOf(assrotId)); + emrFaultDetail.setMinusPoint(emrFaultType.getPrice()); + emrFaultDetail.setAssortId(assrotId); + if (priceArr[i] != null && priceArr[i] != "") { + BigDecimal price = new BigDecimal(priceArr[i]); + emrFaultDetail.setPrice(price); + } + //医生或护士 + bol = emrFaultDetailService.insertSel(emrFaultDetail); + if (bol == 1) { + sum++; + } + } + //判断bol次数和插入次数的和 + if (sum == assortArr.length) { + result = "保存成功!"; + } else { + result = "保存失败!"; + } + + } else { + Emr_Fault_Type emrFaultType = emrFaultTypeService.selectById(Integer.valueOf(emrFaultVo.getAssortId())); + emrFaultDetail.setMinusPoint(emrFaultType.getPrice()); + emrFaultDetail.setAssortId(emrFaultVo.getAssortId()); + if (emrFaultVo.getBackContent() != null && emrFaultVo.getBackContent() != "") { + BigDecimal price = new BigDecimal(emrFaultVo.getBackContent()); + emrFaultDetail.setPrice(price); + } + //医生或护士 + int bol = emrFaultDetailService.insertSel(emrFaultDetail); + if (bol == 1) { + result = "保存成功!"; + } else { + result = "保存失败!"; + } + } + } else { + result = "无缺陷项!"; + } + } + + } else { + Emr_Fault_Detail emrFaultDetail = new Emr_Fault_Detail(); + //参数输入 + emrFaultDetail.setBackFlag(roleVal); + emrFaultDetail.setCreater(username); + emrFaultDetail.setCreateTime(nowTime); + emrFaultDetail.setArchiveDetailId(emrFaultVo.getArchiveDetailId()); + emrFaultDetail.setContent(emrFaultVo.getContent()); + emrFaultDetail.setDealFlag("0"); + //缺陷类别 + if (emrFaultVo.getAssortId() != null && emrFaultVo.getAssortId() != "") { + if ((emrFaultVo.getAssortId()).indexOf(",") != -1) { + int bol = 0; + int sum = 0; + String[] assortArr = (emrFaultVo.getAssortId()).split(","); + String[] priceArr = (emrFaultVo.getBackContent()).split(","); + //多个缺陷循环插入数据 + for (int i = 0; i < assortArr.length; i++) { + String assrotId = assortArr[i]; + Emr_Fault_Type emrFaultType = emrFaultTypeService.selectById(Integer.valueOf(assrotId)); + emrFaultDetail.setMinusPoint(emrFaultType.getPrice()); + emrFaultDetail.setAssortId(assrotId); + if (priceArr[i] != null && priceArr[i] != "") { + BigDecimal price = new BigDecimal(priceArr[i]); + emrFaultDetail.setPrice(price); + } + //医生或护士 + bol = emrFaultDetailService.insertSel(emrFaultDetail); + if (bol == 1) { + sum++; + } + } + //判断bol次数和插入次数的和 + if (sum == assortArr.length) { + result = "保存成功!"; + } else { + result = "保存失败!"; + } + + } else { + Emr_Fault_Type emrFaultType = emrFaultTypeService.selectById(Integer.valueOf(emrFaultVo.getAssortId())); + emrFaultDetail.setMinusPoint(emrFaultType.getPrice()); + emrFaultDetail.setAssortId(emrFaultVo.getAssortId()); + if (emrFaultVo.getBackContent() != null && emrFaultVo.getBackContent() != "") { + BigDecimal price = new BigDecimal(emrFaultVo.getBackContent()); + emrFaultDetail.setPrice(price); + } + //医生或护士 + int bol = emrFaultDetailService.insertSel(emrFaultDetail); + if (bol == 1) { + result = "保存成功!"; + } else { + result = "保存失败!"; + } + } + } else { + result = "无缺陷项!"; + } + + + } + } else { + result = "退回角色不为空!"; + } + + } else { + result = "病案不存在!"; + } + + + return result; + } + + + @ResponseBody + @RequestMapping(value = "/delFault") + public String delFault(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Vo emrFaultVo) { + String result = ""; + //判断是修改还是添加 + if (emrFaultVo.getId() != null) { + //已存在删了,重新添加 + int bol= emrFaultDetailService.deleteById(emrFaultVo.getId()); + if(bol==1){ + result="删除成功!"; + }else{ + result="删除失败!"; + } + } + return result; + } + + @Transactional + @ResponseBody + @RequestMapping(value = "/dealFault") + public String dealFault(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Vo emrFaultVo) { + String result = ""; + int bol =0; + // 从session获取用户名 + Subject currentUser = SecurityUtils.getSubject(); + Session session = currentUser.getSession(); + String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nowTime = format1.format(new Date()); + //判断id是否为空 + if (emrFaultVo.getId() != null) { + //已存在获取改条记录 + Emr_Fault_Detail entity=emrFaultDetailService.selectById(emrFaultVo.getId()); + if(entity!=null){ + //修改为已处理或未处理 + if (entity.getDealFlag().equals("0")) { + entity.setDealFlag("1"); + entity.setDealPerson(username); + entity.setDealTime(nowTime); + + } else if(entity.getDealFlag().equals("1")) { + entity.setDealFlag("0"); + entity.setDealPerson(""); + entity.setDealTime(""); + + } + //修改 + bol = emrFaultDetailService.updateCloByPrimaryKey(entity); + if (bol == 1) { + result = "操作成功!"; + } else { + result = "操作失败!"; + } + }else{ + result="不存在该缺陷记录!"; + } + + }else{ + result = "不存在该缺陷记录!"; + } + return result; + } + + + @ResponseBody + @RequestMapping(value = "/getTotal") + public Emr_Fault_Detail getTotal(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) { + + emrFaultDetail = emrFaultDetailService.selectByDept(emrFaultDetail); + return emrFaultDetail; + } + + @ResponseBody + @RequestMapping(value = "/getQualityControlList") + public OffsetLimitPage getQualityControlList(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) { + OffsetLimitPage result = emrFaultDetailService.getQualityControlList(emrFaultVo, offset, limit); + return result; + } } diff --git a/src/main/java/com/emr/controller/inHospitalController.java b/src/main/java/com/emr/controller/inHospitalController.java index fd85dc58..dca22edf 100644 --- a/src/main/java/com/emr/controller/inHospitalController.java +++ b/src/main/java/com/emr/controller/inHospitalController.java @@ -6,16 +6,17 @@ */ package com.emr.controller; +import com.emr.annotation.OptionalLog; import com.emr.entity.*; -import com.emr.service.Archive_DetailService; -import com.emr.service.Archive_MasterService; -import com.emr.service.Emr_DictionaryService; -import com.emr.service.Emr_PictureService; -import com.emr.util.ExportExcelUtil; -import com.emr.util.PDFUtils; -import com.emr.util.PrintToPdfUtil; +import com.emr.service.*; +import com.emr.util.*; +import com.github.pagehelper.util.StringUtil; +import com.itextpdf.text.pdf.PdfReader; +import com.lowagie.text.DocumentException; import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.apache.commons.io.FileUtils; +import org.apache.ibatis.annotations.Param; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; @@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -30,14 +32,12 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.File; -import java.io.IOException; +import java.io.*; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; @Controller @@ -57,9 +57,24 @@ public class inHospitalController { @Autowired private Emr_PictureService emrPictureService; + @Autowired + private Zd_AssortService zd_assortService; + + @Resource + private LogService logService; + @Value("${pictureUrl}") private String pictureUrl; + @Value("${pdfUrl}") + private String pdfUrl; + + @Value("${autoPdfUrl}") + private String autoPdfUrl; + + @Value("${pdfErrorUrl}") + private String pdfErrorUrl; + @RequestMapping(value = "/inHospitals") public String inHospitals(Model model) { return "inHospitalDir/inHositalList"; @@ -100,7 +115,7 @@ public class inHospitalController { @ResponseBody @RequestMapping(value = "/getAssort") - public List getDept(HttpServletResponse response, Archive_Detail_Vo archiveDetailVo) throws Exception { + public List getAssort(HttpServletResponse response, Archive_Detail_Vo archiveDetailVo) throws Exception { //分段列表 return archiveDetailService.selectByClo(archiveDetailVo); } @@ -113,26 +128,68 @@ public class inHospitalController { return result; } + @OptionalLog(methods = "调用单个作废") @ResponseBody @RequestMapping(value = "/updateState") - public int updateState(HttpServletResponse response, Archive_Detail archiveDetail) throws Exception { + public int updateState(HttpServletRequest request, HttpServletResponse response, Archive_Detail archiveDetail) throws Exception { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); archiveDetail.setFlag("1"); //修改状态分段信息 return archiveDetailService.updateCloById(archiveDetail); } + + @ResponseBody + @RequestMapping(value = "/delPdfInfo") + public int delPdfInfo(HttpServletRequest request, HttpServletResponse response, Archive_Detail archiveDetail) throws Exception { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + Archive_Detail detail = archiveDetailService.selectByid(archiveDetail.getId()); + if (detail != null) { + if (detail.getPdfPath() != null) { + //将之前文件删除 + File file2 = new File(detail.getPdfPath()); + if (file2.exists() && file2.isFile()) { + file2.delete(); + } + } + } + int bol=archiveDetailService.delById(archiveDetail.getId()); + //备份都删除 + if(bol==1){ + Archive_Detail archiveDetailV=new Archive_Detail(); + archiveDetailV.setMasterid(detail.getMasterid()); + archiveDetailV.setFlag("1"); + archiveDetailV.setAssortid(detail.getAssortid()); + archiveDetailV.setSource(detail.getSource()); + String oldPath=detail.getPdfPath(); + String newPath=oldPath.substring(0,oldPath.lastIndexOf("\\")+1); + String newName=oldPath.substring(oldPath.lastIndexOf("\\")+1,oldPath.length()); + archiveDetailV.setPdfPath(newPath+"%备份_"+newName); + archiveDetailService.delByClo(archiveDetailV); + } + + + //修改状态分段信息 + return bol; + } + + @OptionalLog(methods = "调用多个作废") @ResponseBody @RequestMapping(value = "/updateStateAll") - public int updateStateAll(HttpServletResponse response, Archive_Detail archiveDetail) throws Exception { - int bol=0; - String idStr=archiveDetail.getId(); - if(idStr.length()>0){ + public int updateStateAll(HttpServletRequest request, HttpServletResponse response, Archive_Detail archiveDetail) throws Exception { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + int bol = 0; + String idStr = archiveDetail.getId(); + if (idStr.length() > 0) { String[] idArr = idStr.split(","); - archiveDetail.setFlag("1"); - for(int i=0;i pdfList = new ArrayList(); + Archive_Detail archiveDetail = new Archive_Detail(); + archiveDetail.setFlag(flag); + archiveDetail.setMasterid(masterId.trim()); + archiveDetail.setTitle(assortID); + + List arList = archiveDetailService.selectByCol(archiveDetail); + + List errorPdfList = new ArrayList<>(); + int size = 0; + if (arList == null || arList.size()==0) { + return ""; + } + for (int m = 0; m < arList.size(); m++) { + MergePDFItem mergePDFItem = new MergePDFItem(); + String str = arList.get(m).getPdfPath(); + if (str != "" && str != null) { + if (str.indexOf("..\\static\\img\\pdfFiles\\") != -1) { + str = str.split("pdfFiles")[1]; + str = realPath + "pdfFiles" + str; + } + if (!PrintToPdfUtil.checkPdfFile(str)) { + arList.get(m).setPdfPath(str); + errorPdfList.add(arList.get(m)); + } else { + mergePDFItem.setPdfPath(str); + mergePDFItem.setdObj(arList.get(m)); + pdfList.add(mergePDFItem); + } + } + } + + String pdfFileName = String.valueOf(System.currentTimeMillis()); + String pdfPath = autoPdfUrl.trim() + "/" + pdfFileName + ".pdf"; + + if (pdfList.size() > 0) { + //对所有地址的pdf进行合成 + //if (errorPdfList.size() != size) { + PrintToPdfUtil.mergePdfFiles2(pdfList, pdfPath); + //} else { + // result = ""; + // } + if (errorPdfList.size() > 0) { + ExportTxtPaper.exportTxtPaper(pdfErrorUrl, "不存在或损坏PDF文件列表" + pdfFileName + ".txt", errorPdfList); + } + } + return pdfPath; + } + + /** * 根据病案号或类别或图片id获取图片列表,并生成PDF并返回pdf文件名 @@ -185,71 +296,135 @@ public class inHospitalController { */ @ResponseBody @RequestMapping(value = "/getPdfToPdf") - public String getPdfToPdf(HttpServletResponse response, HttpServletRequest request, String imgStr, String masterId) throws Exception { + public String getPdfToPdf(HttpServletResponse response, HttpServletRequest request, String imgStr, String masterId,String flag) throws Exception { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); String result = ""; // 项目在容器中实际发布运行的根路径 String realPath = request.getSession().getServletContext().getRealPath("/"); - realPath = realPath.split("target")[0] + pictureUrl+"\\static\\img\\"; + //realPath = realPath.split("target")[0] + realPath = pictureUrl + "\\static\\img\\"; //pdf名称 String pdfFileName = String.valueOf(System.currentTimeMillis()); //病案号文件夹 - if (masterId != "" && masterId != null) { - //判断文件夹是否存在 - File fileDic = new File(realPath + masterId + "\\"); - if (!fileDic.exists() && !fileDic.isDirectory()) { - fileDic.mkdirs(); - } + if (masterId == "" && masterId == null) { + result = ""; + return result; + } + //判断文件夹是否存在 + File fileDic = new File(realPath + masterId + "\\"); + if (!fileDic.exists() && !fileDic.isDirectory()) { + fileDic.mkdirs(); + } - //病案号/类别/id文件夹(图片路径下的子文件夹名称) - //生成pdf(图片路径,pdf生成路径,图片路径文件夹列表) - List imgList = new ArrayList(); - if (imgStr != "" && imgStr != null) { - String[] imgArr = imgStr.split(","); - if (imgArr.length > 0) { - for (int i = 0; i < imgArr.length; i++) { - imgList.add(imgArr[i]); - } + List zds = zd_assortService.selectByColm(new Zd_Assort()); //from db + + //from args + //病案号/类别/id文件夹(图片路径下的子文件夹名称) + //生成pdf(图片路径,pdf生成路径,图片路径文件夹列表) + List imgList = new ArrayList(); + if (imgStr != "" && imgStr != null) { + String[] imgArr = imgStr.split(","); + if (imgArr.length > 0) { + for (int i = 0; i < imgArr.length; i++) { + imgList.add(imgArr[i]); } } + } + + for (int i = zds.size()-1; i >=0 ; i--) { + String a = zds.get(i).getAssortId(); + if(imgList.indexOf(a)==-1) + { + zds.remove(i); + } + + } + + ArrayList fileList = new ArrayList<>(); + + for (int i = 0; i < zds.size(); i++) { + String asordID = zds.get(i).getAssortId(); + String pdfA = GeneratePDFFileByAssortID(masterId, asordID, realPath,flag); + if(pdfA=="" || pdfA.length()==0) + { + continue; + } + fileList.add(pdfA); + } + if(fileList.size()==0) + { + return ""; + } + + String pdfPath = autoPdfUrl.trim() + "/" + String.valueOf(System.currentTimeMillis()) + ".pdf"; + PDFHelper.Append(fileList, pdfPath); + //PrintToPdfUtil.mergePdfFiles(fileList, pdfPath); + return pdfPath; // if(imgList.size()==1){ // result= masterId.trim() + "/"+ imgList.get(0) +"/"+ imgList.get(0)+".pdf"; // }else{ - String pdfPath = realPath+"pdfFiles\\" + "typesPdf\\"+ pdfFileName + ".pdf"; - String imgPath= realPath + "pdfFiles\\"+masterId.trim()+"\\"; - //获取废除的pdf文件名列表archive_detail - List pdfList=new ArrayList(); - Archive_Detail archiveDetail = new Archive_Detail(); - archiveDetail.setFlag("0"); - archiveDetail.setMasterid(masterId.trim()); - archiveDetail.setTitle(imgStr); - List arList=archiveDetailService.selectByCol(archiveDetail); - if(arList!=null) { - for (int m = 0; m < arList.size(); m++) { - String str = arList.get(m).getPdfPath(); - if (str.indexOf("..\\static\\img\\pdfFiles\\") != -1) { - str = str.split("pdfFiles")[1]; - str = realPath + "pdfFiles" + str; - } - // str= str.substring(str.lastIndexOf("\\") + 1); - pdfList.add(str); - } - } - - //PrintToPdfUtil.pdtToPdf(imgPath,pdfPath, imgList,pdfList); - PDFUtils.getPdf(pdfPath, pdfList); - result = "typesPdf/"+pdfFileName + ".pdf"; +// String pdfPath = autoPdfUrl.trim() + "/" + pdfFileName + ".pdf"; +// String imgPath = realPath + "pdfFiles\\" + masterId.trim() + "\\"; +// //获取废除的pdf文件名列表archive_detail +// List pdfList = new ArrayList(); +// Archive_Detail archiveDetail = new Archive_Detail(); +// archiveDetail.setFlag("0"); +// archiveDetail.setMasterid(masterId.trim()); +// archiveDetail.setTitle(imgStr); +// +// List arList = archiveDetailService.selectByCol(archiveDetail); +// //损坏PDF文件列表 +// List errorPdfList = new ArrayList(); +// int size = 0; +// if (arList == null || arList.size()==0) { +// } +// else { +// for (int m = 0; m < arList.size(); m++) { +// String str = arList.get(m).getPdfPath(); +// if (str != "" && str != null) { +// if (str.indexOf("..\\static\\img\\pdfFiles\\") != -1) { +// str = str.split("pdfFiles")[1]; +// str = realPath + "pdfFiles" + str; +// } +// if (!PrintToPdfUtil.checkPdfFile(str)) { +// arList.get(m).setPdfPath(str); +// errorPdfList.add(arList.get(m)); +// } else { +// pdfList.add(str); +// } +// } +// // str= str.substring(str.lastIndexOf("\\") + 1); +// // } - } else { - result = "a000000.pdf"; - } - return result; +// } +// +// if (pdfList.size() > 0) { +// //对所有地址的pdf进行合成 +// //if (errorPdfList.size() != size) { +// PrintToPdfUtil.mergePdfFiles(pdfList, pdfPath); +// result = pdfPath; +// //} else { +// // result = ""; +// // } +// if (errorPdfList.size() > 0) { +// ExportTxtPaper.exportTxtPaper(pdfErrorUrl, "不存在或损坏PDF文件列表" + pdfFileName + ".txt", errorPdfList); +// } +// } + //PrintToPdfUtil.pdtToPdf(imgPath,pdfPath, imgList,pdfList); + //PDFUtils.getPdf(pdfPath, pdfList); + //result = "typesPdf/" + pdfFileName + ".pdf"; +// } + +// return result; } /** * 根据病案号或类别或图片id获取图片列表,并生成PDF并返回pdf文件名 + * * @param response * @param request * @param imgStr @@ -259,28 +434,29 @@ public class inHospitalController { */ @ResponseBody @RequestMapping(value = "/getPdf") - public String getPdf(HttpServletResponse response, HttpServletRequest request,String imgStr, String masterId) throws Exception { - String result=""; + public String getPdf(HttpServletResponse response, HttpServletRequest request, String imgStr, String masterId) throws Exception { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + String result = ""; // 项目在容器中实际发布运行的根路径 String realPath = request.getSession().getServletContext().getRealPath("/"); - realPath = realPath.split("target")[0] + pictureUrl+"\\static\\img\\uploads\\"; + realPath = pictureUrl + "\\"; //pdf名称 String pdfFile = String.valueOf(System.currentTimeMillis()); String pdfPath = realPath + "pdfFiles\\" + pdfFile + ".pdf"; //病案号文件夹 - if(masterId!="" && masterId!=null ){ - realPath = realPath+ masterId+"\\"; + if (masterId != "" && masterId != null) { + realPath = realPath + masterId + "\\"; //判断文件夹是否存在 - File fileDic = new File(realPath ); + File fileDic = new File(realPath); if (!fileDic.exists() && !fileDic.isDirectory()) { fileDic.mkdirs(); } - //病案号/类别/id文件夹(图片路径下的子文件夹名称) //生成pdf(图片路径,pdf生成路径,图片路径文件夹列表) - List imgList=new ArrayList(); - if(imgStr!="" && imgStr!=null) { + List imgList = new ArrayList(); + if (imgStr != "" && imgStr != null) { String[] imgArr = imgStr.split(","); if (imgArr.length > 0) { for (int i = 0; i < imgArr.length; i++) { @@ -288,93 +464,188 @@ public class inHospitalController { } } } + //imgList.add(imgStr.split())imgStr.split(",")); PrintToPdfUtil.toPdf(realPath, pdfPath, imgList); - result= pdfFile + ".pdf"; - }else{ - result="a000000.pdf"; + + result = pdfFile + ".pdf"; + } else { + result = "a000000.pdf"; + } + return result; + } + + /** + * 根据病案号或类别或图片id获取图片列表,并生成PDF并返回pdf文件名 + * + * @param response + * @param request + * @param idStr * + * @return + * @throws Exception + */ + @ResponseBody + @RequestMapping(value = "/getPdfById") + public String getPdfById(HttpServletResponse response, HttpServletRequest request, @Param("id") String idStr) throws Exception { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + String result = ""; + // 项目在容器中实际发布运行的根路径 + String realPath = pictureUrl + "\\"; + //pdf名称 + String pdfFile = String.valueOf(System.currentTimeMillis()); + String pdfPath = autoPdfUrl.trim() + "/" + pdfFile + ".pdf"; + Archive_Detail detail = new Archive_Detail(); + detail.setTitle(idStr); + //根据所有id获取PDF列表 + List arList = archiveDetailService.selectByIdStr(detail); + //获取废除的pdf文件名列表archive_detail + List pdfList = new ArrayList(); + //损坏PDF文件列表 + List errorPdfList = new ArrayList(); + int size = 0; + //将所有记录的pdf数组里面\static\img\pdfFiles\typesPdf + if (arList != null && arList.size() > 0) { + for (int m = 0; m < arList.size(); m++) { + String str = arList.get(m).getPdfPath(); + if (str != "" && str != null) { + size++; + if (str.indexOf("..\\static\\img\\pdfFiles\\") != -1) { + str = str.split("pdfFiles")[1]; + str = realPath + "pdfFiles" + str; + } + if (!PrintToPdfUtil.checkPdfFile(str)) { + arList.get(m).setPdfPath(str); + errorPdfList.add(arList.get(m)); + } else { + pdfList.add(str); + } + } + } + if (pdfList.size() > 0) { + //if (errorPdfList.size() != size) { + //对所有地址的pdf进行合成 + PrintToPdfUtil.mergePdfFiles(pdfList, pdfPath); + result = pdfPath; + //} else { + // result = ""; + //} + if (errorPdfList.size() > 0) { + ExportTxtPaper.exportTxtPaper(pdfErrorUrl, "不存在或损坏PDF文件列表" + pdfFile + ".txt", errorPdfList); + } + } + } else { + result = ""; } return result; } @ResponseBody @RequestMapping(value = "/delPdf") - public String delPdf(HttpServletResponse response, HttpServletRequest request,String pdfName) throws Exception { + public String delPdf(HttpServletResponse response, HttpServletRequest request, String pdfName) throws Exception { String msg = ""; // 项目在容器中实际发布运行的根路径 String realPath = request.getSession().getServletContext().getRealPath("/"); - realPath = realPath.split("target")[0] + pictureUrl+"\\static\\img\\uploads\\"; - realPath=realPath + "pdfFiles\\" + pdfName + ".pdf"; + realPath = pictureUrl + "\\"; + realPath = realPath + "pdfFiles\\" + pdfName + ".pdf"; //将之前文件删除 File file1 = new File(realPath); if (file1.exists() && file1.isFile()) { file1.delete(); - msg="删除成功"; + msg = "删除成功"; } return msg; } @ResponseBody @RequestMapping(value = "/delImg") - public String delImg(HttpServletResponse response, HttpServletRequest request,Emr_Picture emrPicture) throws Exception { + public String delImg(HttpServletResponse response, HttpServletRequest request, Emr_Picture emrPicture) throws Exception { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); String msg = ""; - int bol =0; + int bol = 0; if (emrPicture.getId() != null && emrPicture.getId() != "" && emrPicture.getId() != "-1") { //判断记录是否存在 - Emr_Picture entity=emrPictureService.selectByid(emrPicture.getId()); - if(entity!=null){ - String realPath = request.getSession().getServletContext().getRealPath("/"); - realPath = realPath.split("target")[0] + pictureUrl; - String imgPath=entity.getMaxPicture().replace("..",realPath); + Emr_Picture entity = emrPictureService.selectByid(emrPicture.getId()); + if (entity != null) { + String realPath = pictureUrl + "\\"; + String imgPath = entity.getMaxPicture().replace("..", realPath); //将之前图片文件删除 File file1 = new File(imgPath); if (file1.exists() && file1.isFile()) { file1.delete(); + } + // 设置存放图片文件的路径 + String path2 = ""; - // 设置存放图片文件的路径 - String path2 = "\\static\\img\\uploads\\"; + //病案号 + if (entity.getRelationId() != null && entity.getRelationId() != "") { + path2 = path2 + entity.getRelationId() + "\\"; + } - //病案号 - if (entity.getRelationId() != null && entity.getRelationId() != "") { - path2 = path2 + entity.getRelationId() + "\\"; - } + //类型 + if (entity.getAssortId() != null && entity.getAssortId() != "") { + path2 = path2 + entity.getAssortId() + "\\"; + } + String pdfPath = realPath + entity.getRelationId() + "\\" + entity.getAssortId() + "\\" + entity.getAssortId() + ".pdf"; - //类型 - if (entity.getAssortId() != null && entity.getAssortId() != "") { - path2 = path2 + entity.getAssortId() + "\\"; - } - String pdfPath= realPath + "\\static\\img\\pdfFiles\\" + entity.getRelationId() + "\\" + entity.getAssortId()+"\\"+ entity.getAssortId() + ".pdf"; + // if (msg.equals("文件未被操作!")) { //将之前文件删除 File file = new File(pdfPath); if (file1.exists() && file1.isFile()) { file1.delete(); } - //重新生成pdf //读取指定路径下的文件名和目录名 List arr = new ArrayList(); //arr.add(pathType); //图片转PDF(病案号文件夹+类别文件夹) - PrintToPdfUtil.toPdf(realPath + path2 , pdfPath , arr); - + if(arr.size()>0) { + msg = PrintToPdfUtil.toPdf(realPath + path2, pdfPath, arr); + } + //存在删除 + bol = emrPictureService.deleteById(emrPicture.getId()); + //判断图片是否存在如果不存在则删除类别PDF + Emr_Picture obj=new Emr_Picture(); + obj.setRelationId(entity.getRelationId()); + obj.setAssortId(entity.getAssortId()); + List picL=emrPictureService.selectByClo(obj); + if(picL.size()==0){ + Archive_Detail detailObj=new Archive_Detail(); + detailObj.setMasterid(entity.getRelationId()); + detailObj.setAssortid(entity.getAssortId()); + String pdfpaht= pictureUrl + "\\" + entity.getRelationId() + "\\" + entity.getAssortId() + "\\" + entity.getAssortId() + ".pdf"; + detailObj.setPdfPath(pdfpaht); + //该病案的类型无图片则删除该病案类型的PDF及删除PDF记录 + List detailsL= archiveDetailService.selectByColm(detailObj); + if(detailsL.size()>0) { + archiveDetailService.delById(detailsL.get(0).getId()); + // 判断pdf是否存在,将之前文件删除 + File file2 = new File(pdfpaht); + if (file2.exists() && file2.isFile()) { + file2.delete(); + } + } } - //存在删除 - bol = emrPictureService.deleteById(emrPicture.getId()); + // } } } - if(bol==1) { - msg = "删除成功!"; - - - }else{ - msg = "删除失败!"; - } + // if (msg.equals("文件未被操作!")) { + if (bol == 1) { + msg = "删除成功!"; + } else { + msg = "删除失败!"; + } + //}else{ + // msg="文件正被操作!"; + // } return msg; } /** * 图片列表查询 + * * @param response * @param * @param emrPicture @@ -389,7 +660,6 @@ public class inHospitalController { } - /** * 批量图片上传 * @@ -399,11 +669,13 @@ public class inHospitalController { * @return * @throws IOException */ + @Transactional @ResponseBody @RequestMapping(value = "/uploadImgS", method = RequestMethod.POST) public String uploadImgS(HttpServletResponse resp, HttpServletRequest request, @RequestParam MultipartFile[] imgs) throws Exception { resp.setContentType("text/json"); resp.setCharacterEncoding("utf-8"); + request.setCharacterEncoding("utf-8"); String firstFile = request.getParameter("fileName"); String list = request.getParameter("list"); String masterID = request.getParameter("masterID"); @@ -417,11 +689,10 @@ public class inHospitalController { String type = null; //type = fileName.indexOf(".") != -1 ? fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()) : null; // 项目在容器中实际发布运行的根路径 - String realPath = request.getSession().getServletContext().getRealPath("/"); - realPath = realPath.split("target")[0] + pictureUrl; + String realPath = pictureUrl + "\\"; // 设置存放图片文件的路径 - String path2 = "\\static\\img\\uploads\\"; + String path2 = ""; //病案号 if (masterID != null && masterID != "") { @@ -460,7 +731,7 @@ public class inHospitalController { //创建时间id String idTime = String.valueOf(System.currentTimeMillis()); - String trueFileName =""; + String trueFileName = ""; //将其路径及文件名类型以及参数保存图片相关信息到分段详细表 Emr_Picture entity = new Emr_Picture(); @@ -472,18 +743,18 @@ public class inHospitalController { int bol = 0; - String id= obj.get("id").toString(); + String id = obj.get("id").toString(); if (id != null && id != "" && !id.equals("-1")) { Emr_Picture picList = emrPictureService.selectByid(id); - // entity.setTypeFlag(id); + // entity.setTypeFlag(id); //判断记录是否已经存在 - if (picList!=null) { + if (picList != null) { entity.setId(id); //图片是否有改动有改动则删除之前重新上传 //String[] img= picList.getMaxPicture().split("/"); - if(picList.getAssortId()!=entity.getAssortId() || picList.getRelationId()!=entity.getRelationId() ){ + if (picList.getAssortId() != entity.getAssortId() || picList.getRelationId() != entity.getRelationId()) { //if(img[img.length-1]!= obj.get("fileSrc")){ @@ -496,42 +767,64 @@ public class inHospitalController { //imgs[x].transferTo(new File(realPath + path2 + pathType + trueFileName)); //System.out.println(oldName);picList.getMaxPicture() - if(picList.getMaxPicture().indexOf(path2 + pathType)==-1){ + if (picList.getMaxPicture().indexOf(path2 + pathType) == -1) { // 移动图片 - String startPath= realPath + "/static" + picList.getMaxPicture().split("static")[1]; - String endPath= realPath + path2 + pathType; + String startPath = picList.getMaxPicture().trim(); + String endPath = realPath + path2 + pathType; PrintToPdfUtil.moveTotherFolders(startPath, endPath); - String[] oldName= picList.getMaxPicture().split("\\\\"); + String[] oldName = picList.getMaxPicture().split("\\\\"); //新的图片地址 - entity.setMaxPicture(".." + path2 + pathType + oldName[oldName.length - 1]); + entity.setMaxPicture(realPath + path2 + pathType + oldName[oldName.length - 1]); } - //被修改的类别重新生成pdf,查询出pdf记录 + //被修改的类别重新生成pdf,查询出pdf记录 //根据病案号和类别查询是否存在 Archive_Detail detail = new Archive_Detail(); detail.setMasterid(masterID); detail.setAssortid(picList.getAssortId()); List detailList = archiveDetailService.selectByColm(detail); +// if(detailList!=null){ +// for(int s=0;s voList=archiveDetailService.selectByColm(detail); + detail.setAssortid(pathType.replace("\\", "")); + detail.setPdfPath(realPath + masterID + "\\" + pathType.replace("\\", "") + "\\" + pathType.replace("\\", ".pdf")); + List voList = archiveDetailService.selectByColm(detail); //pdf存在则删除记录和文件 - if(voList.size()<=0){ + if (voList.size() <= 0) { //不存在添加记录和转换pdf - detail.setFlag("0");//显示 detail.setSource("后台"); detail.setSys("emr_medical_record"); + detail.setTitle("自动生成分段类PDF"); detail.setUploaddatetime(nowTime); - detail.setPdfPath("..\\static\\img\\pdfFiles\\" + masterID + "\\" + pathType + pdfFile); - + detail.setPdfPath(realPath + masterID + "\\" + pathType + pdfFile); + //类名 int b = archiveDetailService.insertSel(detail); } //判断pdf是否存在,将之前文件删除 - File file1 = new File(realPath + "\\static\\img\\pdfFiles\\" + masterID + "\\" + pathType + pdfFile); + File file1 = new File(realPath + masterID + "\\" + pathType + pdfFile); if (file1.exists() && file1.isFile()) { file1.delete(); + //FileUtils.forceDelete(file1); } //读取指定路径下的文件名和目录名 - List arr = new ArrayList(); - arr.add(pathType); + /* List arr = new ArrayList(); + arr.add(pathType.replace("\\", "")); //图片转PDF(病案号文件夹+类别文件夹) - PrintToPdfUtil.toPdf(realPath + path2 + pathType, realPath + "\\static\\img\\pdfFiles\\" + masterID + "\\" + pathType + pdfFile, arr); - + // String str = PrintToPdfUtil.toPdf(realPath + path2 + pathType, realPath + masterID + "\\" + pathType + pdfFile, arr); + File file=new File(realPath + path2 + pathType);*/ + //读取指定路径下的文件名和目录名 + List dirList = new ArrayList(); + dirList.add(pathType.replace("\\", "")); + try { + PrintToPdfUtil.image2pdf(realPath + path2,dirList); + } catch (DocumentException e) { + e.printStackTrace(); + } result = "批量上传成功!"; } else { result = "批量上传失败!"; @@ -632,8 +947,6 @@ public class inHospitalController { result = "没有找到相对应的文件!"; } - - } } } @@ -643,10 +956,10 @@ public class inHospitalController { /** * 图片上传 + * * @param resp * @param request * @param file - * @return * @throws IOException */ @@ -655,6 +968,7 @@ public class inHospitalController { public String uploadImg(HttpServletResponse resp, HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException { resp.setContentType("text/json"); resp.setCharacterEncoding("utf-8"); + request.setCharacterEncoding("utf-8"); String firstFile = request.getParameter("fileName"); String id = request.getParameter("id"); String masterID = request.getParameter("masterID"); @@ -668,7 +982,7 @@ public class inHospitalController { type = fileName.indexOf(".") != -1 ? fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()) : null; //logger.info("图片初始名称为:" + fileName + " 类型为:" + type); if (type != null) { - if ("GIF".equals(type.toUpperCase()) || "JPEG".equals(type.toUpperCase())|| "PNG".equals(type.toUpperCase()) || "JPG".equals(type.toUpperCase())) { + if ("GIF".equals(type.toUpperCase()) || "JPEG".equals(type.toUpperCase()) || "PNG".equals(type.toUpperCase()) || "JPG".equals(type.toUpperCase())) { // 项目在容器中实际发布运行的根路径 String realPath = request.getSession().getServletContext().getRealPath("/"); realPath = realPath.split("target")[0] + pictureUrl; @@ -676,33 +990,33 @@ public class inHospitalController { //创建时间id String idTime = String.valueOf(System.currentTimeMillis()); // 自定义的文件名称String.valueOf(System.currentTimeMillis()) - String trueFileName = firstFile+ idTime + fileName.split(".")[1]; + String trueFileName = firstFile + idTime + fileName.split(".")[1]; // 设置存放图片文件的路径 - String path2 = "\\static\\img\\uploads\\" ; + String path2 = "\\static\\img\\uploads\\"; //病案号 - if (masterID != null && masterID!="") { - path2= path2+masterID + "\\"; + if (masterID != null && masterID != "") { + path2 = path2 + masterID + "\\"; } //类别 - if(assortID!=null && assortID != ""){ - path2= path2+ assortID+"\\"; + if (assortID != null && assortID != "") { + path2 = path2 + assortID + "\\"; } //图片id if (id != null && id != "") { path2 = path2 + id + "\\"; - }else{ + } else { path2 = path2 + idTime + "\\"; } - + //判断文件夹是否存在 - File fileDic = new File(realPath +path2); - if (!fileDic.exists() && !fileDic.isDirectory()){ + File fileDic = new File(realPath + path2); + if (!fileDic.exists() && !fileDic.isDirectory()) { fileDic.mkdirs(); } //logger.info("存放图片文件的路径:" + path); - path= realPath + path2 + trueFileName; + path = realPath + path2 + trueFileName; SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowTime = format1.format(new Date()); @@ -711,7 +1025,7 @@ public class inHospitalController { entity.setRelationId(masterID); entity.setAssortId(assortID); entity.setUpdateTime(nowTime); - entity.setMaxPicture(".."+ path2 + trueFileName); + entity.setMaxPicture(".." + path2 + trueFileName); // 从session获取用户名 Subject currentUser = SecurityUtils.getSubject(); @@ -726,7 +1040,7 @@ public class inHospitalController { pic.setTypeFlag(id); List list = emrPictureService.selectByClo(pic); entity.setTypeFlag(id); - if(list.size()>0){ + if (list.size() > 0) { //将之前文件删除 File file1 = new File(realPath + "/static" + list.get(0).getMaxPicture().split("static")[1]); if (file1.exists() && file1.isFile()) { @@ -734,7 +1048,7 @@ public class inHospitalController { } //根据id修改记录 bol = emrPictureService.updateCloByIdOrFlay(entity); - }else{ + } else { entity.setId(idTime); entity.setCreater(username); entity.setCreateTime(nowTime); @@ -786,6 +1100,7 @@ public class inHospitalController { public String uploadPdf(HttpServletResponse resp, HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException { resp.setContentType("text/json"); resp.setCharacterEncoding("utf-8"); + request.setCharacterEncoding("utf-8"); String firstFile = request.getParameter("fileName"); String id = request.getParameter("id"); String masterID = request.getParameter("masterID"); @@ -857,6 +1172,294 @@ public class inHospitalController { } return result; } + + + /** + * 绝对路径Pdf上传 :路径:pdfUrl + * + * @param resp + * @param request + * @param file + * @return + * @throws IOException + */ + @Transactional + @RequestMapping(value = "/uploadPdf2", method = RequestMethod.POST) + public String uploadPdf2(HttpServletResponse resp, HttpServletRequest request, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException { + resp.setContentType("text/json"); + resp.setCharacterEncoding("utf-8"); + request.setCharacterEncoding("utf-8"); + String firstFile = request.getParameter("fileName"); + String id = request.getParameter("id"); + String masterID = request.getParameter("masterID"); + String assortID = request.getParameter("assortID"); + String title = request.getParameter("title"); + String source = request.getParameter("source"); + String flag = request.getParameter("flag"); + String sys = request.getParameter("sys"); + + String result = ""; + String path = null; + String type = null; + String oldName = ""; + + // 成功获取原名字 + String fileName = null; + //type = fileName.indexOf(".") != -1 ? fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()) : null; + //System.out.println("图片初始名称为:" + fileName + " 类型为:" + type); + path = pdfUrl + "\\" + masterID + "\\" + assortID + "\\"; + //判断目录是否存在,不存在则创建目录 + File fileE = new File(path); + if (!fileE.exists()) { //用来测试此路径名表示的文件或目录是否存在 + fileE.isDirectory(); //来判断这是不是一个文件夹。 + + File file1 = new File(path); + if (!file1.exists()) { + file1.mkdirs();//创建目录 + //System.out.println("测试文件夹不存在"); + } + } + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat format2 = new SimpleDateFormat("yyyyMMddHHmmss"); + String nowTime = format1.format(new Date()); + //将其路径及文件名类型以及参数保存图片相关信息到分段详细表 + Archive_Detail entity = new Archive_Detail(); + entity.setMasterid(masterID); + entity.setAssortid(assortID); + entity.setUploaddatetime(nowTime); + if (file != null) { + fileName = format2.format(new Date()) + file.getOriginalFilename(); + entity.setPdfPath(path.replace("\\\\", "\\") + fileName); + } + entity.setTitle(title); + entity.setFlag(flag); + entity.setSource(source); + //"emr_medical_record" + entity.setSys(sys); + + Archive_Detail detail = new Archive_Detail(); + int bol = 0; + //PDF文件操作 + if (!id.equals("")) { + entity.setId(id); + detail = archiveDetailService.selectByid(id); + if (detail != null) { + //判断类型是否变更 + if (assortID.equals(detail.getAssortid())) { + //相同 + } else { + //判断file是否为空 + if (file == null) { + if (detail.getPdfPath() != null) { + String newFileName = (detail.getPdfPath()).substring((detail.getPdfPath()).lastIndexOf("\\") + 1); + entity.setPdfPath(path.replace("\\\\", "\\") + newFileName); + //不同pdf转移在删除 + PrintToPdfUtil.copyFile(detail.getPdfPath(), entity.getPdfPath()); + } + } + } + //根据id修改记录 + bol = archiveDetailService.updateCloById(entity); + + } + } else { + //插入记录 + if (file != null) { + bol = archiveDetailService.insertSel(entity); + } else { + result = "没有找到相对应的文件!"; + } + } + if (file != null) { + type = fileName.indexOf(".") != -1 ? fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()) : null; + + if (type != null) { + if ("PDF".equals(type.toUpperCase())) { + if (bol == 1) { + //将之前文件删除 + if (detail.getId() != null) { + File file2 = new File(detail.getPdfPath()); + if (file2.exists() && file2.isFile()) { + file2.delete(); + } + } + file.transferTo(new File(path + fileName)); + //文件成功上传到指定目录下 + result = entity.toString(); + } else { + result = "保存文件信息失败!"; + } + + } else { + result = "文件类型有误,请重新上传!"; + } + } else { + result = "文件类型为空!"; + } + } else { + result = "没有找到相对应的文件!"; + } + + return result; + } + +// @RequestMapping(value = "/pdfStream", method = RequestMethod.POST, params = "pdfStreamHandeler") +// @ResponseBody +// public void pdfStreamHandeler(@RequestParam("fileUrl") String fileUrl, HttpServletRequest request, HttpServletResponse response) { +// if (StringUtil.isNotEmpty(fileUrl)) { +// File file = new File(fileUrl); +// byte[] data = null; +// try { +// FileInputStream input = new FileInputStream(file); +// data = new byte[input.available()]; +// input.read(data); +// response.getOutputStream().write(data); +// input.close(); +// } catch (Exception e) { +// System.out.println("pdf文件处理异常:" + e.getMessage()); +// } +// } +// } + + @RequestMapping(value = "/pdfStreamHandeler") + public void pdfStreamHandeler(HttpServletRequest request, HttpServletResponse response) { + String filePath = request.getParameter("url"); + File file = new File(filePath); + byte[] data = null; + try { + // 解决请求头跨域问题(IE兼容性 也可使用该方法) + response.setHeader("Access-Control-Allow-Origin", "*"); + response.setContentType("application/pdf"); + FileInputStream input = new FileInputStream(file); + data = new byte[input.available()]; + input.read(data); + response.getOutputStream().write(data); + input.close(); + } catch (Exception e) { + } + } + + + @RequestMapping("getImg2") + public void getImg2(HttpServletRequest request, HttpServletResponse response,String path)throws IOException { + FileInputStream fis = null; + OutputStream os = null; + try { + fis = new FileInputStream(path); + os = response.getOutputStream(); + int count = 0; + byte[] buffer = new byte[1024 * 8]; + while ((count = fis.read(buffer)) != -1) { + os.write(buffer, 0, count); + os.flush(); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + fis.close(); + os.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + @RequestMapping("insertLog") + public void insertLog(HttpServletRequest request, HttpServletResponse response,Emr_Log logBo)throws IOException { + // 从session获取用户名 + Subject currentUser = SecurityUtils.getSubject(); + Session session = currentUser.getSession(); + String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat format2 = new SimpleDateFormat("yyyyMMddHHmmss"); + String nowTime = format1.format(new Date()); + logBo.setCreateDate(nowTime); + logBo.setCreater(username); + //日志实体对象 + logBo.setSysFlag("EMR_Medical_Record"); + String idStr=logBo.getLogContent(); + logBo.setIp("10.10.01.1"); + + if(idStr!=null &&idStr!=""){ + if(idStr.indexOf(",")!=-1){ + String[] idArr =idStr.split(","); + for (int i = 0; i < idArr.length; i++) { + logBo.setLogTitle(idArr[i]); + logBo.setLogContent("调用手动作废."); + // 添加到数据库 + logService.insert(logBo); + } + }else{ + logBo.setLogTitle(idStr); + logBo.setLogContent("调用单手动作废."); + // 添加到数据库 + logService.insert(logBo); + } + } + + } + + @ResponseBody + @RequestMapping(value = "/delPdfPage") + public int delPdfPage(HttpServletResponse response, HttpServletRequest request,Archive_Detail archiveDetail) throws Exception { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat format2 = new SimpleDateFormat("yyyyMMddHHmmss"); + String nowTime = format2.format(new Date()); + int pageNum=Integer.parseInt(archiveDetail.getTitle()); + int bol = 0; + if(pageNum==0){ + pageNum=1; + }else if(pageNum==1){ + pageNum=0; + } + File file=new File(archiveDetail.getPdfPath()); + PdfReader pdfReader = new PdfReader(new FileInputStream(file)); + int pages = pdfReader.getNumberOfPages(); + // System.out.println("pdf文件的总页数为:" + pages); + if(pages>=pageNum) { + if (file.exists()) { + //删除之前备份并作废记录 + String id=archiveDetail.getId(); + //查询记录 + Archive_Detail archiveDetailDel=archiveDetailService.selectByid(id); + //插入新作废记录 + archiveDetailDel.setTitle(archiveDetailDel.getTitle()+"_备份"+nowTime); + if(archiveDetailDel.getTitle().indexOf("_备份")!=-1){ + String oldName=archiveDetailDel.getTitle().split("_备份")[0]; + archiveDetailDel.setTitle(oldName+"_备份"+nowTime); + } + archiveDetailDel.setFlag("1"); + archiveDetailDel.setUploaddatetime(format1.format(new Date())); + //复制一份原有null的pdf文件 + String copyPdfName=nowTime+"备份_"+file.getName(); + if(file.getName().indexOf("备份_")!=-1){ + String oldName=file.getName().split("备份_")[1]; + copyPdfName=nowTime+"备份_"+oldName; + } + String copyPath=archiveDetail.getPdfPath().substring(0,archiveDetail.getPdfPath().lastIndexOf("\\")); + archiveDetailDel.setPdfPath(copyPath+"\\"+copyPdfName); + bol=archiveDetailService.insertSel(archiveDetailDel); + //保存旧版本文件 + PrintToPdfUtil.save(file, copyPdfName, copyPath); + if(bol==1) { + bol = pdfDelPageTest.cutPdf(archiveDetail.getPdfPath(), archiveDetail.getPdfPath(), pageNum);//删除第n页 + }else{ + //备份失败 + bol=4; + } + } else { + //pdf文件不存在 + bol = 2; + } + }else{ + //删除页码大于总页数 + bol=3; + } + return bol; + } } diff --git a/src/main/java/com/emr/controller/lastVerifyController.java b/src/main/java/com/emr/controller/lastVerifyController.java index e3325d96..18c2c801 100644 --- a/src/main/java/com/emr/controller/lastVerifyController.java +++ b/src/main/java/com/emr/controller/lastVerifyController.java @@ -7,22 +7,27 @@ package com.emr.controller; import com.emr.entity.*; -import com.emr.service.Archive_MasterService; -import com.emr.service.Emr_DictionaryService; -import com.emr.service.Emr_Fault_DetailService; -import com.emr.service.Emr_Fault_TypeService; +import com.emr.service.*; import com.emr.util.ExportExcelUtil; +import org.apache.axis.client.Call; +import org.apache.axis.client.Service; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.xml.namespace.QName; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -43,6 +48,9 @@ public class lastVerifyController { @Autowired private Emr_Fault_DetailService emrFaultDetailService; + @Autowired(required = false) + private Archive_Master_FollowingService archive_master_followingService; + @RequestMapping(value = "/lastVerifys") public String faults(Model model) { return "lastVerifyDir/lastVerifyList"; @@ -50,7 +58,9 @@ public class lastVerifyController { @ResponseBody @RequestMapping(value = "/lastVerifyList") - public OffsetLimitPage lastVerifyList(HttpServletRequest request, HttpServletResponse response, Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + public OffsetLimitPage lastVerifyList(HttpServletRequest request, HttpServletResponse response, Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) throws UnsupportedEncodingException { + response.setCharacterEncoding("utf-8"); + request.setCharacterEncoding("utf-8"); OffsetLimitPage result = archiveMasterService.selectByLast(archiveMasterVo, offset, limit); return result; } @@ -58,10 +68,10 @@ public class lastVerifyController { @ResponseBody @RequestMapping(value = "/exportExcel") public void exportExcel(HttpServletResponse response, Archive_Master_Vo archiveMasterVo) throws Exception { - String tableThNames = "病历清单id,住院号,住院次数,名字,性别,身份证,入院科室,入院日期,主管医生,状态"; - String fieldCns = "id,inpNo,visitId,name,sex,idNo,deptAdmissionTo,admissionDateTime,doctorInCharge,archivestate"; + String tableThNames = "病历清单id,住院号,住院次数,名字,性别,身份证,出院科室,出院日期,主管医生,状态,医生是否提交,医生,医生提交日期,护士是否提交,护士,护士提交日期,电子病历医生提交,电子病历护士提交,是否死亡"; + String fieldCns = "id,inpNo,visitId,name,sex,idNo,deptName,dischargeDateTime,doctorInCharge,archivestate,cmtDoctor,doctorName,cmtDoctorDate,cmtNurse,nurseName,cmtDurseDate,emrDoctorCmt,emrNureCmt,deathFlag"; //构造excel的数据 - List list = archiveMasterService.selectByLast(archiveMasterVo); + List list = archiveMasterService.selectByLast(archiveMasterVo); //文件名 String fileName = "病案室终审" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; @@ -75,7 +85,9 @@ public class lastVerifyController { @ResponseBody @RequestMapping(value = "/getFaultType") - public List getFaultType(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Type emrFaultType) { + public List getFaultType(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Type emrFaultType) throws UnsupportedEncodingException { + response.setCharacterEncoding("utf-8"); + request.setCharacterEncoding("utf-8"); List result = emrFaultTypeService.selectByCol(emrFaultType); return result; } @@ -83,44 +95,226 @@ public class lastVerifyController { @ResponseBody @RequestMapping(value = "/getDetailByArchId") - public Emr_Fault_Detail getDetailByArchId(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) { + public Emr_Fault_Detail getDetailByArchId(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) throws UnsupportedEncodingException { + response.setCharacterEncoding("utf-8"); + request.setCharacterEncoding("utf-8"); Emr_Fault_Detail result = emrFaultDetailService.selectByArchiveDetailId(emrFaultDetail); return result; } + @Transactional @ResponseBody @RequestMapping(value = "/updateDetailByArchivId") - public int updateDetailByArchivId(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) { - - //修改病案归档状态:复审退回 - Archive_Master archiveMaster = new Archive_Master(); - archiveMaster.setId(emrFaultDetail.getArchiveDetailId()); - archiveMaster.setArchivestate("复审退回"); - int bol = archiveMasterService.updateByClo(archiveMaster); - - //修改复审内容 - if (bol == 1) { - // 从session获取用户名 - Subject currentUser = SecurityUtils.getSubject(); - Session session = currentUser.getSession(); - String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 - - //参数输入 - SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String nowTime = format1.format(new Date()); - emrFaultDetail.setUpdater(username); - emrFaultDetail.setUpdateTime(nowTime); - //修改复审内容 - //1、查询出该病案的创建时间最近的缺陷记录 - Emr_Fault_Detail entity= emrFaultDetailService.selectByArchiveDetailId(emrFaultDetail); - emrFaultDetail.setId(entity.getId()); - //2、修改缺陷记录 - bol = emrFaultDetailService.updateCloByPrimaryKey(emrFaultDetail); + public int updateDetailByArchivId(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) throws UnsupportedEncodingException { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + int bol=0; + //修改病案归档状态:复审退回或主任退回 + Archive_Master archiveMaster = archiveMasterService.selectById(emrFaultDetail.getArchiveDetailId()); + if(archiveMaster!=null) { + archiveMaster.setArchivestate(emrFaultDetail.getState()); + //查询该病案号缺陷,如果有医生就退回医生如果有护士则退回护士否则不退回提示 + Emr_Fault_Detail entityFault=new Emr_Fault_Detail(); + entityFault.setArchiveDetailId(emrFaultDetail.getArchiveDetailId()); + List list=emrFaultDetailService.selectByArchiveId(entityFault); + if(list.size()>0){ + if (emrFaultDetail.getState().equals("主任退回")) { + //1医生 ,2护士 + for (int k = 0; k < list.size(); k++) { + if ("1".equals(list.get(k).getBackFlag()) || "5".equals(list.get(k).getBackFlag())) { + archiveMaster.setCmtDoctor(0); + archiveMaster.setDoctorName(""); + archiveMaster.setCmtDoctorDate(""); + } + if ("2".equals(list.get(k).getBackFlag()) || "6".equals(list.get(k).getBackFlag())) { + archiveMaster.setCmtNurse(0); + archiveMaster.setNurseName(""); + archiveMaster.setCmtNurseDate(""); + } + } + } + + bol = archiveMasterService.updateByClo(archiveMaster); + + //修改复审内容 + if (bol == 1) { + // 从session获取用户名 + Subject currentUser = SecurityUtils.getSubject(); + Session session = currentUser.getSession(); + String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nowTime = format1.format(new Date()); + //判断缺陷记录是否有医生或护士(有则退回状态改1) + + //参数输入 + emrFaultDetail.setCreater(username); + emrFaultDetail.setCreateTime(nowTime); + //插入缺陷记录 + bol = emrFaultDetailService.insertSel(emrFaultDetail); + + //2021-01-30 + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + String handleName = user.getUserPosition();//姓名 + + Archive_Master_Following archive_master_following = new Archive_Master_Following(); + archive_master_following.setMasterId(emrFaultDetail.getArchiveDetailId()); + if (emrFaultDetail.getState().equals("主任退回")){ + for (int k = 0; k < list.size(); k++) { + if ("1".equals(list.get(k).getBackFlag()) || "5".equals(list.get(k).getBackFlag())) { + //following表中添加科主任退回主管医生操作记录 + archive_master_following.setFollowingType("7"); + archive_master_following.setFollowingContent("科主任退回主管医生"); + archive_master_following.setHandleTime(nowTime); + archive_master_following.setHandleId(username); + archive_master_following.setHandleName(handleName); + archive_master_followingService.insertSelective(archive_master_following); + } + if ("2".equals(list.get(k).getBackFlag()) || "6".equals(list.get(k).getBackFlag())) { + //following表中添加科主任退回护士长操作记录 + archive_master_following.setFollowingType("6"); + archive_master_following.setFollowingContent("科主任退回护士长"); + archive_master_following.setHandleTime(nowTime); + archive_master_following.setHandleId(username); + archive_master_following.setHandleName(handleName); + archive_master_followingService.insertSelective(archive_master_following); + } + } + } + if (emrFaultDetail.getState().equals("复审退回")){ + //following表中添加病案室退回操作记录 + archive_master_following.setFollowingType("9"); + archive_master_following.setFollowingContent("病案室退回科主任"); + archive_master_following.setHandleTime(nowTime); + archive_master_following.setHandleId(username); + archive_master_following.setHandleName(handleName); + archive_master_followingService.insertSelective(archive_master_following); + } + //通过病案号和标识判断是否存在记录 +// Emr_Fault_Detail entity = emrFaultDetailService.selectByArchiveDetailId(emrFaultDetail); +// if (entity != null) { +// //参数输入 +// entity.setUpdater(username); +// emrFaultDetail.setUpdater(username); +// entity.setUpdateTime(nowTime); +// entity.setScore(emrFaultDetail.getScore()); +// entity.setBackContent(emrFaultDetail.getBackContent()); +// entity.setBackFlag(emrFaultDetail.getBackFlag()); +// //2、修改缺陷记录 +// bol = emrFaultDetailService.updateCloByPrimaryKey(entity); +// } else { +// //参数输入 +// emrFaultDetail.setCreater(username); +// emrFaultDetail.setCreateTime(nowTime); +// //插入缺陷记录 +// bol = emrFaultDetailService.insertSel(emrFaultDetail); +// } + } + + }else{ + bol=2; + } +// archiveMaster.setCmtDoctor(0); +// archiveMaster.setCmtNurse(0); +// archiveMaster.setDoctorName(""); +// archiveMaster.setNurseName(""); +// archiveMaster.setCmtNurseDate(""); +// archiveMaster.setCmtDoctorDate(""); + + } return bol; } + @Transactional + @ResponseBody + @RequestMapping(value = "/updateStateByArchivId") + public int updateStateByArchivId(HttpServletRequest request, HttpServletResponse response, Emr_Fault_Detail emrFaultDetail) throws UnsupportedEncodingException { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + //修改病案归档状态 + Archive_Master archiveMaster = new Archive_Master(); + archiveMaster.setId(emrFaultDetail.getArchiveDetailId()); + archiveMaster.setArchivestate("已归档"); + archiveMaster.setCmtDoctor(1); + archiveMaster.setCmtNurse(1); + int bol = archiveMasterService.updateByClo(archiveMaster); + + //添加初审内容 + if (bol == 1) { + // 从session获取用户名 + Subject currentUser = SecurityUtils.getSubject(); + Session session = currentUser.getSession(); + String username = (String) session.getAttribute("userSession");//获取前面登录的用户名 + + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String nowTime = format1.format(new Date()); + + //参数输入 + emrFaultDetail.setCreater(username); + emrFaultDetail.setCreateTime(nowTime); + emrFaultDetail.setState("未召回"); + //判断是否已经有召回记录 + Emr_Fault_Vo vo=new Emr_Fault_Vo(); + vo.setArchiveDetailId(emrFaultDetail.getArchiveDetailId()); + List list = emrFaultDetailService.selectByCol(vo); + if(list.size()>0){ + bol = emrFaultDetailService.delbyCol(emrFaultDetail); + if(bol==1){ + bol = emrFaultDetailService.insertSel(emrFaultDetail); + } + }else{ + bol = emrFaultDetailService.insertSel(emrFaultDetail); + } + + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + String handleName = user.getUserPosition();//姓名 + + Archive_Master_Following archive_master_following = new Archive_Master_Following(); + archive_master_following.setMasterId(emrFaultDetail.getArchiveDetailId()); + //following表中添加病案室审核操作记录 + archive_master_following.setFollowingType("8"); + archive_master_following.setFollowingContent("病案室审核(已归档)"); + archive_master_following.setHandleTime(nowTime); + archive_master_following.setHandleId(username); + archive_master_following.setHandleName(handleName); + archive_master_followingService.insertSelective(archive_master_following); + } + return bol; + } + + + @RequestMapping("getImg2") + public void getImg2(HttpServletRequest request, HttpServletResponse response, String path) throws IOException { + FileInputStream fis = null; + OutputStream os = null; + try { + fis = new FileInputStream(path); + os = response.getOutputStream(); + int count = 0; + byte[] buffer = new byte[1024 * 8]; + while ((count = fis.read(buffer)) != -1) { + os.write(buffer, 0, count); + os.flush(); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + fis.close(); + os.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + @ResponseBody + @RequestMapping(value = "/updateScore") + public int updateScore(Archive_Master archive_master){ + return archiveMasterService.updateByClo(archive_master); + } + } diff --git a/src/main/java/com/emr/controller/taskController.java b/src/main/java/com/emr/controller/taskController.java index 962090e2..63efbe66 100644 --- a/src/main/java/com/emr/controller/taskController.java +++ b/src/main/java/com/emr/controller/taskController.java @@ -2,27 +2,50 @@ * Copyright (C), 2015-2019 * Author: HJL * Date: 2019/9/17 11:30 - * Description: + * Description:定时任务每天4点触发清空PDF文件和txt文件 */ package com.emr.controller; import com.emr.util.PDFUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.io.File; +import java.io.IOException; @Component public class taskController { + @Value("${pdfErrorUrl}") + private String pdfErrorUrl; + + @Value("${autoPdfUrl}") + private String autoPdfUrl; + @Scheduled(cron="0 0 4 * * ?")//每天4点触发0 0 4 * * ? - public void task(){ + //@Scheduled(cron="0/1 * * * * ? ") //每1秒执行一次 + public void task() throws IOException { //static\img\pdfFiles\typesPdf + //String projectPath = System.getProperty("user.dir") + "\\static\\img\\pdfFiles\\typesPdf\\"; // 项目在容器中实际发布运行的根路径 -// String realPath = request.getSession().getServletContext().getRealPath("/"); -// realPath = realPath.split("target")[0] + pictureUrl + "\\static\\img\\"; - String projectPath = System.getProperty("user.dir") + "\\static\\img\\pdfFiles\\typesPdf\\"; - System.out.println("projectPath==" + projectPath); - PDFUtils.delAllFile(projectPath); + //String projectPath = System.getProperty("user.dir"); + //在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin + // projectPath=projectPath.replace("bin","webapps\\emr_medical_record\\static\\img\\pdfFiles\\typesPdf\\"); + + //System.out.println("projectPath=" + projectPath); + File outFile1 = new File(autoPdfUrl); + //如果文件夹不存在则创建 + if (!outFile1.exists() && !outFile1.isDirectory()) { + outFile1.mkdirs(); + } + PDFUtils.delAllFile(autoPdfUrl); + + File outFile = new File(pdfErrorUrl); + //如果文件夹不存在则创建 + if (!outFile.exists() && !outFile.isDirectory()) { + outFile.mkdirs(); + } + PDFUtils.delAllFile(pdfErrorUrl); } diff --git a/src/main/java/com/emr/controller/unfileMedicalController.java b/src/main/java/com/emr/controller/unfileMedicalController.java index a77c49c2..f3684d0d 100644 --- a/src/main/java/com/emr/controller/unfileMedicalController.java +++ b/src/main/java/com/emr/controller/unfileMedicalController.java @@ -21,6 +21,9 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -50,8 +53,8 @@ public class unfileMedicalController { @ResponseBody @RequestMapping(value = "/exportExcel") public void exportExcel(HttpServletResponse response, Archive_Master_Vo archiveMasterVo) throws Exception { - String tableThNames = "病历清单id,住院号,住院次数,名字,性别,身份证,入院科室,入院日期,出院科室,出院日期,主管医生,状态"; - String fieldCns = "id,inpNo,visitId,name,sex,idNo,deptAdmissionTo,admissionDateTime,deptName,dischargeDateTime,doctorInCharge,archivestate"; + String tableThNames = "病历清单id,住院号,住院次数,名字,性别,身份证,入院科室,入院日期,出院科室,出院日期,主管医生,状态,医生是否提交,医生,医生提交日期,护士是否提交,护士,护士提交日期,电子病历医生提交,电子病历护士提交,是否死亡"; + String fieldCns = "id,inpNo,visitId,name,sex,idNo,deptAdmissionTo,admissionDateTime,deptName,dischargeDateTime,doctorInCharge,archivestate,cmtDoctor,doctorName,cmtDoctorDate,cmtNurse,nurseName,cmtDurseDate,emrDoctorCmt,emrNureCmt,deathFlag"; //构造excel的数据 List list = archiveMasterService.selectByUnfile(archiveMasterVo); @@ -64,6 +67,32 @@ public class unfileMedicalController { exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response); } + + @RequestMapping("getImg2") + public void getImg2(HttpServletRequest request, HttpServletResponse response, String path) throws IOException { + FileInputStream fis = null; + OutputStream os = null; + try { + fis = new FileInputStream(path); + os = response.getOutputStream(); + int count = 0; + byte[] buffer = new byte[1024 * 8]; + while ((count = fis.read(buffer)) != -1) { + os.write(buffer, 0, count); + os.flush(); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + fis.close(); + os.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } diff --git a/src/main/java/com/emr/dao/Archive_DetailMapper.java b/src/main/java/com/emr/dao/Archive_DetailMapper.java index a589a581..9e120796 100644 --- a/src/main/java/com/emr/dao/Archive_DetailMapper.java +++ b/src/main/java/com/emr/dao/Archive_DetailMapper.java @@ -6,10 +6,12 @@ import com.emr.entity.Archive_Detail_Vo; import java.util.List; public interface Archive_DetailMapper { - int deleteByPrimaryKey(String id); + int delById(String id); int deleteByClo(Archive_Detail record); + int delByClo(Archive_Detail record); + int insert(Archive_Detail record); int insertSel(Archive_Detail record); @@ -28,5 +30,8 @@ public interface Archive_DetailMapper { List detailByClo(Archive_Detail_Vo record); + List selectByIdStr(Archive_Detail record); + + List selectByCol2(Archive_Detail record); } \ No newline at end of file diff --git a/src/main/java/com/emr/dao/Archive_MasterMapper.java b/src/main/java/com/emr/dao/Archive_MasterMapper.java index d06de08c..3bd7e3aa 100644 --- a/src/main/java/com/emr/dao/Archive_MasterMapper.java +++ b/src/main/java/com/emr/dao/Archive_MasterMapper.java @@ -12,19 +12,41 @@ public interface Archive_MasterMapper { int insertSelective(Archive_Master record); - Archive_Master selectByPrimaryKey(String id); + Archive_Master selectById(String id); List selectByCol(Archive_Master_Vo record); List selectByColumn(Archive_Master_Vo record); - List selectByLast(Archive_Master_Vo record); + List selectByLast(Archive_Master_Vo record); List selectByUnfile(Archive_Master_Vo record); + List selectByUnfile2(Archive_Master_Vo record); + /** + * 导出超7天的,初审和已归档 + * @param record + * @return + */ + List sel7DayByCol(Archive_Master_Vo record); + + List selectByCmtCol(Archive_Master_Vo record); + + List bbSel(Archive_Master_Vo record); + + List bbSel2(Archive_Master_Vo record); int updateByClo(Archive_Master record); int updateById(Archive_Master record); + List getDoctorInCharge(Archive_Master record); + + //查询病案室操作记录 + List selectHandleDetail(Archive_Master_Vo record); + + //查询超期天数列表 + List selectOverdue(Archive_Master_Vo record); + //封存日志 + List selectByFollowinglog(Archive_Master_Vo record); } \ No newline at end of file diff --git a/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java b/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java index 88288edf..c90d66e6 100644 --- a/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java +++ b/src/main/java/com/emr/dao/Emr_Fault_DetailMapper.java @@ -1,12 +1,17 @@ package com.emr.dao; +import com.emr.entity.Archive_Master; import com.emr.entity.Emr_Fault_Detail; import com.emr.entity.Emr_Fault_Vo; import java.util.List; public interface Emr_Fault_DetailMapper { - int deleteByPrimaryKey(Integer id); + int deleteById(Integer id); + + int delByArchiveId(Emr_Fault_Detail record); + + int delbyCol(Emr_Fault_Detail record); int insert(Emr_Fault_Detail record); @@ -18,7 +23,19 @@ public interface Emr_Fault_DetailMapper { int updateByPrimaryKey(Emr_Fault_Detail record); + List selectByColumn(Emr_Fault_Detail emrFaultDetail); + List selectByCol(Emr_Fault_Vo record); - Emr_Fault_Detail selectByArchiveDetailId(Emr_Fault_Detail record); + Emr_Fault_Detail selectById(Integer id); + + Emr_Fault_Detail selectByArchiveDetailId(Emr_Fault_Detail emrFaultDetail); + + Emr_Fault_Detail selectByDept(Emr_Fault_Detail emrFaultDetail); + + List selectByArchiveId(Emr_Fault_Detail emrFaultDetail); + + List selectStorageByCol(Emr_Fault_Vo emrFaultVo); + + List getQualityControlList(Emr_Fault_Vo emrFaultVo);//获取质控缺陷评分列表 } \ No newline at end of file diff --git a/src/main/java/com/emr/dao/V_CountMapper.java b/src/main/java/com/emr/dao/V_CountMapper.java index 0036695c..614c2650 100644 --- a/src/main/java/com/emr/dao/V_CountMapper.java +++ b/src/main/java/com/emr/dao/V_CountMapper.java @@ -1,12 +1,15 @@ package com.emr.dao; import com.emr.entity.V_Count; +import com.emr.entity.V_Count2; import java.util.List; public interface V_CountMapper { List selectByCol(V_Count record); + + // /** // * 根据条件查找统计列表分页 // * @@ -14,4 +17,8 @@ public interface V_CountMapper { // * @return // */ // List selectPageByClo(V_Count record); + + List selByDept(V_Count2 record); + + List selByCharge(V_Count2 record); } diff --git a/src/main/java/com/emr/entity/Archive_Detail.java b/src/main/java/com/emr/entity/Archive_Detail.java index 111ef44d..10b87931 100644 --- a/src/main/java/com/emr/entity/Archive_Detail.java +++ b/src/main/java/com/emr/entity/Archive_Detail.java @@ -1,28 +1,29 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + package com.emr.entity; public class Archive_Detail { 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 int pageNumber; + private String delAssortID; + + public Archive_Detail() { + } public String getId() { - return id; + return this.id; } public void setId(String id) { @@ -30,7 +31,7 @@ public class Archive_Detail { } public String getPdfPath() { - return pdfPath; + return this.pdfPath; } public void setPdfPath(String pdfPath) { @@ -38,7 +39,7 @@ public class Archive_Detail { } public String getMasterid() { - return masterid; + return this.masterid; } public void setMasterid(String masterid) { @@ -46,7 +47,7 @@ public class Archive_Detail { } public String getUploaddatetime() { - return uploaddatetime; + return this.uploaddatetime; } public void setUploaddatetime(String uploaddatetime) { @@ -54,7 +55,7 @@ public class Archive_Detail { } public String getAssortid() { - return assortid; + return this.assortid; } public void setAssortid(String assortid) { @@ -62,7 +63,7 @@ public class Archive_Detail { } public String getSource() { - return source; + return this.source; } public void setSource(String source) { @@ -70,7 +71,7 @@ public class Archive_Detail { } public String getSubassort() { - return subassort; + return this.subassort; } public void setSubassort(String subassort) { @@ -78,7 +79,7 @@ public class Archive_Detail { } public String getTitle() { - return title; + return this.title; } public void setTitle(String title) { @@ -86,7 +87,7 @@ public class Archive_Detail { } public String getFlag() { - return flag; + return this.flag; } public void setFlag(String flag) { @@ -94,10 +95,26 @@ public class Archive_Detail { } public String getSys() { - return sys; + return this.sys; } public void setSys(String sys) { this.sys = sys == null ? null : sys.trim(); } -} \ No newline at end of file + + public int getPageNumber() { + return this.pageNumber; + } + + public void setPageNumber(int pageNumber) { + this.pageNumber = pageNumber; + } + + public String getDelAssortID() { + return delAssortID; + } + + public void setDelAssortID(String delAssortID) { + this.delAssortID = delAssortID; + } +} diff --git a/src/main/java/com/emr/entity/Archive_Detail_Vo.java b/src/main/java/com/emr/entity/Archive_Detail_Vo.java index dda04557..350336c0 100644 --- a/src/main/java/com/emr/entity/Archive_Detail_Vo.java +++ b/src/main/java/com/emr/entity/Archive_Detail_Vo.java @@ -1,48 +1,40 @@ -/** - * Copyright (C), 2015-2019 - * Author: HJL - * Date: 2019/7/29 15:02 - * Description:分段目录扩展 - */ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + package com.emr.entity; public class Archive_Detail_Vo { 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 int pageNumber; private String assortId; - private String assortName; - private Short assortSort; - private String printFlag; - private String patientId; - private String scanPage; - private int pageNum; + private String delAssortID; + private String archivestate; + private String cmtDoctorDate; + private String cmtNurseDate; + private String createTime; + + public Archive_Detail_Vo() { + } public String getId() { - return id; + return this.id; } public void setId(String id) { @@ -50,7 +42,7 @@ public class Archive_Detail_Vo { } public String getPdfPath() { - return pdfPath; + return this.pdfPath; } public void setPdfPath(String pdfPath) { @@ -58,7 +50,7 @@ public class Archive_Detail_Vo { } public String getMasterid() { - return masterid; + return this.masterid; } public void setMasterid(String masterid) { @@ -66,7 +58,7 @@ public class Archive_Detail_Vo { } public String getUploaddatetime() { - return uploaddatetime; + return this.uploaddatetime; } public void setUploaddatetime(String uploaddatetime) { @@ -74,7 +66,7 @@ public class Archive_Detail_Vo { } public String getAssortid() { - return assortid; + return this.assortid; } public void setAssortid(String assortid) { @@ -82,7 +74,7 @@ public class Archive_Detail_Vo { } public String getSource() { - return source; + return this.source; } public void setSource(String source) { @@ -90,7 +82,7 @@ public class Archive_Detail_Vo { } public String getSubassort() { - return subassort; + return this.subassort; } public void setSubassort(String subassort) { @@ -98,7 +90,7 @@ public class Archive_Detail_Vo { } public String getTitle() { - return title; + return this.title; } public void setTitle(String title) { @@ -106,7 +98,7 @@ public class Archive_Detail_Vo { } public String getFlag() { - return flag; + return this.flag; } public void setFlag(String flag) { @@ -114,15 +106,23 @@ public class Archive_Detail_Vo { } public String getSys() { - return sys; + return this.sys; } public void setSys(String sys) { this.sys = sys == null ? null : sys.trim(); } + public int getPageNumber() { + return this.pageNumber; + } + + public void setPageNumber(int pageNumber) { + this.pageNumber = pageNumber; + } + public String getAssortId() { - return assortId; + return this.assortId; } public void setAssortId(String assortId) { @@ -130,7 +130,7 @@ public class Archive_Detail_Vo { } public String getAssortName() { - return assortName; + return this.assortName; } public void setAssortName(String assortName) { @@ -138,7 +138,7 @@ public class Archive_Detail_Vo { } public Short getAssortSort() { - return assortSort; + return this.assortSort; } public void setAssortSort(Short assortSort) { @@ -146,7 +146,7 @@ public class Archive_Detail_Vo { } public String getPrintFlag() { - return printFlag; + return this.printFlag; } public void setPrintFlag(String printFlag) { @@ -154,7 +154,7 @@ public class Archive_Detail_Vo { } public String getPatientId() { - return patientId; + return this.patientId; } public void setPatientId(String patientId) { @@ -162,7 +162,7 @@ public class Archive_Detail_Vo { } public String getScanPage() { - return scanPage; + return this.scanPage; } public void setScanPage(String scanPage) { @@ -170,14 +170,50 @@ public class Archive_Detail_Vo { } public Integer getPageNum() { - return pageNum; + return this.pageNum; } public void setPageNum(Integer pageNum) { this.pageNum = pageNum; } + public String getDelAssortID() { + return delAssortID; + } + + public void setDelAssortID(String delAssortID) { + this.delAssortID = delAssortID; + } -} - + public String getArchivestate() { + return this.archivestate; + } + + public void setArchivestate(String archivestate) { + this.archivestate = archivestate == null ? null : archivestate.trim(); + } + + public String getCmtDoctorDate() { + return this.cmtDoctorDate; + } + public void setCmtDoctorDate(String cmtDoctorDate) { + this.cmtDoctorDate = cmtDoctorDate == null ? null : cmtDoctorDate.trim(); + } + + public String getCmtNurseDate() { + return this.cmtNurseDate; + } + + public void setCmtNurseDate(String cmtNurseDate) { + this.cmtNurseDate = cmtNurseDate; + } + + public String getCreateTime() { + return this.createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime == null ? null : createTime.trim(); + } +} diff --git a/src/main/java/com/emr/entity/Archive_Master.java b/src/main/java/com/emr/entity/Archive_Master.java index fa8fb977..9d2b046d 100644 --- a/src/main/java/com/emr/entity/Archive_Master.java +++ b/src/main/java/com/emr/entity/Archive_Master.java @@ -1,5 +1,7 @@ package com.emr.entity; +import java.math.BigDecimal; + public class Archive_Master { private String id; @@ -41,6 +43,48 @@ public class Archive_Master { private String deptCodeLend; + private int cmtDoctor; + + private int cmtNurse; + + private String doctorName; + + private String nurseName; + + private String cmtDoctorDate; + + private String cmtNurseDate; + + private String emrDoctorCmt; + + private String emrNureCmt; + + private String deathFlag; + + private String firstInstance; + + private String transferDept; + + // 科室是否纸质提交 + private String isscaned; + + //2020-1-13 新增扫描字段 + private String isScanning; + + //2021-1-18 新增床号 + private String bedNumber; + + //2021-3-20 新增总分 + private BigDecimal score; + + public BigDecimal getScore() { + return score; + } + + public void setScore(BigDecimal score) { + this.score = score; + } + public String getId() { return id; } @@ -200,4 +244,116 @@ public class Archive_Master { public void setDeptCodeLend(String deptCodeLend) { this.deptCodeLend = deptCodeLend == null ? null : deptCodeLend.trim(); } + + public int getCmtDoctor() { + return cmtDoctor; + } + + public void setCmtDoctor(int cmtDoctor) { + this.cmtDoctor = cmtDoctor; + } + + public int getCmtNurse() { + return cmtNurse; + } + + public void setCmtNurse(int cmtNurse) { + this.cmtNurse = cmtNurse; + } + + public String getDoctorName() { + return doctorName; + } + + public void setDoctorName(String doctorName) { + this.doctorName = doctorName == null ? null : doctorName.trim(); + } + + public String getNurseName() { + return nurseName; + } + + public void setNurseName(String nurseName) { + this.nurseName = nurseName == null ? null : nurseName.trim(); + } + + public String getCmtDoctorDate() { + return cmtDoctorDate ; + } + + public void setCmtDoctorDate(String cmtDoctorDate) { + this.cmtDoctorDate = cmtDoctorDate == null ? null : cmtDoctorDate.trim(); + } + + public String getCmtNurseDate() { + return cmtNurseDate; + } + + public void setCmtNurseDate(String cmtNurseDate) { + this.cmtNurseDate = cmtNurseDate; + } + + public String getEmrDoctorCmt() { + return emrDoctorCmt; + } + + public void setEmrDoctorCmt(String emrDoctorCmt) { + this.emrDoctorCmt = emrDoctorCmt == null ? null : emrDoctorCmt.trim(); + } + + public String getEmrNureCmt() { + return emrNureCmt; + } + + public void setEmrNureCmt(String emrNureCmt) { + this.emrNureCmt = emrNureCmt == null ? null : emrNureCmt.trim(); + } + + public String getDeathFlag() { + return deathFlag; + } + + public void setDeathFlag(String deathFlag) { + this.deathFlag = deathFlag == null ? null : deathFlag.trim(); + } + + public String getFirstInstance() { + return this.firstInstance; + } + + public void setFirstInstance(String firstInstance) { + this.firstInstance = firstInstance == null ? null : firstInstance.trim(); + } + + public String getTransferDept() { + return transferDept; + } + + public void setTransferDept(String transferDept) { + this.transferDept = transferDept == null ? null : transferDept.trim(); + } + + public String getIsscaned() { + return isscaned; + } + + public void setIsscaned(String isscaned) { + this.isscaned = isscaned; + } + + public String getIsScanning() { + return isScanning; + } + + public void setIsScanning(String isScanning) { + this.isScanning = isScanning; + } + + public String getBedNumber() { + return bedNumber; + } + + public void setBedNumber(String bedNumber) { + this.bedNumber = bedNumber; + } } \ No newline at end of file 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 e2e096a5..e0393b1c 100644 --- a/src/main/java/com/emr/entity/Archive_Master_Vo.java +++ b/src/main/java/com/emr/entity/Archive_Master_Vo.java @@ -57,8 +57,238 @@ public class Archive_Master_Vo { private String endDate; + private String emrCmit; + + private String firstInstance; + private List deptList; + private int cmtDoctor; + + private int cmtNurse; + + private String content; + + // 科室是否纸质提交 + private String isscaned; + + //2021-1-13 新增扫描字段 + private String isScanning; + + //2021-1-18 新增床号 + private String bedNumber; + + private String deathFlag; + + private String fid;//following表id + + private String handleId;//handle_id + + private String handleName;//handle_name + + private String handleTime;//handle_time + + private String startHandleTime; + + private String endHandleTime; + + private String followingType;//following_type + + private String followingContent;//following_content + + private String doctorName; + + private String nurseName; + + private String cmtDoctorDate; + + private String cmtNurseDate; + + private String emrDoctorCmt; + + private String emrNureCmt; + + private String transferDept; + + //2021-02-02新增 + private String overdue;//超期天数 + + private String createTime;//初审时间 + + private String createTimeStart; + + private String createTimeEnd; + + private String overdueDays; + + public String getOverdueDays() { + return overdueDays; + } + + public void setOverdueDays(String overdueDays) { + this.overdueDays = overdueDays; + } + + public String getCreateTimeStart() { + return createTimeStart; + } + + public void setCreateTimeStart(String createTimeStart) { + this.createTimeStart = createTimeStart; + } + + public String getCreateTimeEnd() { + return createTimeEnd; + } + + public void setCreateTimeEnd(String createTimeEnd) { + this.createTimeEnd = createTimeEnd; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getOverdue() { + return overdue; + } + + public void setOverdue(String overdue) { + this.overdue = overdue; + } + + public String getCmtDoctorDate() { + return cmtDoctorDate; + } + + public void setCmtDoctorDate(String cmtDoctorDate) { + this.cmtDoctorDate = cmtDoctorDate; + } + + public String getCmtNurseDate() { + return cmtNurseDate; + } + + public void setCmtNurseDate(String cmtNurseDate) { + this.cmtNurseDate = cmtNurseDate; + } + + public String getEmrDoctorCmt() { + return emrDoctorCmt; + } + + public void setEmrDoctorCmt(String emrDoctorCmt) { + this.emrDoctorCmt = emrDoctorCmt; + } + + public String getEmrNureCmt() { + return emrNureCmt; + } + + public void setEmrNureCmt(String emrNureCmt) { + this.emrNureCmt = emrNureCmt; + } + + public String getTransferDept() { + return transferDept; + } + + public void setTransferDept(String transferDept) { + this.transferDept = transferDept; + } + + public String getDoctorName() { + return doctorName; + } + + public void setDoctorName(String doctorName) { + this.doctorName = doctorName; + } + + public String getNurseName() { + return nurseName; + } + + public void setNurseName(String nurseName) { + this.nurseName = nurseName; + } + + public String getStartHandleTime() { + return startHandleTime; + } + + public void setStartHandleTime(String startHandleTime) { + this.startHandleTime = startHandleTime; + } + + public String getEndHandleTime() { + return endHandleTime; + } + + public void setEndHandleTime(String endHandleTime) { + this.endHandleTime = endHandleTime; + } + + public String getFid() { + return fid; + } + + public void setFid(String fid) { + this.fid = fid; + } + + public String getHandleId() { + return handleId; + } + + public void setHandleId(String handleId) { + this.handleId = handleId; + } + + public String getHandleName() { + return handleName; + } + + public void setHandleName(String handleName) { + this.handleName = handleName; + } + + public String getHandleTime() { + return handleTime; + } + + public void setHandleTime(String handleTime) { + this.handleTime = handleTime; + } + + public String getFollowingType() { + return followingType; + } + + public void setFollowingType(String followingType) { + this.followingType = followingType; + } + + public String getFollowingContent() { + return followingContent; + } + + public void setFollowingContent(String followingContent) { + this.followingContent = followingContent; + } + + public String getDeathFlag() { + return deathFlag; + } + + public void setDeathFlag(String deathFlag) { + this.deathFlag = deathFlag == null ? null : deathFlag.trim(); + } + public String getId() { return id; @@ -259,6 +489,67 @@ public class Archive_Master_Vo { public void setDeptList(List deptList) { this.deptList = deptList; } + + public String getEmrCmit() { return emrCmit; } + + public void setEmrCmit(String emrCmit) { this.emrCmit = emrCmit == null ? null : emrCmit.trim(); } + + public String getFirstInstance() { + return this.firstInstance; + } + + public void setFirstInstance(String firstInstance) { + this.firstInstance = firstInstance == null ? null : firstInstance.trim(); + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content == null ? null : content.trim(); + } + + public int getCmtDoctor() { + return cmtDoctor; + } + + public void setCmtDoctor(int cmtDoctor) { + this.cmtDoctor = cmtDoctor; + } + + public int getCmtNurse() { + return cmtNurse; + } + + public void setCmtNurse(int cmtNurse) { + this.cmtNurse = cmtNurse; + } + + public String getIsscaned() { + return isscaned; + } + + public void setIsscaned(String isscaned) { + this.isscaned = isscaned; + } + + public String getIsScanning() { + return isScanning; + } + + public void setIsScanning(String isScanning) { + this.isScanning = isScanning; + } + + public String getBedNumber() { + return bedNumber; + } + + public void setBedNumber(String bedNumber) { + this.bedNumber = bedNumber; + } + } diff --git a/src/main/java/com/emr/entity/Emr_Fault_Detail.java b/src/main/java/com/emr/entity/Emr_Fault_Detail.java index 61ec382f..08400f3e 100644 --- a/src/main/java/com/emr/entity/Emr_Fault_Detail.java +++ b/src/main/java/com/emr/entity/Emr_Fault_Detail.java @@ -13,6 +13,8 @@ public class Emr_Fault_Detail { private String content; + private BigDecimal price; + private BigDecimal score; private String backContent; @@ -31,6 +33,26 @@ public class Emr_Fault_Detail { private String updateTime; + private String backFlag; + + private String dealFlag; + + private String dealPerson; + + private String dealTime; + + private String archiveState; + + private BigDecimal minusPoint; + + public BigDecimal getMinusPoint() { + return minusPoint; + } + + public void setMinusPoint(BigDecimal minusPoint) { + this.minusPoint = minusPoint; + } + public Integer getId() { return id; } @@ -71,6 +93,14 @@ public class Emr_Fault_Detail { this.content = content == null ? null : content.trim(); } + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + public BigDecimal getScore() { return score; } @@ -142,4 +172,44 @@ public class Emr_Fault_Detail { public void setUpdateTime(String updateTime) { this.updateTime = updateTime == null ? null : updateTime.trim(); } + + public String getBackFlag() { + return backFlag; + } + + public void setBackFlag(String backFlag) { + this.backFlag = backFlag == null ? null : backFlag.trim(); + } + + public String getDealFlag() { + return dealFlag; + } + + public void setDealFlag(String dealFlag) { + this.dealFlag = dealFlag == null ? null : dealFlag.trim(); + } + + public String getDealPerson() { + return dealPerson; + } + + public void setDealPerson(String dealPerson) { + this.dealPerson = dealPerson == null ? null : dealPerson.trim();; + } + + public String getDealTime() { + return dealTime; + } + + public void setDealTime(String dealTime) { + this.dealTime = dealTime == null ? null : dealTime.trim();; + } + + public String getArchiveState() { + return archiveState; + } + + public void setArchiveState(String archiveState) { + this.archiveState = archiveState; + } } \ No newline at end of file diff --git a/src/main/java/com/emr/entity/Emr_Fault_Type.java b/src/main/java/com/emr/entity/Emr_Fault_Type.java index 6fce88ef..bb756ffc 100644 --- a/src/main/java/com/emr/entity/Emr_Fault_Type.java +++ b/src/main/java/com/emr/entity/Emr_Fault_Type.java @@ -1,5 +1,7 @@ package com.emr.entity; +import java.math.BigDecimal; + public class Emr_Fault_Type { private Integer id; @@ -13,6 +15,8 @@ public class Emr_Fault_Type { private Integer effective; + private BigDecimal price; + private String remark; private String creater; @@ -71,6 +75,14 @@ public class Emr_Fault_Type { this.effective = effective; } + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + public String getRemark() { return remark; } diff --git a/src/main/java/com/emr/entity/Emr_Fault_Vo.java b/src/main/java/com/emr/entity/Emr_Fault_Vo.java index 14b933c1..82379f38 100644 --- a/src/main/java/com/emr/entity/Emr_Fault_Vo.java +++ b/src/main/java/com/emr/entity/Emr_Fault_Vo.java @@ -20,6 +20,8 @@ public class Emr_Fault_Vo { private String content; + private BigDecimal price; + private BigDecimal score; private String backContent; @@ -38,6 +40,10 @@ public class Emr_Fault_Vo { private String updateTime; + private String assortName; + + private String backFlag; + private String inpNo; private String visitId; @@ -68,6 +74,48 @@ public class Emr_Fault_Vo { private String endDateTo; + private int cmtDoctor; + + private int cmtNurse; + + private String dealFlag; + + private String dealPerson; + + private String dealTime; + + private String archiveState; + + private String typeName; + + private String doctorInCharge; + + private BigDecimal minusPoint; + + public BigDecimal getMinusPoint() { + return minusPoint; + } + + public void setMinusPoint(BigDecimal minusPoint) { + this.minusPoint = minusPoint; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + public String getDoctorInCharge() { + return doctorInCharge; + } + + public void setDoctorInCharge(String doctorInCharge) { + this.doctorInCharge = doctorInCharge; + } + public Integer getId() { return id; } @@ -300,6 +348,77 @@ public class Emr_Fault_Vo { this.endDateTo = endDateTo == null ? null : endDateTo.trim(); } + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public String getBackFlag() { + return backFlag; + } + + public void setBackFlag(String backFlag) { + this.backFlag = backFlag == null ? null : backFlag.trim(); + } + + public String getAssortName() { + return assortName; + } + + public void setAssortName(String assortName) { + this.assortName = assortName == null ? null : assortName.trim();; + } + + public int getCmtDoctor() { + return cmtDoctor; + } + + public void setCmtDoctor(int cmtDoctor) { + this.cmtDoctor = cmtDoctor; + } + + public int getCmtNurse() { + return cmtNurse; + } + + public void setCmtNurse(int cmtNurse) { + this.cmtNurse = cmtNurse; + } + + public String getDealFlag() { + return dealFlag; + } + + public void setDealFlag(String dealFlag) { + this.dealFlag = dealFlag == null ? null : dealFlag.trim(); + } + + public String getDealPerson() { + return dealPerson; + } + + public void setDealPerson(String dealPerson) { + this.dealPerson = dealPerson == null ? null : dealPerson.trim(); + } + + public String getDealTime() { + return dealTime; + } + + public void setDealTime(String dealTime) { + this.dealTime = dealTime == null ? null : dealTime.trim(); + } + + public String getArchiveState() { + return archiveState; + } + + public void setArchiveState(String archiveState) { + this.archiveState = archiveState; + } } diff --git a/src/main/java/com/emr/service/Archive_DetailService.java b/src/main/java/com/emr/service/Archive_DetailService.java index dcb44aee..ad4e6cf8 100644 --- a/src/main/java/com/emr/service/Archive_DetailService.java +++ b/src/main/java/com/emr/service/Archive_DetailService.java @@ -58,6 +58,15 @@ public interface Archive_DetailService { */ int deleteByClo(Archive_Detail record); + int delByClo(Archive_Detail record); + /** + * 根据id删除记录 + * + * @param id + * @return + */ + int delById(String id); + /** * 根据条件查询记录 * @param record @@ -66,6 +75,16 @@ public interface Archive_DetailService { List selectByColm(Archive_Detail record); List selectByCol(Archive_Detail record); + + /** + * 根据多个id合成字符串条件查询记录 + * + * @param record + * @return + */ + List selectByIdStr(Archive_Detail record); + + List selectByCol2(Archive_Detail record); } diff --git a/src/main/java/com/emr/service/Archive_MasterService.java b/src/main/java/com/emr/service/Archive_MasterService.java index 8a49e02a..bfe6b90c 100644 --- a/src/main/java/com/emr/service/Archive_MasterService.java +++ b/src/main/java/com/emr/service/Archive_MasterService.java @@ -13,6 +13,12 @@ import com.emr.entity.OffsetLimitPage; import java.util.List; public interface Archive_MasterService { + /** + * 根据id查询 + * @param id + * @return + */ + Archive_Master selectById(String id); /** * 根据条件查找病案在院列表分页 * @param archiveMasterVo @@ -33,7 +39,7 @@ public interface Archive_MasterService { * @param archiveMasterVo * @return */ - List selectByLast(Archive_Master_Vo archiveMasterVo); + List selectByLast(Archive_Master_Vo archiveMasterVo); /** * 根据条件查找'归档中','复审退回'病案列表 @@ -51,6 +57,28 @@ public interface Archive_MasterService { * @return */ List selectByUnfile(Archive_Master_Vo archiveMasterVo); + /** + * 根据条件查找病案未归档列表分页,除了已归档状态的记录 + * + * @param archiveMasterVo + * @return + */ + List selectByUnfile2(Archive_Master_Vo archiveMasterVo); + /** + * 导出超7天的,初审和已归档 + * @param record + * @return + */ + List sel7DayByCol(Archive_Master_Vo record); + + /** + * 根据条件查找'归档中','主任复审退回'病案列表 + * + * @param archiveMasterVo + * @return + */ + List selectByCmtCol(Archive_Master_Vo archiveMasterVo); + /** * 根据条件查找病案'归档中','审核退回'列表分页 * @@ -76,7 +104,13 @@ public interface Archive_MasterService { */ OffsetLimitPage selectByLast(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); - + /** + * 根据条件查找病案'归档中','主任审核退回'列表分页 + * + * @param archiveMasterVo + * @return + */ + OffsetLimitPage selectByCmtCol(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); /** * 根据条件查询记录 @@ -91,6 +125,79 @@ public interface Archive_MasterService { * @return */ int updateById(Archive_Master record); + + /** + * 根据账号所在科室查找主管医生 + * @param record + * @return + */ + List getDoctorInCharge(Archive_Master record); + + /** + * 当前科室归档情况报表 + * @param record + * @return + */ + List bbSel(Archive_Master_Vo record); + + /** + * 当前科室归档情况报表 + * + * @param archiveMasterVo + * @return + */ + OffsetLimitPage bbSel(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); + + + /** + * 当前科室超期病历详情 + * @param record + * @return + */ + List bbSel2(Archive_Master_Vo record); + + /** + * 当前科室超期病历详情 + * + * @param archiveMasterVo + * @return + */ + OffsetLimitPage bbSel2(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); + + /** + * 根据条件查找案室操作记录 + * + * @param archiveMasterVo + * @return + */ + List selectHandleDetail(Archive_Master_Vo archiveMasterVo); + + /** + * 根据条件查找病案室操作记录 + * + * @param archiveMasterVo + * @return + */ + OffsetLimitPage selectHandleDetail(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); + + /** + * 根据条件查找超期天数列表 + * + * @param archiveMasterVo + * @return + */ + List selectOverdue(Archive_Master_Vo archiveMasterVo); + + /** + * 根据条件查找超期天数列表 + * + * @param archiveMasterVo + * @return + */ + OffsetLimitPage selectOverdue(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit); + + //封存日志 + OffsetLimitPage selectByFollowinglog(Archive_Master_Vo record, Integer offset, Integer limit); } diff --git a/src/main/java/com/emr/service/Emr_Fault_DetailService.java b/src/main/java/com/emr/service/Emr_Fault_DetailService.java index e36247df..4f9a6ccf 100644 --- a/src/main/java/com/emr/service/Emr_Fault_DetailService.java +++ b/src/main/java/com/emr/service/Emr_Fault_DetailService.java @@ -6,6 +6,7 @@ */ package com.emr.service; +import com.emr.entity.Archive_Master; import com.emr.entity.Emr_Fault_Detail; import com.emr.entity.Emr_Fault_Vo; import com.emr.entity.OffsetLimitPage; @@ -38,10 +39,10 @@ public interface Emr_Fault_DetailService { /** * 根据病案号查询缺陷退回审核内容 - * @param record + * @param emrFaultDetail * @return */ - Emr_Fault_Detail selectByArchiveDetailId(Emr_Fault_Detail record); + Emr_Fault_Detail selectByArchiveDetailId(Emr_Fault_Detail emrFaultDetail); /** * 插入缺陷退回审核内容 @@ -49,6 +50,57 @@ public interface Emr_Fault_DetailService { * @return */ int insertSel(Emr_Fault_Detail record); + + /** + * 根据字段查询缺陷记录列表(1医生,2护士,5,6) + * @param emrFaultDetail + * @return + */ + List selectByColumn(Emr_Fault_Detail emrFaultDetail); + + /** + * 根据字段查询缺陷记录列表(1医生,2护士5,6) + * + * @param emrFaultDetail + * @param offset + * @param limit + * @return + */ + OffsetLimitPage selectByColumn(Emr_Fault_Detail emrFaultDetail, Integer offset, Integer limit); + + /** + * 根据id删除记录 + * @param id + * @return + */ + int deleteById(Integer id); + + /** + * 根据id删除所有召回记录 + * @param record + * @return + */ + int delByArchiveId(Emr_Fault_Detail record); + + int delbyCol(Emr_Fault_Detail record); + + Emr_Fault_Detail selectById(Integer id); + + /** + * 根据病案号和back_flag(1主任,2病案室)查找缺陷列表的分值 + * @param emrFaultDetail + * @return + */ + Emr_Fault_Detail selectByDept(Emr_Fault_Detail emrFaultDetail); + + + List selectByArchiveId(Emr_Fault_Detail emrFaultDetail); + + OffsetLimitPage selectStorageByCol(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit); + + List getQualityControlList(Emr_Fault_Vo emrFaultVo);//获取质控缺陷评分列表 + + OffsetLimitPage getQualityControlList(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit); } diff --git a/src/main/java/com/emr/service/V_CountService.java b/src/main/java/com/emr/service/V_CountService.java index 6b6ddb75..4a13af24 100644 --- a/src/main/java/com/emr/service/V_CountService.java +++ b/src/main/java/com/emr/service/V_CountService.java @@ -18,6 +18,8 @@ public interface V_CountService { */ List selectByCol(V_Count record); + + /** * 根据条件查找统计列表分页 * @@ -26,6 +28,21 @@ public interface V_CountService { */ OffsetLimitPage selectPageByClo(V_Count record, Integer offset, Integer limit); + /** + * 根据条件显示列表 + * @param record + * @return + */ + List selByDept(V_Count2 record); + + /** + * 根据条件显示列表 + * + * @param record + * @return + */ + List selByCharge(V_Count2 record); + } diff --git a/src/main/java/com/emr/service/ipml/Archive_DetailServiceImpl.java b/src/main/java/com/emr/service/ipml/Archive_DetailServiceImpl.java index 02d6e4a6..04067526 100644 --- a/src/main/java/com/emr/service/ipml/Archive_DetailServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Archive_DetailServiceImpl.java @@ -58,6 +58,16 @@ public class Archive_DetailServiceImpl implements Archive_DetailService { return archiveDetailMapper.deleteByClo(record); } + @Override + public int delByClo(Archive_Detail record) { + return archiveDetailMapper.delByClo(record); + } + + @Override + public int delById(String id) { + return archiveDetailMapper.delById(id); + } + @Override public List selectByColm(Archive_Detail record) { return archiveDetailMapper.selectByColm(record); @@ -68,6 +78,16 @@ public class Archive_DetailServiceImpl implements Archive_DetailService { return archiveDetailMapper.selectByCol(record); } + @Override + public List selectByIdStr(Archive_Detail record) { + return archiveDetailMapper.selectByIdStr(record); + } + + @Override + public List selectByCol2(Archive_Detail record) { + return archiveDetailMapper.selectByCol2(record); + } + } 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 4c371e41..03715de6 100644 --- a/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java @@ -6,6 +6,8 @@ */ package com.emr.service.ipml; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.emr.dao.Archive_DetailMapper; import com.emr.dao.Archive_MasterMapper; import com.emr.entity.Archive_Master; @@ -14,13 +16,15 @@ import com.emr.entity.Emr_Dictionary; import com.emr.entity.OffsetLimitPage; import com.emr.service.Archive_MasterService; import com.emr.service.Emr_DictionaryService; +import com.emr.service.PowerUserService; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.google.common.base.Function; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.google.common.collect.Maps; -import java.util.ArrayList; -import java.util.List; +import java.util.*; @Service public class Archive_MasterServiceImpl implements Archive_MasterService { @@ -31,11 +35,46 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { @Autowired private Emr_DictionaryService emrDictionaryService; + @Autowired + private PowerUserService powerUserService; + + @Override + public Archive_Master selectById(String id) { + return archiveMasterMapper.selectById(id); + } + @Override public OffsetLimitPage selectByCol(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { PageHelper.offsetPage(offset, limit); - //archiveMasterVo.setDeptAdmissionTo("20050102,20070102"); List list= archiveMasterMapper.selectByCol(archiveMasterVo); + + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master archive_master : list) { + + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorName()); + if (userInfo==null){ + archive_master.setDoctorName(archive_master.getDoctorName()); + }else { + archive_master.setDoctorName(userInfo.getString("name")); + } + + userInfo = mappedMovies.get(archive_master.getNurseName()); + if (userInfo==null){ + archive_master.setNurseName(archive_master.getNurseName()); + }else { + archive_master.setNurseName(userInfo.getString("name")); + } + } + + } return new OffsetLimitPage((Page) list); } @@ -55,7 +94,22 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { } @Override - public List selectByLast(Archive_Master_Vo archiveMasterVo) { + public List selectByUnfile2(Archive_Master_Vo archiveMasterVo) { + return archiveMasterMapper.selectByUnfile2(archiveMasterVo); + } + + @Override + public List sel7DayByCol(Archive_Master_Vo archiveMasterVo) { + return archiveMasterMapper.sel7DayByCol(archiveMasterVo); + } + + @Override + public List selectByCmtCol(Archive_Master_Vo archiveMasterVo) { + return archiveMasterMapper.selectByCmtCol(archiveMasterVo); + } + + @Override + public List selectByLast(Archive_Master_Vo archiveMasterVo) { return archiveMasterMapper.selectByLast(archiveMasterVo); } @@ -64,6 +118,33 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { PageHelper.offsetPage(offset, limit); List list = archiveMasterMapper.selectByColumn(archiveMasterVo); + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master archive_master : list) { + + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorName()); + if (userInfo==null){ + archive_master.setDoctorName(archive_master.getDoctorName()); + }else { + archive_master.setDoctorName(userInfo.getString("name")); + } + + userInfo = mappedMovies.get(archive_master.getNurseName()); + if (userInfo==null){ + archive_master.setNurseName(archive_master.getNurseName()); + }else { + archive_master.setNurseName(userInfo.getString("name")); + } + } + + } return new OffsetLimitPage((Page) list); } @@ -72,14 +153,107 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { PageHelper.offsetPage(offset, limit); List list = archiveMasterMapper.selectByUnfile(archiveMasterVo); + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master archive_master : list) { + + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorName()); + if (userInfo==null){ + archive_master.setDoctorName(archive_master.getDoctorName()); + }else { + archive_master.setDoctorName(userInfo.getString("name")); + } + + userInfo = mappedMovies.get(archive_master.getNurseName()); + if (userInfo==null){ + archive_master.setNurseName(archive_master.getNurseName()); + }else { + archive_master.setNurseName(userInfo.getString("name")); + } + } + + } return new OffsetLimitPage((Page) list); } @Override public OffsetLimitPage selectByLast(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { PageHelper.offsetPage(offset, limit); - List list = archiveMasterMapper.selectByLast(archiveMasterVo); + List list = archiveMasterMapper.selectByLast(archiveMasterVo); + + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + + if (powerUserList != null) { + Map mappedMovies = Maps.uniqueIndex(powerUserList, temp -> temp.getString("userName")); + + for (Archive_Master_Vo archive_master : list) { + + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorName()); + if (userInfo == null) { + archive_master.setDoctorName(archive_master.getDoctorName()); + } else { + archive_master.setDoctorName(userInfo.getString("name")); + } + + userInfo = mappedMovies.get(archive_master.getNurseName()); + if (userInfo == null) { + archive_master.setNurseName(archive_master.getNurseName()); + } else { + archive_master.setNurseName(userInfo.getString("name")); + } + + userInfo = mappedMovies.get(archive_master.getFirstInstance()); + if (userInfo == null) { + archive_master.setFirstInstance(archive_master.getFirstInstance()); + } else { + archive_master.setFirstInstance(userInfo.getString("name")); + } + } + } + + return new OffsetLimitPage((Page) list); + } + + @Override + public OffsetLimitPage selectByCmtCol(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = archiveMasterMapper.selectByCmtCol(archiveMasterVo); + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master archive_master : list) { + + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorName()); + if (userInfo==null){ + archive_master.setDoctorName(archive_master.getDoctorName()); + }else { + archive_master.setDoctorName(userInfo.getString("name")); + } + + userInfo = mappedMovies.get(archive_master.getNurseName()); + if (userInfo==null){ + archive_master.setNurseName(archive_master.getNurseName()); + }else { + archive_master.setNurseName(userInfo.getString("name")); + } + } + + } return new OffsetLimitPage((Page) list); } @@ -92,6 +266,97 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { public int updateById(Archive_Master record) { return archiveMasterMapper.updateById(record); } + + @Override + public List getDoctorInCharge(Archive_Master record) { + return archiveMasterMapper.getDoctorInCharge(record); + } + + @Override + public List bbSel(Archive_Master_Vo record) { + return archiveMasterMapper.bbSel(record); + } + + @Override + public OffsetLimitPage bbSel(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = archiveMasterMapper.bbSel(archiveMasterVo); + return new OffsetLimitPage((Page) list); + } + + @Override + public List bbSel2(Archive_Master_Vo record) { + return archiveMasterMapper.bbSel2(record); + } + + @Override + public OffsetLimitPage bbSel2(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = archiveMasterMapper.bbSel2(archiveMasterVo); + return new OffsetLimitPage((Page) list); + } + + @Override + public List selectHandleDetail(Archive_Master_Vo archiveMasterVo) { + List list = archiveMasterMapper.selectHandleDetail(archiveMasterVo); + return list; + } + + @Override + public OffsetLimitPage selectHandleDetail(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = archiveMasterMapper.selectHandleDetail(archiveMasterVo); + return new OffsetLimitPage((Page) list); + } + + @Override + public List selectOverdue(Archive_Master_Vo archiveMasterVo) { + List list = archiveMasterMapper.selectOverdue(archiveMasterVo); + return list; + } + + @Override + public OffsetLimitPage selectOverdue(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = archiveMasterMapper.selectOverdue(archiveMasterVo); + + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Archive_Master_Vo archive_master : list) { + + JSONObject userInfo = mappedMovies.get(archive_master.getDoctorInCharge()); + if (userInfo==null){ + archive_master.setDoctorInCharge(archive_master.getDoctorInCharge()); + }else { + archive_master.setDoctorInCharge(userInfo.getString("name")); + } + + userInfo = mappedMovies.get(archive_master.getFirstInstance()); + if (userInfo==null){ + archive_master.setFirstInstance(archive_master.getFirstInstance()); + }else { + archive_master.setFirstInstance(userInfo.getString("name")); + } + } + + } + return new OffsetLimitPage((Page) list); + } + + @Override + public OffsetLimitPage selectByFollowinglog(Archive_Master_Vo record, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = archiveMasterMapper.selectByFollowinglog(record); + + return new OffsetLimitPage((Page) list); + } } 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 e2020120..1763e22e 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 @@ -6,18 +6,24 @@ */ package com.emr.service.ipml; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.emr.dao.Emr_Fault_DetailMapper; import com.emr.entity.*; 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.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.google.common.base.Function; +import com.google.common.collect.Maps; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.List; +import java.util.Map; @Service public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { @@ -30,6 +36,9 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { @Autowired private Emr_DictionaryService emrDictionaryService; + + @Autowired + private PowerUserService powerUserService; /** * 根据条件查询缺陷列表 * @param emrFaultVo @@ -95,14 +104,145 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { } @Override - public Emr_Fault_Detail selectByArchiveDetailId(Emr_Fault_Detail record) { - return emrFaultDetailMapper.selectByArchiveDetailId(record); + public Emr_Fault_Detail selectByArchiveDetailId(Emr_Fault_Detail emrFaultDetail) { + return emrFaultDetailMapper.selectByArchiveDetailId(emrFaultDetail); } @Override public int insertSel(Emr_Fault_Detail record) { return emrFaultDetailMapper.insertSel(record); } + + @Override + public List selectByColumn(Emr_Fault_Detail emrFaultDetail) { + return emrFaultDetailMapper.selectByColumn(emrFaultDetail); + } + + @Override + public OffsetLimitPage selectByColumn(Emr_Fault_Detail emrFaultDetail, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = emrFaultDetailMapper.selectByColumn(emrFaultDetail); + return new OffsetLimitPage((Page) list); + } + + @Override + public int deleteById(Integer id) { + return emrFaultDetailMapper.deleteById(id); + } + + @Override + public int delByArchiveId(Emr_Fault_Detail record) { + return emrFaultDetailMapper.delByArchiveId(record); + } + + @Override + public int delbyCol(Emr_Fault_Detail record) { + return emrFaultDetailMapper.delbyCol(record); + } + + @Override + public Emr_Fault_Detail selectById(Integer id) { + return emrFaultDetailMapper.selectById(id); + } + + @Override + public Emr_Fault_Detail selectByDept(Emr_Fault_Detail emrFaultDetail) { + return emrFaultDetailMapper.selectByDept(emrFaultDetail); + } + + @Override + public List selectByArchiveId(Emr_Fault_Detail emrFaultDetail) { + return emrFaultDetailMapper.selectByArchiveId(emrFaultDetail); + } + + @Override + public OffsetLimitPage selectStorageByCol(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) { + //return emrFaultDetailMapper.selectByCol(emrFaultDetail); + PageHelper.offsetPage(offset, limit); + List list = emrFaultDetailMapper.selectStorageByCol(emrFaultVo); + Emr_Dictionary dic = new Emr_Dictionary(); + dic.setEffective(1); + dic.setTypecode("dept_code"); + //科室列表 + List dicList = emrDictionaryService.dicByTypeCode(dic); + //获取缺陷类别列表 + Emr_Fault_Type obj = new Emr_Fault_Type(); + obj.setEffective(1); + List typeLis = emrFaultTypeService.selectByCol(obj); + for (int i = 0; i < list.size(); i++) { + + //替换科室 + for (int k = 0; k < dicList.size(); k++) { + String deptName = list.get(i).getDeptName(); + //入院科室dept_admission_to + String dept2 = list.get(i).getDeptAdmissionTo(); + + if ((deptName != null && deptName.equals(dicList.get(k).getCode())) || (dept2 != null && dept2.equals(dicList.get(k).getCode()))) { + //出院科室 + deptName = deptName.replace(deptName, dicList.get(k).getName()); + list.get(i).setDeptName(deptName); + + dept2 = dept2.replace(dept2, dicList.get(k).getName()); + list.get(i).setDeptAdmissionTo(dept2); + } + } + + String assortId = list.get(i).getAssortId(); + if(assortId!="" && assortId!=null) { + String[] assorArr = assortId.split(","); + //替换类别 + for (int j = 0; j < typeLis.size(); j++) { + String id = String.valueOf(typeLis.get(j).getId()); + if (Arrays.asList(assorArr).contains(id)) { + assortId = assortId.replace(id, typeLis.get(j).getTypeName()); + list.get(i).setAssortId(assortId); + } + } + } + } + + return new OffsetLimitPage((Page) list); + } + + @Override + public List getQualityControlList(Emr_Fault_Vo emrFaultVo) { + return emrFaultDetailMapper.getQualityControlList(emrFaultVo); + } + + @Override + public OffsetLimitPage getQualityControlList(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) { + PageHelper.offsetPage(offset, limit); + List list = emrFaultDetailMapper.getQualityControlList(emrFaultVo); + + JSONArray powerUsers = powerUserService.getPowerUserList("1"); + List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); + if (powerUserList != null){ + Map mappedMovies = Maps.uniqueIndex(powerUserList, new Function() { + @Override + public String apply(JSONObject temp) { + return temp.getString("userName"); + }}); + + for (Emr_Fault_Vo emr_fault_vo : list) { + + JSONObject userInfo = mappedMovies.get(emr_fault_vo.getDoctorInCharge()); + if (userInfo==null){ + emr_fault_vo.setDoctorInCharge(emr_fault_vo.getDoctorInCharge()); + }else { + emr_fault_vo.setDoctorInCharge(userInfo.getString("name")); + } + + userInfo = mappedMovies.get(emr_fault_vo.getCreater()); + if (userInfo==null){ + emr_fault_vo.setCreater(emr_fault_vo.getCreater()); + }else { + emr_fault_vo.setCreater(userInfo.getString("name")); + } + } + + } + return new OffsetLimitPage((Page) list); + } } diff --git a/src/main/java/com/emr/service/ipml/LogServiceImpl.java b/src/main/java/com/emr/service/ipml/LogServiceImpl.java index 30a55116..b10c84b1 100644 --- a/src/main/java/com/emr/service/ipml/LogServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/LogServiceImpl.java @@ -1,7 +1,6 @@ package com.emr.service.ipml; import com.emr.dao.Emr_LogMapper; -import com.emr.entity.Emr_Fault_Vo; import com.emr.entity.Emr_Log; import com.emr.entity.Emr_Log_Vo; import com.emr.entity.OffsetLimitPage; diff --git a/src/main/java/com/emr/service/ipml/V_CountServiceImpl.java b/src/main/java/com/emr/service/ipml/V_CountServiceImpl.java index 3d272b83..081624bd 100644 --- a/src/main/java/com/emr/service/ipml/V_CountServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/V_CountServiceImpl.java @@ -31,12 +31,23 @@ public class V_CountServiceImpl implements V_CountService { return vCountMapper.selectByCol(record); } + @Override public OffsetLimitPage selectPageByClo(V_Count record, Integer offset, Integer limit) { PageHelper.offsetPage(offset, limit); List list = vCountMapper.selectByCol(record); return new OffsetLimitPage((Page) list); } + + @Override + public List selByDept(V_Count2 record) { + return vCountMapper.selByDept(record); + } + + @Override + public List selByCharge(V_Count2 record) { + return vCountMapper.selByCharge(record); + } } diff --git a/src/main/java/com/emr/shiro/MyRealm.java b/src/main/java/com/emr/shiro/MyRealm.java index 47112e14..94e5d355 100644 --- a/src/main/java/com/emr/shiro/MyRealm.java +++ b/src/main/java/com/emr/shiro/MyRealm.java @@ -84,6 +84,7 @@ public class MyRealm extends AuthorizingRealm { //通过表单接收的用户名 String username = token.getUsername(); String userpwd = String.valueOf(token.getPassword()); + if (username != null && !"".equals(username)) { /*User user = userService.getUserByUsername(username); if (user != null) { @@ -96,7 +97,8 @@ public class MyRealm extends AuthorizingRealm { if((obj.getString("code")).equals("100")){ //当验证都通过后,把用户信息放在 session 里 Session session = SecurityUtils.getSubject().getSession(); - // session.setTimeout(30*24 * 60 * 60);//以秒为单位,即在没有活动30分钟后,session将失效 + //session.setTimeout(4 * 3600);//以秒为单位,即在没有活动4小时后,session将失效 + session.setTimeout(-1);//以秒为单位,session将失效 session.setAttribute("menuList", obj); //session.setAttribute("userSession",username); //session.setAttribute("userSessionId", users.get(0).getId()); @@ -104,14 +106,13 @@ public class MyRealm extends AuthorizingRealm { //当验证都通过后,把用户信息放在 session 里 JSONObject list= (JSONObject) obj.getJSONObject("extend"); //System.out.println(list); - session.setAttribute("userSession", username); return new SimpleAuthenticationInfo(username, userpwd, getName()); } } } - System.out.println("认证失败"); + return null; } } diff --git a/src/main/java/com/emr/util/ExportExcelUtil.java b/src/main/java/com/emr/util/ExportExcelUtil.java index d252855c..105269ae 100644 --- a/src/main/java/com/emr/util/ExportExcelUtil.java +++ b/src/main/java/com/emr/util/ExportExcelUtil.java @@ -4,6 +4,7 @@ */ package com.emr.util; +import com.emr.entity.Archive_Detail; import org.apache.commons.lang3.CharUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.*; @@ -33,7 +34,7 @@ public class ExportExcelUtil { * */ public List getFieldName(String tableThNames){ String[] names = tableThNames.split(","); - List fieldName = new ArrayList<>(); + List fieldName = new ArrayList(); if (names != null) { for (int i = 0; i < names.length; i++) { if (StringUtils.isNoneBlank(names[i])) { diff --git a/src/main/java/com/emr/util/HttpClientUtils.java b/src/main/java/com/emr/util/HttpClientUtils.java index 8d44c1af..409ed359 100644 --- a/src/main/java/com/emr/util/HttpClientUtils.java +++ b/src/main/java/com/emr/util/HttpClientUtils.java @@ -220,7 +220,7 @@ public class HttpClientUtils { HttpPost httpPost = new HttpPost(url); // 创建参数列表 if (param != null) { - List paramList = new ArrayList<>(); + List paramList = new ArrayList(); for (String key : param.keySet()) { paramList.add(new BasicNameValuePair(key, param.get(key))); } diff --git a/src/main/java/com/emr/util/PDFUtils.java b/src/main/java/com/emr/util/PDFUtils.java index ddc4e735..29291e3a 100644 --- a/src/main/java/com/emr/util/PDFUtils.java +++ b/src/main/java/com/emr/util/PDFUtils.java @@ -9,6 +9,7 @@ package com.emr.util; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import com.itextpdf.text.Document; @@ -20,7 +21,7 @@ import org.springframework.beans.factory.annotation.Value; public class PDFUtils { - public static void main(String[] args) { + public static void main(String[] args) throws IOException { // File[] pdfs = new File[9]; // pdfs[0] = new File("C:\\Users\\Administrator\\Desktop\\病案pdf\\1422482_1\\d10db823-7af0-407f-bfb9-cb992a271dac.pdf"); // pdfs[1] = new File("C:\\Users\\Administrator\\Desktop\\病案pdf\\1422482_1\\dc37ad48-5392-4239-bb07-d39a6d975a4b.pdf"); @@ -38,9 +39,33 @@ public class PDFUtils { // } catch (IOException | DocumentException e) { // e.printStackTrace(); // } - String projectPath = System.getProperty("user.dir") + "\\static\\img\\pdfFiles\\typesPdf\\"; - System.out.println("projectPath==" + projectPath); + + File f = new File(""); + String courseFile=f.getCanonicalPath(); + + //System.out.println(courseFile+"sss"); + + + + + String projectPath = System.getProperty("user.dir"); + projectPath = projectPath.replace("bin", "webapps\\emr_medical_record\\static\\img\\pdfFiles\\typesPdf\\"); + //System.out.println("projectPath==" + projectPath); PDFUtils.delAllFile(projectPath); + + String path2= "C:\\Users\\Administrator\\Desktop\\测试\\aa\\"; + File outFile = new File(path2); + //如果文件夹不存在则创建 + if (!outFile.exists() && !outFile.isDirectory()) { + outFile.mkdirs(); + } + // PDFUtils.delAllFile(path2); + List pdfList = new ArrayList(); + pdfList.add("C:\\Users\\Administrator\\Desktop\\测试\\ttt.pdf"); + pdfList.add("C:\\Users\\Administrator\\Desktop\\测试\\sss.pdf"); + pdfList.add("C:\\Users\\Administrator\\Desktop\\测试\\15511.pdf"); + //List pdfError=getPdf("C:\\Users\\Administrator\\Desktop\\测试\\合成.pdf", pdfList); + //System.out.println(pdfError.get(0)); } //删除指定文件夹下的所有文件 @@ -73,7 +98,8 @@ public class PDFUtils { return flag; } - public static void getPdf(String filePath, List pathArr){ + public static List getPdf(String filePath, List pathArr){ + List pdfList = new ArrayList(); if(pathArr!=null) { File[] pdfs = new File[pathArr.size()]; for (int i = 0; i < pathArr.size(); i++) { @@ -81,11 +107,12 @@ public class PDFUtils { } File mergedPdf = new File(filePath); try { - merge(pdfs, mergedPdf); - } catch (IOException | DocumentException e) { + pdfList=merge(pdfs, mergedPdf); + } catch (Exception e) { e.printStackTrace(); } } + return pdfList; } /** @@ -94,33 +121,63 @@ public class PDFUtils { * @throws IOException * @throws DocumentException */ - public static void merge(File[] pages, File pdffile) throws IOException, - DocumentException { + public static List merge(File[] pages, File pdffile) throws IOException, DocumentException { + List pdfList = new ArrayList(); if (!pdffile.exists()) { pdffile.createNewFile(); } - System.out.println(pages.length); - if (pages.length < 1) - return; - - Document document = new Document(new PdfReader( - ((File) pages[0]).getAbsolutePath()).getPageSize(1)); - PdfCopy copy = new PdfCopy(document, new FileOutputStream(pdffile)); - document.open(); - for (int i = 0; i < pages.length; i++) { - PdfReader reader = new PdfReader((pages[i]).getAbsolutePath()); - int num = reader.getNumberOfPages(); - for (int j = 1; j <= num; j++) { - document.newPage(); - PdfImportedPage page = copy.getImportedPage(reader, j); - copy.addPage(page); + //System.out.println(pages.length); + if (pages.length >0) { + Document document = new Document(new PdfReader( + ((File) pages[0]).getAbsolutePath()).getPageSize(1)); + PdfCopy copy = new PdfCopy(document, new FileOutputStream(pdffile)); + document.open(); + for (int i = 0; i < pages.length; i++) { + //判断PDF是否损坏 + boolean bol = checkPdfFile(pages[i].toString()); + if (bol) { + PdfReader reader = new PdfReader((pages[i]).getAbsolutePath()); + int num = reader.getNumberOfPages(); + for (int j = 1; j <= num; j++) { + document.newPage(); + PdfImportedPage page = copy.getImportedPage(reader, j); + copy.addPage(page); + } + } else { + //列出所有损坏的文件信息 + pdfList.add(pages[i].toString()); + } } + // System.out.println("----------------------------------"); + + copy.close(); + document.close(); +// for (File page : pages) { +// page.deleteOnExit(); +// } } - System.out.println("----------------------------------"); - document.close(); - // for (File page : pages) { - // page.deleteOnExit(); - // } + return pdfList; + } + + + private static boolean checkPdfFile(String file) { + boolean flag1 = false; + int n = 0; + try { + com.lowagie.text.pdf.PdfReader reader = new com.lowagie.text.pdf.PdfReader(file); + com.lowagie.text.Document document = new com.lowagie.text.Document(reader.getPageSize(1)); + document.open(); + n = reader.getNumberOfPages(); + if (n != 0) + flag1 = true; + document.close(); + } catch (IOException e) { + //System.out.println("文件{path:" + file + "}损坏" + e.fillInStackTrace()); + return false; + } + return flag1; + + } } diff --git a/src/main/java/com/emr/util/PrintToPdfUtil.java b/src/main/java/com/emr/util/PrintToPdfUtil.java index 8ce5cacc..3c36be49 100644 --- a/src/main/java/com/emr/util/PrintToPdfUtil.java +++ b/src/main/java/com/emr/util/PrintToPdfUtil.java @@ -6,29 +6,33 @@ */ package com.emr.util; -import java.awt.image.BufferedImage; -import java.io.*; -import java.net.URL; -import java.net.URLConnection; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import javax.imageio.ImageIO; - -import com.emr.entity.Emr_Picture; -import com.lowagie.text.BadElementException; +import com.emr.entity.Archive_Detail; +import com.emr.entity.MergePDFItem; +import com.github.pagehelper.Page; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Image; -import com.lowagie.text.Rectangle; -import com.lowagie.text.pdf.PdfWriter; +import com.lowagie.text.PageSize; +import com.lowagie.text.pdf.*; +import com.lowagie.text.rtf.RtfWriter2; +import com.sun.image.codec.jpeg.JPEGCodec; +import com.sun.image.codec.jpeg.JPEGImageEncoder; +import com.sun.javafx.css.Size; import org.apache.commons.io.FileUtils; +import org.apache.pdfbox.io.MemoryUsageSetting; import org.apache.pdfbox.multipdf.PDFMergerUtility; -import org.apache.shiro.SecurityUtils; -import org.apache.shiro.session.Session; -import org.apache.shiro.subject.Subject; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.common.PDRectangle; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 将多张图片合并转为PDF;需要用到iTextpdf包, @@ -36,12 +40,108 @@ import org.apache.shiro.subject.Subject; * @author */ public class PrintToPdfUtil { + final private static float A4_weight = 595;//标准A4的宽 + final private static float A4_height = 842;//标准A4的高 + public static boolean forceDelete(File file) { + boolean result = file.delete(); + int tryCount = 0; + while (!result && tryCount++ < 10) { + System.gc(); //回收资源 + result = file.delete(); + + } + return result; + } + + /*** + * @param picturePath + * 图片地址 + */ + private static void createPic( String picturePath,Document document) { + try { + File file=new File(picturePath); + File[] files = file.listFiles(); + Image img =null; + + if (files.length > 0) { + for (File file1 : files) { + if (file1.getName().endsWith(".png") || file1.getName().endsWith(".jpg") || file1.getName().endsWith(".gif") + || file1.getName().endsWith(".jpeg") || file1.getName().endsWith(".tif")) { + // 实例化图片 + img = Image.getInstance(file1.getPath()); + /*处理图片缩放比例*/ + float w = img.getWidth(); + float h = img.getHeight(); + float percent = 0; + if ((w > A4_weight) && (h < A4_height)) { + percent = (A4_weight * 100) / w; + } else if ((w < A4_weight) && (h > A4_height)) { + percent = (A4_height * 100) / h; + } else if ((w > A4_weight) && (h > A4_height)) { + percent = (A4_weight * 100) / w; + h = (h * percent) / 100; + if (h > A4_height) { + percent = (A4_height * 100) / h; + } + } + + // 读取图片流 + img.setAlignment(com.lowagie.text.Image.ALIGN_CENTER); + if(percent != 100){ + img.scaleAbsolute(A4_weight,A4_height); + }else{ + img.scalePercent(percent); + } + document.open(); + document.add(img); + + }else if(file1.isDirectory()){ + //是文件夹迭代 + System.out.println(file1.getAbsolutePath()); + createPic(file1.getAbsolutePath(),document); + } + } + } + document.close(); + } catch (Exception ex) { + } + } + + public static void image2pdf(String text,List dirList) throws DocumentException, IOException { + /* Document document = new Document(); + OutputStream os = new FileOutputStream(new File(pdf)); + PdfWriter.getInstance(document, os); + document.open();*/ + //循环类别 + if(dirList.size()>0){ + for(int i=0;i 0) { + // 循环获取图片文件夹内的图片,全部 + createPic(text+dirList.get(i),document); + + } + + + } + } + } + + static Document doc =null; /** * @param imageFolderPath 图片文件夹地址 * @param pdfPath PDF文件保存地址 */ - public static void toPdf(String imageFolderPath, String pdfPath,List dirList) { + public static String toPdf(String imageFolderPath, String pdfPath,List dirList) { + String msg=""; + // 创建文档 + doc = new Document(null, 0, 0, 0, 0); try { //判断文件夹是否存在 String pdfStr = pdfPath.substring(0, pdfPath.lastIndexOf("\\")); @@ -51,94 +151,107 @@ public class PrintToPdfUtil { } //判断pdf是否存在,将之前文件删除 File file1 = new File(pdfPath); + //boolean a=forceDelete(file1); if (file1.exists() && file1.isFile()) { - file1.delete(); - } + if (file1.renameTo(file1)) { + file1.delete(); + //System.out.println("文件未被操作"); + msg="文件未被操作!"; + + } else { + //System.out.println("文件正在被操作"); + msg = "文件正在被操作!"; + } - // 输入流 - FileOutputStream fos = new FileOutputStream(pdfPath); - // 创建文档 - Document doc = new Document(null, 0, 0, 0, 0); - //doc.open(); - // 写入PDF文档 - PdfWriter.getInstance(doc, fos); - - // 获取图片文件夹对象 - File file = new File(imageFolderPath); - //imageFolderPath = file.getAbsolutePath() + "\\"; - imgFun(imageFolderPath,file, dirList, doc); + }else{ + msg = "文件未被操作!"; + } + doc.open(); + + if(msg.equals("文件未被操作!")){ + // OutputStream fos = new FileOutputStream(pdfPath); + // 输入流 + OutputStream fos = new FileOutputStream(new File(pdfPath)); + + // 获取图片文件夹对象 + File file = new File(imageFolderPath); + // 写入PDF文档 + PdfWriter.getInstance(doc, fos); + //imageFolderPath = file.getAbsolutePath() + "\\"; + imgFun(imageFolderPath, file, dirList, doc); + + try { + if(fos!=null) { + fos.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } - if (doc.isOpen()) { - // 关闭文档 - doc.close(); } } catch (Exception e) { e.printStackTrace(); + }finally { + /* if (doc.isOpen()) { + // 关闭文档 + doc.close(); + }*/ + } + return msg; } public static void imgFun(String imageFolderPath,File file, List dirList, Document doc){ - - try { - // 图片地址 - String imagePath = null; - // 读取图片流 - BufferedImage img = null; - // 实例化图片 - Image image = null; - - File[] files = file.listFiles(); - if (files.length > 0) { - // 循环获取图片文件夹内的图片 + doc.open(); + // 图片地址 + String imagePath = null; + // 读取图片流 + //BufferedImage img = null; + // 实例化图片 + Image image = null; + File[] files = file.listFiles(); + if (files.length > 0) { + // 循环获取图片文件夹内的图片 + try { for (File file1 : files) { if (file1.getName().endsWith(".png") || file1.getName().endsWith(".jpg") || file1.getName().endsWith(".gif") || file1.getName().endsWith(".jpeg") || file1.getName().endsWith(".tif")) { - imageFolderPath = file1.getAbsolutePath(); + //createPic(doc, file1.getPath()); - // 读取图片流 - img = ImageIO.read(new File(imageFolderPath)); - //String pdfStr=imageFolderPath.substring(0, imageFolderPath.lastIndexOf("\\")).replace("uploads", "pdfFiles"); - - //判断文件夹是否存在 - //File fileDic = new File(pdfStr); - //if (!fileDic.exists() && !fileDic.isDirectory()) { - //fileDic.mkdirs(); - //} - System.out.println("路径" + imageFolderPath); - doc.setPageSize(new Rectangle(img.getWidth(), img.getHeight())); - // 根据图片大小设置文档大小 - //doc.setPageSize(new Rectangle(img.getWidth(), img.getHeight())); - // 实例化图片 - image = Image.getInstance(imageFolderPath); - // 添加图片到文档 - doc.open(); - doc.add(image); } //file.getAbsolutePath().replaceFirst(path, " "); if (file1.isDirectory()) { if (dirList != null && dirList.size() > 0) { if (dirList.indexOf(file1.getName()) != -1) { - System.out.println(file1.getAbsolutePath()); + // System.out.println(file1.getAbsolutePath()); imageFolderPath = file1.getAbsolutePath() + "\\"; imgFun(imageFolderPath, file1, dirList, doc); } } else { - System.out.println(file1.getAbsolutePath()); + //System.out.println(file1.getAbsolutePath()); imageFolderPath = file1.getAbsolutePath() + "\\"; imgFun(imageFolderPath, file1, dirList, doc); } } + } + } catch(Exception e){ + e.printStackTrace(); + } finally { + + if (doc.isOpen()) { + // 关闭文档 + doc.close(); } - }else{ - System.out.println("空文件夹"); } - } catch(Exception e){ - e.printStackTrace(); + }else{ + // System.out.println("空文件夹"); } + + } @@ -148,6 +261,7 @@ public class PrintToPdfUtil { // FileOutputStream fos = new FileOutputStream(pdfPath); // // 创建文档 Document doc = new Document(null, 0, 0, 0, 0); + // //doc.open(); // // 写入PDF文档 // PdfWriter.getInstance(doc, fos); @@ -160,7 +274,7 @@ public class PrintToPdfUtil { pdfFun(pdfFolderPath, file, dirList, pdfList, mergePdf); mergePdf.setDestinationFileName(pdfPath); mergePdf.mergeDocuments(); - System.out.print("done"); + //System.out.print("done"); // if (doc.isOpen()) { // // 关闭文档 // doc.close(); @@ -181,7 +295,7 @@ public class PrintToPdfUtil { if (file1.getName().endsWith(".pdf")) { //System.out.println(file1.length()); if (pdfList != null && pdfList.size() > 0) { - System.out.println("文件名:"+file1.getName()); + //System.out.println("文件名:"+file1.getName()); if (pdfList.indexOf(file1.getName()) != -1) { }else{ @@ -268,24 +382,289 @@ public class PrintToPdfUtil { } + /* + * * 合並pdf文件 * * @param files 要合並文件數組(絕對路徑如{ "e:\\1.pdf", "e:\\2.pdf" , + * "e:\\3.pdf"}) * @param newfile + * 合並後新產生的文件絕對路徑如e:\\temp.pdf,請自己刪除用過後不再用的文件請 * @return boolean + * 產生成功返回true, 否則返回false + */ + + public static boolean mergePdfFiles2(List files, String newfile) throws Exception { + boolean retValue = false; + + List tmpFiles = new ArrayList<>(); + try + { + for (int i = 0;i h ? h : w; + cb.addTemplate(page, Scale, 0, 0, Scale, 0, 0); + } + } + document.close(); + + /*PdfCopy copy = new PdfCopy(document, new FileOutputStream(newfile)); + document.open(); + for (int i = 0; i < files.size(); i++) { + boolean bol = checkPdfFile(files.get(i).toString()); + System.out.println(bol); + if(bol) { + PdfReader reader = new PdfReader(files.get(i).toString()); + int n = reader.getNumberOfPages(); + for (int j = 1; j <= n; j++) { + document.newPage(); + PdfImportedPage page = copy.getImportedPage(reader, j); + copy.addPage(page); + } + }else{ + + } + }*/ + retValue = true; + } catch (Exception e) { + e.printStackTrace(); + } finally { + document.close(); + } + return retValue; + } + public static File mulFile2One(List files, String targetPath) throws IOException { + // pdf合并工具类 + PDFMergerUtility mergePdf = new PDFMergerUtility(); + for (File f : files) { + boolean bol = checkPdfFile(f.toString()); + if (bol) { + if (f.exists() && f.isFile()) { + // 循环添加要合并的pdf + mergePdf.addSource(f); + } + } + } + // 设置合并生成pdf文件名称 + mergePdf.setDestinationFileName(targetPath); + // 合并pdf + mergePdf.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly()); + return new File(targetPath); + } + + + /** + * 复制单个文件 + * + * @param oldPath String 原文件路径 如:c:/fqf.txt + * @param newPath String 复制后路径 如:f:/fqf.txt + * @return boolean + */ + public static void copyFile(String oldPath, String newPath) { + try { +// int bytesum = 0; + int byteread = 0; + File oldfile = new File(oldPath); + if (oldfile.exists()) { //文件存在时 + InputStream inStream = new FileInputStream(oldPath); //读入原文件 + FileOutputStream fs = new FileOutputStream(newPath); + byte[] buffer = new byte[1444]; +// int length; + while ((byteread = inStream.read(buffer)) != -1) { +// bytesum += byteread; //字节数 文件大小 +// System.out.println(bytesum); + fs.write(buffer, 0, byteread); + } + inStream.close(); + } + } catch (Exception e) { + System.out.println("复制单个文件操作出错"); + e.printStackTrace(); + + } finally { + //将之前文件删除 + File file2 = new File(oldPath); + if (file2.exists() && file2.isFile()) { + file2.delete(); + } + } + + } - public static void main(String[] args) { + public static void main(String[] args) throws IOException { String pdfFile = String.valueOf(System.currentTimeMillis()); //读取指定路径下的文件名和目录名 List list = new ArrayList(); - //list.add("123"); + list.add("45646546"); //图片转PDF(病案号文件夹+类别文件夹) - //toPdf("C:/Users/Administrator/Desktop/cs/123123/", "C:/Users/Administrator/Desktop/cs/123123/" + pdfFile + ".pdf", list); - - //过个pdf合成一个 + // String str=toPdf("C:\\Users\\Administrator\\Desktop\\测试\\uploadImage\\", "C:\\Users\\Administrator\\Desktop\\测试\\" + "123.pdf", list); + // System.out.println(str); + //多个pdf合成一个 //pdtToPdf("D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\pdfFiles\\1333ad3c4d6448c89372835dbad3c364\\", "D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\pdfFiles\\typesPdf\\"+ pdfFile+".pdf", list); //图片移动 - moveTotherFolders("D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\uploads\\1333ad3c4d6448c89372835dbad3c364\\HC3SL2HENH348M8X619PMCA7GC5R3125\\2019071905226021565006922724小程序界面.png","D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\uploads\\1333ad3c4d6448c89372835dbad3c364\\SDV1QEHUPQRQ8GXJE4RQH0FGAS1V7HM0\\"); - moveTotherFolders("D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp/static\\img\\uploads\\1333ad3c4d6448c89372835dbad3c364\\HC3SL2HENH348M8X619PMCA7GC5R3125\\2019071905226021565064554400fw.jpg", "D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\uploads\\1333ad3c4d6448c89372835dbad3c364\\3\\"); + //moveTotherFolders("D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\uploads\\1333ad3c4d6448c89372835dbad3c364\\HC3SL2HENH348M8X619PMCA7GC5R3125\\2019071905226021565006922724小程序界面.png","D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\uploads\\1333ad3c4d6448c89372835dbad3c364\\SDV1QEHUPQRQ8GXJE4RQH0FGAS1V7HM0\\"); + //moveTotherFolders("D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp/static\\img\\uploads\\1333ad3c4d6448c89372835dbad3c364\\HC3SL2HENH348M8X619PMCA7GC5R3125\\2019071905226021565064554400fw.jpg", "D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\uploads\\1333ad3c4d6448c89372835dbad3c364\\3\\"); + List list1 = new ArrayList(); + list.add("C:\\Users\\HIPAA\\Desktop\\测试\\ttt.pdf"); + list.add("C:\\Users\\HIPAA\\Desktop\\测试\\sss.pdf"); + //String[] files = {"C:\\Users\\Administrator\\Desktop\\新建文件夹\\ttt.pdf", "C:\\Users\\Administrator\\Desktop\\新建文件夹\\sss.pdf"}; + String savepath = "C:\\Users\\HIPAA\\Desktop\\测试\\temp.pdf"; + //mergePdfFiles(list1, savepath); + //mergePdfFiles(list1, savepath); + //PrintToPdfUtil.copyFile("C:\\Users\\Administrator\\Desktop\\新建文件夹\\ttt.pdf", "C:\\Users\\Administrator\\Desktop\\新建文件夹\\123\\ttt.pdf"); + + List pdfList = new ArrayList(); + //pdfList.add("C:\\Users\\Administrator\\Desktop\\测试\\ttt.pdf"); + pdfList.add("C:\\Users\\HIPAA\\Desktop\\测试\\sss7.pdf"); + pdfList.add("C:\\Users\\HIPAA\\Desktop\\测试\\15511.pdf"); + //mergePdfFiles(pdfList, "C:\\Users\\Administrator\\Desktop\\测试\\合成.pdf"); + + ArrayList pdffiles = new ArrayList(); + //pdffiles.add("C:\\Users\\Administrator\\Desktop\\测试\\15511.pdf"); + // pdffiles.add("D:\\project\\yingde\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\pdfFiles\\0f6e6941028c44b8b8ea070f27480416\\HC3SL2HENH348M8X619PMCA7GC5R3125\\HC3SL2HENH348M8X619PMCA7GC5R3125.pdf"); + //boolean checkPdf=CheckPdfFiles(pdffiles); + + //System.out.println(checkPdf); + + //判断文件是否损坏 + //boolean bol=checkPdfFile("D:\\project\\yingde\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\pdfFiles\\0f6e6941028c44b8b8ea070f27480416\\HC3SL2HENH348M8X619PMCA7GC5R3125\\HC3SL2HENH348M8X619PMCA7GC5R3125.pdf"); + //System.out.println(bol); + + List files = new ArrayList(); + pdffiles.add("C:\\Users\\Administrator\\Desktop\\测试\\15511.pdf"); + pdffiles.add("C:\\Users\\Administrator\\Desktop\\测试\\153333511.pdf"); + //files.add(new File("C:\\Users\\Administrator\\Desktop\\测试\\123.pdf")); + //files.add(new File("C:\\Users\\Administrator\\Desktop\\测试\\sss.pdf")); + //files.add(new File("C:\\Users\\Administrator\\Desktop\\测试\\ttt333.pdf")); + //File f = mulFile2One(files, "C:\\Users\\Administrator\\Desktop\\测试\\mul2one.pdf"); + + //复制pdf文件 + /*File file=new File("C:\\Users\\Administrator\\Desktop\\images\\报表工具v2.4操作手册文档.pdf"); + save(file, "cc.pdf", "C:\\Users\\Administrator\\Desktop\\images");*/ + + } + + public static boolean checkPdfFile(String file) { + boolean flag1 = false; + int n = 0; + try { + //文件不存在 + File file2 = new File(file); + if (file2.exists()) { + + //文件损坏 + PdfReader reader = new PdfReader(file); + Document document = new Document(reader.getPageSize(1)); + document.open(); + n = reader.getNumberOfPages(); + if (n != 0) { + flag1 = true; + } + document.close(); + //System.out.println("pdf 存在"); + } else { + //System.out.println("pdf 不存在"); + } + + } catch (IOException e) { + //System.out.println("文件{path:" + file + "}损坏"+ e.fillInStackTrace()); + return false; + } + return flag1; + + + } + + private static boolean CheckPdfFiles(List files) { + boolean flag = false; + for (int i = 0; i < files.size(); i++) { + flag = check(files.get(i).toString()); + if (!flag) { + System.out.println(files.get(i).toString() + "文件损坏"); + } + } + return flag; + } + + /** + * 利用itext打开pdf文档 + */ + private static boolean check(String file) { + boolean flag1 = false; + int n = 0; + try { + Document document = new Document(new PdfReader(file).getPageSize(1)); + document.open(); + PdfReader reader = new PdfReader(file); + n = reader.getNumberOfPages(); + if (n != 0) + flag1 = true; + document.close(); + } catch (IOException e) { + e.printStackTrace(); + + } + return flag1; + } + + } diff --git a/src/main/java/com/emr/util/ReadFile.java b/src/main/java/com/emr/util/ReadFile.java index b9e8060f..9c3383c7 100644 --- a/src/main/java/com/emr/util/ReadFile.java +++ b/src/main/java/com/emr/util/ReadFile.java @@ -23,13 +23,13 @@ public class ReadFile { for (int i = 0; i < fileList.length; i++) { if (fileList[i].isFile()) { String fileName = fileList[i].getName(); - System.out.println("文件:" + fileName); + //System.out.println("文件:" + fileName); } if (fileList[i].isDirectory()) { //if(divList.indexOf(fileList[i].getName())!=-1) { String fileName = fileList[i].getName(); - System.out.println("目录:" + fileName); + //System.out.println("目录:" + fileName); // } } @@ -38,12 +38,12 @@ public class ReadFile { public static void printFile(File file) { if (file.isFile()) { - System.out.println("您给定的是一个文件"); // 判断给定目录是否是一个合法的目录,如果不是,输出提示 + //System.out.println("您给定的是一个文件"); // 判断给定目录是否是一个合法的目录,如果不是,输出提示 } else { File[] fileLists = file.listFiles(); // 如果是目录,获取该目录下的内容集合 for (int i = 0; i < fileLists.length; i++) { // 循环遍历这个集合内容 - System.out.println(fileLists[i].getName()); //输出元素名称 + //System.out.println(fileLists[i].getName()); //输出元素名称 if (fileLists[i].isDirectory()) { //判断元素是不是一个目录 printFile(fileLists[i]); //如果是目录,继续调用本方法来输出其子目录 } diff --git a/src/main/java/com/emr/util/UrlUtil.java b/src/main/java/com/emr/util/UrlUtil.java index 265defee..46bc7677 100644 --- a/src/main/java/com/emr/util/UrlUtil.java +++ b/src/main/java/com/emr/util/UrlUtil.java @@ -50,7 +50,7 @@ public class UrlUtil { } //有参数 String[] params = urlParts[1].split("&"); - entity.params = new HashMap<>(); + entity.params = new HashMap(); for (String param : params) { String[] keyValue = param.split("="); entity.params.put(keyValue[0], keyValue[1]); diff --git a/src/main/java/com/emr/util/test.java b/src/main/java/com/emr/util/test.java index 05104194..f1cdec2f 100644 --- a/src/main/java/com/emr/util/test.java +++ b/src/main/java/com/emr/util/test.java @@ -6,11 +6,17 @@ */ package com.emr.util; +import com.emr.webservice.MedicalRecordShowBackContent.*; +import com.lowagie.text.PageSize; +import com.lowagie.text.Rectangle; +import com.lowagie.text.pdf.PdfContentByte; +import com.lowagie.text.pdf.PdfReader; +import com.lowagie.text.pdf.PdfStamper; import org.apache.pdfbox.multipdf.PDFMergerUtility; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; - public class test { private static String[] getFiles(String folder) throws IOException { @@ -30,30 +36,134 @@ public class test { String[] filesInFolder = getFiles(folder); for (int i = 0; i < filesInFolder.length; i++){ mergePdf.addSource(folder + File.separator + filesInFolder[i]); - System.out.println(filesInFolder[i]); + //System.out.println(filesInFolder[i]); } mergePdf.setDestinationFileName(folder + File.separator + fileName); - System.out.println(folder); + // System.out.println(folder); mergePdf.mergeDocuments(); - System.out.print("done"); + //System.out.print("done"); } public static void main(String[] args) throws Exception { // TODO Auto-generated method stub - - // String folder = "D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\uploads\\pdfFiles"; + // String folder = "D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\uploads\\pdfFiles"; // String fileName = "mergedTest.pdf"; //pdfToPdf(folder, fileName); - String str = "D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\uploads\\4\\a.jpg"; + //String str = "D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\static\\img\\uploads\\4\\a.jpg"; //获得第一个点的位置 - int index = str.indexOf("\\static"); + // int index = str.indexOf("\\static"); //String result = str.substring(0,index+1); //输出结果 - System.out.println(str.substring(index, str.length())); + ///System.out.println(str.substring(index, str.length())); + // JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); + // Client client = dcf.createClient(HomepageDictionary); + // Object[] objects = client.invoke("getInfosByUserId", token, "emr_medical_record"); + // System.out.println(client); +// try { +// String endpoint = "http://120.27.212.36:9999/filing/services/HomepageDictionary?wsdl"; +// //String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl"; +// //直接引用远程的wsdl文件 +// //以下都是套路 +// Service service = new Service(); +// Call call = (Call) service.createCall(); +// call.setTargetEndpointAddress(endpoint); +// call.setOperationName(new QName("http://interfaces.ann.com/", "CheckData")); +// +// //call.setOperationName("CheckData");//WSDL里面描述的接口名称 +// call.addParameter("masterId", org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//接口的参数 +// call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型 +// String temp = "02e4ba493dc643c9926926662327995e"; +// String result = (String) call.invoke(new Object[]{temp}); +// //给方法传递参数,并且调用方法 +// +// System.out.println("result is " + result); +// +// } catch (Exception e) { +// System.err.println(e.toString()); +// +// } + + + /*String method = "CheckData"; + JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); + //Client client = factory.createClient("http://120.27.212.36:9999/filing/services/HomepageDictionary?wsdl"); + Client client = factory.createClient("http://127.0.0.1:8080/WholeCheckInterface/services/HomepageDictionary?wsdl"); +// Endpoint endpoint2 = client.getEndpoint(); +// QName opName = new QName(endpoint2.getService().getName().getNamespaceURI(), method); +// BindingInfo bindingInfo = endpoint2.getEndpointInfo().getBinding(); +// if (bindingInfo.getOperation(opName) == null) { +// for (BindingOperationInfo operationInfo : bindingInfo.getOperations()) { +// if (method.equals(operationInfo.getName().getLocalPart())) { +// opName = operationInfo.getName(); +// break; +// } +// } +// } + Object[] res = null; + res = client.invoke("CheckData","3f3d18cf-6f75-4367-9ada-3684e176c102"); + String xml = (String) res[0]; + System.err.println("@@@@@@@@@@@@@@@@@" + xml);*/ + + +// String endpoint = "http://10.6.1.152:8037/SignWebService.asmx?WSDL"; +// String method = "MedicalRecordRepair"; + + String mrFILECALLBACKRECORDxml="";//入参1 + String mrFILEINDEXCALLBACKxml="";//入参2 + + MR_FILE_CALLBACK_RECORDxml inputParam1 = new MR_FILE_CALLBACK_RECORDxml(); + inputParam1.setPATIENT_ID("2"); + inputParam1.setVISIT_ID("2"); + inputParam1.setFILE_UNIQUE_ID("1"); + inputParam1.setAPPLY_DATE_TIME("2014-04-15T10:51:39"); + inputParam1.setAPPLY_TIME_LIMIT("2014-04-15T10:51:39"); + inputParam1.setAPPLY_REASON("1"); + inputParam1.setEXPIRY_TIME("2014-04-15T10:51:39"); + MR_FILE_INDEX_CALLBACKxml inputParam2 = new MR_FILE_INDEX_CALLBACKxml(); + inputParam2.setPATIENT_ID("2"); + inputParam2.setVISIT_ID("2"); + inputParam2.setAPPLY_DATE_TIME("2014-04-15T10:51:39"); + inputParam2.setAPPLY_TIME_LIMIT("2014-04-15T10:51:39"); + inputParam2.setAPPLY_USER_NAME("1"); + inputParam2.setAPPLY_DEPT_CODE("1"); + inputParam2.setSTATUS("1"); + inputParam2.setAPPROVE_USER_ID("1"); + inputParam2.setAPPROVE_USER_NAME("1"); + inputParam2.setAPPROVE_DEPT_CODE("1"); + inputParam2.setAPPROVE_DATE_TIME("2014-04-15T10:51:39"); + inputParam2.setAPPLY_REASON("1"); + inputParam2.setCLINIC_TYPE("0"); + inputParam2.setOPERATOR_TYPE("0"); + inputParam2.setLIMIT_DATE("2014-04-15T10:51:39"); + + mrFILECALLBACKRECORDxml = XMLUtil.convertToXml(inputParam1); + mrFILEINDEXCALLBACKxml = XMLUtil.convertToXml(inputParam2); + + System.out.println(mrFILECALLBACKRECORDxml); + System.out.println(mrFILEINDEXCALLBACKxml); + +// JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); +// Client client = factory.createClient(endpoint); + SignWebService signWebService = new SignWebService(); + SignWebServiceSoap signWebServiceSoap = signWebService.getSignWebServiceSoap(); + String str = signWebServiceSoap.medicalRecordRepair(mrFILECALLBACKRECORDxml, mrFILEINDEXCALLBACKxml); + System.out.println(str); + + + + /*String file = "d:/1.pdf"; + String file2 = "d:/0.pdf"; + PdfReader pdfReader = new PdfReader(file); +// PdfStamper pt = new PdfStamper(pdfReader,new FileOutputStream(file2)); +// pt.setRotateContents(false); +// Rectangle p = pt.getOverContent(1).getPdfDocument().getPageSize(); + Rectangle p2 =pdfReader.getPageSizeWithRotation(1); +// pt.close(); + System.out.println(p2);*/ } } - + diff --git a/src/main/resources/config/applicationContext.xml b/src/main/resources/config/applicationContext.xml index b4f386d8..640dcc3a 100644 --- a/src/main/resources/config/applicationContext.xml +++ b/src/main/resources/config/applicationContext.xml @@ -11,9 +11,9 @@ http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/context + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd - http://www.springframework.org/schema/aop + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd @@ -45,8 +45,6 @@ - - diff --git a/src/main/resources/config/gennerator.properties b/src/main/resources/config/gennerator.properties index 772e265f..81ecedaa 100644 --- a/src/main/resources/config/gennerator.properties +++ b/src/main/resources/config/gennerator.properties @@ -4,10 +4,11 @@ #jdbc.username=root #jdbc.password=docus702 jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver -jdbc.url=jdbc\:sqlserver\://120.27.212.36:1433;databaseName=emr_record +#jdbc.url=jdbc\:sqlserver\://120.27.212.36:1433;databaseName=emr_record +jdbc.url=jdbc\:sqlserver\://127.0.0.1:1433;databaseName=emr_recode_test jdbc.username=sa -jdbc.password=docus@702 -#jdbc.driverLocation=D:\\project_js\\EMR_Medical_Record\\src\\main\\webapp\\WEB-INF\\lib\\sqljdbc4-2.0.jar +jdbc.password=123456 +jdbc.driverLocation=D:\\sqljdbc4-4.0.0.jar #\u6267\u884C:\u53F3\u952E Run As ---->Maven build ---->Goals:mybatis-generator:generate #\u8F93\u51FA\u76EE\u5F55 targetProject=src/main/java diff --git a/src/main/resources/config/jdbc.properties b/src/main/resources/config/jdbc.properties index bb518166..53c8f6b3 100644 --- a/src/main/resources/config/jdbc.properties +++ b/src/main/resources/config/jdbc.properties @@ -1,8 +1,5 @@ -#jdbc.driver=com.mysql.jdbc.Driver -#jdbc.url=jdbc\:mysql\://localhost\:3306/emr_record?useUnicode\=true&characterEncoding\=utf-8 -#jdbc.url=jdbc\:mysql\://120.27.212.36\:3306/emr_record?useUnicode\=true&characterEncoding\=utf-8 jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver -jdbc.url=jdbc\:sqlserver\://120.27.212.36:1433;databaseName=emr_record +jdbc.url=jdbc\:sqlserver\://120.27.212.36:1433;databaseName=emr_recode_test #jdbc.url=jdbc\:sqlserver\://10.6.1.127:1433;databaseName=DB_PrivilegeManagement_GYFY jdbc.username=sa jdbc.password=docus@702 @@ -15,18 +12,37 @@ hibernate.hbm2ddl.auto=update hibernate.current_session_context_class=thread hibernate.jdbc.batch_size=50 hibernate.enable_lazy_load_no_trans=true -#\u56FE\u7247\u5730\u5740 -pictureUrl= -#pictureUrl=src\\main\\webapp - -#\u83DC\u5355\u63A5\u53E3http://120.27.212.36:8888/power/font/getMenusByUserIdAndSysFlag -#powerUrl=http://120.27.212.36:8888/power/font/getMenusByUserIdAndSysFlag -#POWER_URLHEAD=http://120.27.212.36:8888/power -#power\u6743\u9650\u7CFB\u7EDF\u7684\u670D\u52A1\u5668\u5730\u5740\u5934\u5982\uFF1Ahttp://192.168.1.3:8081/power -powerUrl=http://192.168.1.102:8080/power/font/getMenusByUserIdAndSysFlag -POWER_URLHEAD=http://192.168.1.102:8080/power -POWER_JSP=http://192.168.1.102:8080/power -recallReason=\u533B\u9662\u9700\u8981\u8FD9\u4EFD\u6587\u6863 +#ͼƬַ +pictureUrl=C:\\Users\\Administrator\\Desktop\\test\\uploadImage +##ע⣺Զpdfַܺͱϴpdfַͬ +#ԶPDFַ +autoPdfUrl=C:/Users/Administrator/Desktop/test/autoPdf +#ϴPDFַ +pdfUrl=C:\\Users\\Administrator\\Desktop\\test\\localPdf +#PDFļڻбַ +pdfErrorUrl=C:\\Users\\Administrator\\Desktop\\test\\error\\ +# +expired=7 +# +deathExpired=7 + +#powerUrl=http://127.0.0.1:8080/power/font/getMenusByUserIdAndSysFlag +#POWER_URLHEAD=http://127.0.0.1:8080/power +#POWER_JSP=http://127.0.0.1:8080/power +#recallReason=ҽԺҪĵ +#HomepageDictionary=http://127.0.0.1:8080/WholeCheckInterface/services/HomepageDictionary?wsdl +#HomepageMethod=CheckData +#powerGetUserList=http://127.0.0.1:8080/power/font/getUserList?userName=admin + +powerUrl=http://127.0.0.1:9999/power/font/getMenusByUserIdAndSysFlag +POWER_URLHEAD=http://127.0.0.1:9999/power +POWER_JSP=http://127.0.0.1:9999/power +recallReason=ҽԺҪĵ +HomepageDictionary=http://127.0.0.1:9999/WholeCheckInterface/services/HomepageDictionary?wsdl +HomepageMethod=CheckData +powerGetUserList=http://127.0.0.1:9999/power/font/getUserList?userName=admin + + diff --git a/src/main/resources/config/log4j.properties b/src/main/resources/config/log4j.properties index 5ba9039b..ae403fd7 100644 --- a/src/main/resources/config/log4j.properties +++ b/src/main/resources/config/log4j.properties @@ -1,3 +1,4 @@ + #Debug,info,warning,error #log4j.rootLogger=debug,stdout,logfile #log4j.addivity.org.apache=true diff --git a/src/main/resources/config/mybatis-config.xml b/src/main/resources/config/mybatis-config.xml index 2355d4f0..03aea53f 100644 --- a/src/main/resources/config/mybatis-config.xml +++ b/src/main/resources/config/mybatis-config.xml @@ -6,6 +6,7 @@ + diff --git a/src/main/resources/config/spring-shiro.xml b/src/main/resources/config/spring-shiro.xml index 0de209db..76f9a791 100644 --- a/src/main/resources/config/spring-shiro.xml +++ b/src/main/resources/config/spring-shiro.xml @@ -26,6 +26,7 @@ /batch/**=anon /css/**=anon /js/**=anon + /noauthc/**=anon /home=perms[home] /admin=roles["admin"] diff --git a/src/main/resources/generatorConfig.xml b/src/main/resources/generatorConfig.xml index bc97dcbc..6e52e257 100644 --- a/src/main/resources/generatorConfig.xml +++ b/src/main/resources/generatorConfig.xml @@ -101,9 +101,13 @@ - + selectByExampleQueryId="false"/>--> +
\ 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 96e98e11..cc360aa7 100644 --- a/src/main/resources/mapper/Archive_DetailMapper.xml +++ b/src/main/resources/mapper/Archive_DetailMapper.xml @@ -12,6 +12,8 @@ + + @@ -24,6 +26,7 @@ + @@ -31,15 +34,21 @@ + + + + + + id, PDF_PATH, MasterID, UpLoadDateTime, AssortID, Source, SubAssort, Title, flag, - Sys + Sys,page_number + + delete from archive_detail @@ -140,8 +206,24 @@ and AssortID = #{assortid,jdbcType=NVARCHAR} + + and PDF_PATH = #{pdfPath,jdbcType=NVARCHAR} + - + + delete from archive_detail + where 1=1 + + and MasterID = #{masterid,jdbcType=NVARCHAR} + + + and AssortID = #{assortid,jdbcType=NVARCHAR} + + + and PDF_PATH like #{pdfPath,jdbcType=NVARCHAR} + + + delete from archive_detail where id = #{id,jdbcType=NVARCHAR} @@ -149,11 +231,11 @@ insert into archive_detail (id, PDF_PATH, MasterID, UpLoadDateTime, AssortID, Source, SubAssort, Title, flag, - Sys) + Sys,page_number,del_assortID) values ((select replace(newid(),'-','')), #{pdfPath,jdbcType=NVARCHAR}, #{masterid,jdbcType=NVARCHAR}, #{uploaddatetime,jdbcType=NVARCHAR}, #{assortid,jdbcType=NVARCHAR}, #{source,jdbcType=NVARCHAR}, #{subassort,jdbcType=NVARCHAR}, #{title,jdbcType=NVARCHAR}, #{flag,jdbcType=NVARCHAR}, - #{sys,jdbcType=NVARCHAR}) + #{sys,jdbcType=NVARCHAR},#{pageNumber,jdbcType=INTEGER}, #{delAssortID,jdbcType=NVARCHAR}) insert into archive_detail @@ -188,6 +270,13 @@ Sys, + + page_number, + + + del_assortID, + + @@ -220,6 +309,12 @@ #{sys,jdbcType=NVARCHAR}, + + #{pageNumber,jdbcType=INTEGER}, + + + #{delAssortID,jdbcType=NVARCHAR}, + @@ -246,12 +341,18 @@ Title = #{title,jdbcType=NVARCHAR}, - + flag = #{flag,jdbcType=NVARCHAR}, Sys = #{sys,jdbcType=NVARCHAR}, + + page_number=#{pageNumber,jdbcType=INTEGER}, + + + del_assortID=#{delAssortID,jdbcType=NVARCHAR}, + where id = #{id,jdbcType=NVARCHAR} @@ -265,7 +366,9 @@ SubAssort = #{subassort,jdbcType=NVARCHAR}, Title = #{title,jdbcType=NVARCHAR}, flag = #{flag,jdbcType=NVARCHAR}, - Sys = #{sys,jdbcType=NVARCHAR} + Sys = #{sys,jdbcType=NVARCHAR}, + page_number=#{pageNumber,jdbcType=INTEGER}, + del_assortID=#{delAssortID,jdbcType=NVARCHAR} where id = #{id,jdbcType=NVARCHAR} \ No newline at end of file diff --git a/src/main/resources/mapper/Archive_MasterMapper.xml b/src/main/resources/mapper/Archive_MasterMapper.xml index fbe97aba..a72fe01c 100644 --- a/src/main/resources/mapper/Archive_MasterMapper.xml +++ b/src/main/resources/mapper/Archive_MasterMapper.xml @@ -22,65 +22,118 @@ + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, patient_id, inp_no, visit_id, name, sex, dept_name, discharge_date_time, ArchiveState, - admission_date_time, dept_admission_to, check_doctor, check_datetime, checked_doctor, - checked_datetime, LockInfo, DOCTOR_IN_CHARGE, ID_NO, DISCHARGE_DISPOSITION, dept_code_lend + admission_date_time, dept_admission_to, check_doctor, check_datetime, checked_doctor, transfer_dept, + checked_datetime, LockInfo, DOCTOR_IN_CHARGE, ID_NO, DISCHARGE_DISPOSITION, dept_code_lend,isscaned,is_scanning, + cmt_doctor,cmt_nurse,doctor_name,nurse_name,cmt_doctor_date,cmt_nurse_date,emr_doctor_cmt,emr_nure_cmt,death_flag,bed_number - select from archive_master where id = #{id,jdbcType=NVARCHAR} - + select DISTINCT m.id,m.patient_id,m.inp_no,m.visit_id,m.name,m.sex,f.name + dept_name,CONVERT(varchar(10),m.discharge_date_time, 120) discharge_date_time,m.ArchiveState,CONVERT(varchar(10),m.admission_date_time, 120) admission_date_time,d.name dept_admission_to + ,m.check_doctor,m.checked_datetime,m.checked_doctor,m.LockInfo,m.DOCTOR_IN_CHARGE,m.ID_NO,m.DISCHARGE_DISPOSITION,m.dept_code_lend,m.isscaned, + m.cmt_doctor,m.cmt_nurse,m.doctor_name,m.nurse_name,m.cmt_doctor_date,m.cmt_nurse_date,m.emr_doctor_cmt,m.emr_nure_cmt,m.death_flag,m.first_instance,m.is_scanning,bed_number,amf.following_type from archive_master m - LEFT JOIN emr_dictionary d + LEFT JOIN (select code,name from emr_dictionary where parent_id=(select id from emr_dictionary where + typeCode='dept_code' )) d on m.dept_admission_to=d.code - LEFT JOIN emr_dictionary f + LEFT JOIN (select code,name from emr_dictionary where parent_id=(select id from emr_dictionary where + typeCode='dept_code' )) f on m.dept_name=f.code - where 1=1 and ArchiveState in('初审') + left join Archive_Master_Following amf + on m.id=amf.master_id and amf.following_type=9 + where 1=1 and ArchiveState in('初审') and m.id = #{id,jdbcType=NVARCHAR} and m.inp_no like '%'+#{inpNo,jdbcType=NCHAR}+'%' + + and m.bed_number like '%'+#{bedNumber,jdbcType=NVARCHAR}+'%' + and m.visit_id=#{visitId,jdbcType=NCHAR} @@ -318,25 +415,38 @@ and m.dept_code_lend = #{deptCodeLend,jdbcType=NVARCHAR} + + and m.isscaned = #{isscaned,jdbcType=NVARCHAR} + + + and m.is_scanning = #{isScanning,jdbcType=NVARCHAR} + + ORDER BY m.discharge_date_time desc - + + + + delete from archive_master where id = #{id,jdbcType=NVARCHAR} @@ -427,14 +733,14 @@ admission_date_time, dept_admission_to, check_doctor, check_datetime, checked_doctor, checked_datetime, LockInfo, DOCTOR_IN_CHARGE, ID_NO, - DISCHARGE_DISPOSITION, dept_code_lend) + DISCHARGE_DISPOSITION, dept_code_lend,isscaned,first_instance) values (#{id,jdbcType=NVARCHAR}, #{patientId,jdbcType=NVARCHAR}, #{inpNo,jdbcType=NVARCHAR}, #{visitId,jdbcType=NVARCHAR}, #{name,jdbcType=NVARCHAR}, #{sex,jdbcType=NVARCHAR}, #{deptName,jdbcType=NVARCHAR}, #{dischargeDateTime,jdbcType=NVARCHAR}, #{archivestate,jdbcType=NVARCHAR}, #{admissionDateTime,jdbcType=NVARCHAR}, #{deptAdmissionTo,jdbcType=NVARCHAR}, #{checkDoctor,jdbcType=NVARCHAR}, #{checkDatetime,jdbcType=NVARCHAR}, #{checkedDoctor,jdbcType=NVARCHAR}, #{checkedDatetime,jdbcType=NVARCHAR}, #{lockinfo,jdbcType=NVARCHAR}, #{doctorInCharge,jdbcType=NVARCHAR}, #{idNo,jdbcType=NVARCHAR}, - #{dischargeDisposition,jdbcType=NVARCHAR}, #{deptCodeLend,jdbcType=NVARCHAR}) + #{dischargeDisposition,jdbcType=NVARCHAR}, #{deptCodeLend,jdbcType=NVARCHAR}, #{isscaned,jdbcType=NVARCHAR}, #{firstInstance,jdbcType=NVARCHAR}) insert into archive_master @@ -499,6 +805,12 @@ dept_code_lend, + + isscaned, + + + first_instance, + @@ -561,6 +873,12 @@ #{deptCodeLend,jdbcType=NVARCHAR}, + + #{isscaned,jdbcType=NVARCHAR}, + + + #{firstInstance,jdbcType=NVARCHAR}, + @@ -623,6 +941,42 @@ dept_code_lend = #{deptCodeLend,jdbcType=NVARCHAR}, + + isscaned = #{isscaned,jdbcType=NVARCHAR}, + + + is_scanning = #{isScanning,jdbcType=NVARCHAR}, + + + cmt_doctor = #{cmtDoctor,jdbcType=INTEGER}, + + + cmt_nurse = #{cmtNurse,jdbcType=INTEGER}, + + + doctor_name = #{doctorName,jdbcType=NVARCHAR}, + + + nurse_name = #{nurseName,jdbcType=NVARCHAR}, + + + cmt_doctor_date = #{cmtDoctorDate,jdbcType=NVARCHAR}, + + + cmt_doctor_date=null, + + + cmt_nurse_date = #{cmtNurseDate,jdbcType=NVARCHAR}, + + + cmt_nurse_date=null, + + + first_instance=#{firstInstance,jdbcType=NVARCHAR}, + + + score=#{score,jdbcType=NVARCHAR}, + where id = #{id,jdbcType=NVARCHAR} @@ -646,7 +1000,229 @@ DOCTOR_IN_CHARGE = #{doctorInCharge,jdbcType=NVARCHAR}, ID_NO = #{idNo,jdbcType=NVARCHAR}, DISCHARGE_DISPOSITION = #{dischargeDisposition,jdbcType=NVARCHAR}, - dept_code_lend = #{deptCodeLend,jdbcType=NVARCHAR} + dept_code_lend = #{deptCodeLend,jdbcType=NVARCHAR}, + isscaned = #{isscaned,jdbcType=NVARCHAR}, + is_scanning = #{isScanning,jdbcType=NVARCHAR}, + first_instance=#{firstInstance,jdbcType=NVARCHAR} + bed_number=#{bedNumber,jdbcType=NVARCHAR} where id = #{id,jdbcType=NVARCHAR} + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Emr_DictionaryMapper.xml b/src/main/resources/mapper/Emr_DictionaryMapper.xml index 682c10b7..097f716e 100644 --- a/src/main/resources/mapper/Emr_DictionaryMapper.xml +++ b/src/main/resources/mapper/Emr_DictionaryMapper.xml @@ -65,9 +65,9 @@ diff --git a/src/main/resources/mapper/Emr_Fault_DetailMapper.xml b/src/main/resources/mapper/Emr_Fault_DetailMapper.xml index b8c3c911..89b1f4dc 100644 --- a/src/main/resources/mapper/Emr_Fault_DetailMapper.xml +++ b/src/main/resources/mapper/Emr_Fault_DetailMapper.xml @@ -7,7 +7,8 @@ - + + @@ -16,6 +17,12 @@ + + + + + + @@ -23,6 +30,7 @@ + @@ -47,163 +55,202 @@ + + + + + + + + + + + - id, archive_detail_id, assort_id, parent_id, content, score, back_content, first_trial,state,recall_reason - creater, create_time, updater, update_time + id, archive_detail_id, assort_id, parent_id, content,price, score, back_content, first_trial,state,recall_reason + creater, create_time, updater, update_time,back_flag,deal_flag,deal_person,deal_time,archive_state - + select from emr_fault_detail - where id = #{id,jdbcType=INTEGER} + where 1=1 and id = #{id,jdbcType=INTEGER} + + + - WHERE t.rid = 1 - - and t.archive_detail_id = #{archiveDetailId,jdbcType=NVARCHAR} + - + delete from emr_fault_detail where id = #{id,jdbcType=INTEGER} + + delete from emr_fault_detail + where 1=1 and back_flag is null and state is not null + + and archive_detail_id = #{archiveDetailId,jdbcType=NVARCHAR} + + + + + delete from emr_fault_detail + where 1=1 and back_flag is null + + and archive_detail_id = #{archiveDetailId,jdbcType=NVARCHAR} + + insert into emr_fault_detail (id, archive_detail_id, assort_id, - parent_id, content, score, + parent_id, content,price, score, back_content, first_trial,state,recall_reason,creater, create_time, updater, update_time ) values (#{id,jdbcType=INTEGER}, #{archiveDetailId,jdbcType=NVARCHAR}, #{assortId,jdbcType=NVARCHAR}, - #{parentId,jdbcType=INTEGER}, #{content,jdbcType=NVARCHAR}, #{score,jdbcType=DECIMAL}, + #{parentId,jdbcType=INTEGER}, #{content,jdbcType=NVARCHAR}, #{price,jdbcType=DECIMAL}, #{score,jdbcType=DECIMAL}, #{backContent,jdbcType=NVARCHAR}, #{firstTrial,jdbcType=NVARCHAR}, #{state,jdbcType=NVARCHAR}, #{recallReason,jdbcType=VARCHAR}, #{creater,jdbcType=NVARCHAR}, #{createTime,jdbcType=NCHAR}, #{updater,jdbcType=NVARCHAR}, #{updateTime,jdbcType=NCHAR} ) @@ -226,6 +273,9 @@ content, + + price, + score, @@ -253,6 +303,18 @@ update_time, + + back_flag, + + + deal_flag, + + + archive_state, + + + minus_point, + @@ -270,6 +332,9 @@ #{content,jdbcType=NVARCHAR}, + + #{price,jdbcType=DECIMAL}, + #{score,jdbcType=DECIMAL}, @@ -297,6 +362,18 @@ #{updateTime,jdbcType=NCHAR}, + + #{backFlag,jdbcType=NVARCHAR}, + + + #{dealFlag,jdbcType=NVARCHAR}, + + + #{archiveState,jdbcType=NVARCHAR}, + + + #{minusPoint,jdbcType=NVARCHAR}, + @@ -314,6 +391,9 @@ content = #{content,jdbcType=NVARCHAR}, + + price = #{price,jdbcType=DECIMAL}, + score = #{score,jdbcType=DECIMAL}, @@ -341,6 +421,21 @@ update_time = #{updateTime,jdbcType=NCHAR}, + + back_flag= #{backFlag,jdbcType=NCHAR}, + + + deal_flag= #{dealFlag,jdbcType=NVARCHAR}, + + + deal_person= #{dealPerson,jdbcType=NVARCHAR}, + + + deal_time= #{dealTime,jdbcType=NVARCHAR}, + + + archive_state=#{archiveState,jdbcType=NVARCHAR}, + where id = #{id,jdbcType=INTEGER} @@ -350,6 +445,7 @@ assort_id = #{assortId,jdbcType=NVARCHAR}, parent_id = #{parentId,jdbcType=INTEGER}, content = #{content,jdbcType=NVARCHAR}, + price = #{price,jdbcType=DECIMAL}, score = #{score,jdbcType=DECIMAL}, back_content = #{backContent,jdbcType=NVARCHAR}, first_trial = #{firstTrial,jdbcType=NVARCHAR}, @@ -358,7 +454,118 @@ creater = #{creater,jdbcType=NVARCHAR}, create_time = #{createTime,jdbcType=NCHAR}, updater = #{updater,jdbcType=NVARCHAR}, - update_time = #{updateTime,jdbcType=NCHAR} + update_time = #{updateTime,jdbcType=NCHAR}, + archive_state=#{archiveState,jdbcType=NVARCHAR} where id = #{id,jdbcType=INTEGER} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Emr_Fault_TypeMapper.xml b/src/main/resources/mapper/Emr_Fault_TypeMapper.xml index b8f1dd95..8bbcc7bf 100644 --- a/src/main/resources/mapper/Emr_Fault_TypeMapper.xml +++ b/src/main/resources/mapper/Emr_Fault_TypeMapper.xml @@ -8,6 +8,7 @@ + @@ -15,7 +16,7 @@ - id, archive_detail_id, type_flag, type_name, type_sort, effective, remark, creater, + id, archive_detail_id, type_flag, type_name, type_sort, effective,price, remark, creater, create_time, updater, update_time delete from emr_fault_type @@ -66,11 +69,11 @@ insert into emr_fault_type (id, archive_detail_id, type_flag, - type_name, type_sort, effective, + type_name, type_sort, effective, price, remark, creater, create_time, updater, update_time) values (#{id,jdbcType=INTEGER}, #{archiveDetailId,jdbcType=NVARCHAR}, #{typeFlag,jdbcType=NVARCHAR}, - #{typeName,jdbcType=NVARCHAR}, #{typeSort,jdbcType=INTEGER}, #{effective,jdbcType=INTEGER}, + #{typeName,jdbcType=NVARCHAR}, #{typeSort,jdbcType=INTEGER}, #{effective,jdbcType=INTEGER}, #{price,jdbcType=DECIMAL}, #{remark,jdbcType=NVARCHAR}, #{creater,jdbcType=NVARCHAR}, #{createTime,jdbcType=NCHAR}, #{updater,jdbcType=NVARCHAR}, #{updateTime,jdbcType=NCHAR}) @@ -95,6 +98,9 @@ effective, + + price, + remark, @@ -130,6 +136,9 @@ #{effective,jdbcType=INTEGER}, + + #{price,jdbcType=DECIMAL}, + #{remark,jdbcType=NVARCHAR}, @@ -165,6 +174,9 @@ effective = #{effective,jdbcType=INTEGER}, + + price=#{price,jdbcType=DECIMAL}, + remark = #{remark,jdbcType=NVARCHAR}, @@ -190,6 +202,7 @@ type_name = #{typeName,jdbcType=NVARCHAR}, type_sort = #{typeSort,jdbcType=INTEGER}, effective = #{effective,jdbcType=INTEGER}, + price=#{score,jdbcType=DECIMAL}, remark = #{remark,jdbcType=NVARCHAR}, creater = #{creater,jdbcType=NVARCHAR}, create_time = #{createTime,jdbcType=NCHAR}, diff --git a/src/main/resources/mapper/Emr_LogMapper.xml b/src/main/resources/mapper/Emr_LogMapper.xml index 4e93cee1..75c6f476 100644 --- a/src/main/resources/mapper/Emr_LogMapper.xml +++ b/src/main/resources/mapper/Emr_LogMapper.xml @@ -160,32 +160,35 @@ where log_id = #{logId,jdbcType=INTEGER} @@ -149,12 +161,67 @@ group by dept_name) as t7 on c.dept_name= t7.dept_name left join (SELECT code,Name FROM emr_dictionary ) as t8 on c.dept_name=t8.code ) v_count where 1=1 + + + - and deptCode = #{deptCode,jdbcType=NVARCHAR} + and deptCode in + + #{item} + + - and deptName = #{deptName,jdbcType=NVARCHAR} - and deptName is not null + and deptName in + + #{item} + + and deptName is not null + + + + + + + - \ No newline at end of file diff --git a/src/main/test/java/com/emr/MapperTest.java b/src/main/test/java/com/emr/MapperTest.java index 80ac6ef6..593a6299 100644 --- a/src/main/test/java/com/emr/MapperTest.java +++ b/src/main/test/java/com/emr/MapperTest.java @@ -25,7 +25,7 @@ public class MapperTest { //1、创建SpringIOC容器 ApplicationContext ioc=new FileSystemXmlApplicationContext("classpath:config/applicationContext.xml"); PaperDao paper=ioc.getBean(PaperDao.class); - System.out.println(paper); - System.out.println(123); + //System.out.println(paper); + //System.out.println(123); } } diff --git a/src/main/webapp/WEB-INF/jspf/comm.jspf b/src/main/webapp/WEB-INF/jspf/comm.jspf index 8e7ce70b..ae6887c5 100644 --- a/src/main/webapp/WEB-INF/jspf/comm.jspf +++ b/src/main/webapp/WEB-INF/jspf/comm.jspf @@ -5,19 +5,25 @@ <%----%> - + + + + + + + <%----%> @@ -37,5 +43,4 @@ <%----%> <%--pdf---%> - \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp b/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp index 0ec7c8c1..5064d829 100644 --- a/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp +++ b/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp @@ -1,14 +1,32 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" %> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<% + ResourceBundle res = ResourceBundle.getBundle("config.jdbc"); +%> 出院浏览 - + + + + + <%@include file="../../jspf/comm.jspf" %> <%@ include file="../../jspf/ztreeCommom.jsp" %> + <%----%> + <%----%> +<%--
--%> + <%--
--%> + <%--

在院浏览

--%> + <%--
--%> + <%--
--%>
+ +
<%--
--%> - <%----%> - <%----%> + <%----%> + <%----%> <%--
--%>
@@ -149,19 +199,23 @@
<%--
--%> - <%----%> - <%----%> + <%----%> + <%----%> <%--
--%> -
- - --%> + <%----%> + <%--<%––%>--%> + <%--<%––%>--%> + <%--<%––%>--%> + <%--<%––%>--%> + <%--<%––%>--%> + <%--<%––%>--%> + <%----%> +
@@ -180,7 +234,7 @@
-
+
+
+ 入院科室:
入院日期:
-
- 完整性审核: -
-
- <%--
--%> - <%--<%–
–%>--%> - <%--<%–离院方式:–%>--%> - <%--<%–
–%>--%> - <%--<%–
–%>--%> - <%--<%–主管医生:–%>--%> - <%--<%–
–%>--%> - <%--
--%> - + <%--完整性审核:--%> <%--
--%> +
+ <%--
--%> + <%--<%–
–%>--%> + <%--<%–离院方式:–%>--%> + <%--<%–
–%>--%> + <%--<%–
–%>--%> + <%--<%–主管医生:–%>--%> + <%--<%–
–%>--%> + <%--
--%> + <%--
--%> <%--
--%>
@@ -271,7 +323,8 @@
- +
@@ -292,15 +345,27 @@
+ - + + <%----%> +
-
+
+
+ 只显示作废 + <%----%> +
@@ -315,7 +380,7 @@