From c9c692c377a3891d17a0d0b5e5212fbbfc917af0 Mon Sep 17 00:00:00 2001 From: hujl Date: Thu, 17 Feb 2022 14:11:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=EF=BC=9A=E9=80=80=E5=9B=9E?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=B7=B2=E8=A2=AB=E6=94=B9=E5=8A=A8=E6=9A=82?= =?UTF-8?q?=E6=97=B6=E5=8E=BB=E6=8E=89=EF=BC=8C=E7=BC=BA=E9=99=B7=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E5=AD=97=E6=AE=B5=E7=AD=89=E3=80=81=E7=A7=91=E4=B8=BB?= =?UTF-8?q?=E4=BB=BB=E6=8F=90=E4=BA=A4=E4=B8=8D=E8=AE=BE=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=87=BA=E9=99=A2=E6=97=A5=E6=9C=9F=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/emr/controller/faultController.java | 66 +++++++++++++------ .../ipml/Emr_Fault_DetailServiceImpl.java | 48 +++++++------- .../mapper/Archive_Master_FollowingMapper.xml | 1 + .../mapper/Emr_Fault_DetailMapper.xml | 15 +++-- .../WEB-INF/views/commitDir/commitList.jsp | 4 +- .../WEB-INF/views/faultDir/faultList.jsp | 5 +- 6 files changed, 86 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/emr/controller/faultController.java b/src/main/java/com/emr/controller/faultController.java index 113b9917..c9139a1c 100644 --- a/src/main/java/com/emr/controller/faultController.java +++ b/src/main/java/com/emr/controller/faultController.java @@ -16,6 +16,7 @@ import com.emr.service.PowerUserService; import com.emr.util.ThreadExcelUtils; import com.google.common.base.Function; import com.google.common.collect.Maps; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; @@ -62,8 +63,8 @@ public class faultController { @RequestMapping(value = "/exportExcel") public void exportExcel(HttpServletResponse response, Emr_Fault_Vo emrFaultVo) throws Exception { response.setContentType("application/vnd.ms-excel;charset=UTF-8"); - String[] header = {"病历清单id","住院号","住院次数","姓名","出院科室","出院日期","归档状态","评分","主管医生","退回总次数","退回总费用(元)","当前退回次数","退回费用","退回人","退回时间","回退内容","缺陷选项","缺陷评分","缺陷内容","创建人","创建时间"}; - String[] fileNames = {"archiveDetailId","inpNo","visitId","name","deptName","dischargeDateTime","archivestate","price","doctorInCharge","totalBackNum","totalBackFee","backNum","backFee","updater","updateTime","backContent","assortName","score","content","creater","createTime"}; + String[] header = {"病历清单id","住院号","住院次数","姓名","出院科室","出院日期","归档状态","评分","主管医生","退回总次数","退回总费用(元)","当前退回次数","退回费用","退回人","退回时间","缺陷选项","缺陷评分","缺陷内容","创建人","创建时间"};//,"回退内容" + String[] fileNames = {"archiveDetailId","inpNo","visitId","name","deptName","dischargeDateTime","archivestate","price","doctorInCharge","totalBackNum","totalBackFee","backNum","backFee","updater","updateTime","assortName","score","content","creater","createTime"};//,"backContent" //文件名 String fileName = "缺陷信息数据" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls"; //构造excel的数据 @@ -74,6 +75,7 @@ public class faultController { List backList =emrFaultDetailService.faultBackScoreList(emrFaultVo); //退回总次数、总费用和总评分 List masterList=emrFaultDetailService.masterTotalList(emrFaultVo); + if(list!=null && list.size()>0){ if(backList!=null && backList.size()>0){ if(masterList!=null && masterList.size()>0){ @@ -82,8 +84,6 @@ public class faultController { faultInfo.setBackFee("0"); faultInfo.setBackNum("0"); faultInfo.setUpdater(null); - faultInfo.setUpdateTime(null); - faultInfo.setContent(null); faultInfo.setTotalBackNum("0"); faultInfo.setTotalBackFee("0"); //退回总次数、总费用和总评分 @@ -104,13 +104,14 @@ public class faultController { faultInfo.setPrice(new BigDecimal(100)); } } + //获取病案退回是第几次 updater为退回人 for (Emr_Fault_Vo backInfo : backList) { if(faultInfo.getArchiveDetailId().equals(backInfo.getArchiveDetailId())) { if(backInfo.getCreateTime()!=null && backInfo.getCreateTime()!=""){ if(backInfo.getStartDateTo()!=null && backInfo.getStartDateTo()!="" && backInfo.getEndDateTo()!=null && backInfo.getEndDateTo()!=""){ SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss"); - Date nowTime = ft.parse(backInfo.getCreateTime()); + Date nowTime = ft.parse(faultInfo.getCreateTime()); Date startTime = ft.parse(backInfo.getStartDateTo()); Date endTime = ft.parse(backInfo.getEndDateTo()); if( isEffectiveDate(nowTime,startTime,endTime)){ @@ -118,40 +119,65 @@ public class faultController { faultInfo.setEndDateTo(backInfo.getEndDateTo()); faultInfo.setBackNum(backInfo.getBackNum()); faultInfo.setUpdater(backInfo.getCreater()); - faultInfo.setUpdateTime(backInfo.getCreateTime()); - faultInfo.setContent(backInfo.getContent()); + //System.out.println(backInfo.getCreateTime()); + if(StringUtils.isNotBlank(backInfo.getEndDateTo())){ + faultInfo.setUpdateTime(backInfo.getEndDateTo()); + }else{ + faultInfo.setUpdateTime(backInfo.getStartDateTo()); + } + faultInfo.setBackContent(backInfo.getContent()); + break; + } - } - else if(faultInfo.getEndDateTo()!=null && faultInfo.getEndDateTo()!=""){ + }else if(faultInfo.getEndDateTo()!=null && faultInfo.getEndDateTo()!=""){ if(compare(backInfo.getCreateTime(),faultInfo.getEndDateTo())){ faultInfo.setBackNum(backInfo.getBackNum()); faultInfo.setUpdater(backInfo.getCreater()); - faultInfo.setUpdateTime(backInfo.getCreateTime()); - faultInfo.setContent(backInfo.getContent()); + //System.out.println(backInfo.getCreateTime()); + if(StringUtils.isNotBlank(backInfo.getEndDateTo())){ + faultInfo.setUpdateTime(backInfo.getEndDateTo()); + }else{ + faultInfo.setUpdateTime(backInfo.getStartDateTo()); + } + faultInfo.setBackContent(backInfo.getContent()); + break; } }else if(faultInfo.getStartDateTo()!=null && faultInfo.getStartDateTo()!=""){ if(compare(faultInfo.getStartDateTo(),backInfo.getCreateTime())){ faultInfo.setBackNum(backInfo.getBackNum()); faultInfo.setUpdater(backInfo.getCreater()); - faultInfo.setUpdateTime(backInfo.getCreateTime()); - faultInfo.setContent(backInfo.getContent()); + if(StringUtils.isNotBlank(backInfo.getEndDateTo())){ + faultInfo.setUpdateTime(backInfo.getEndDateTo()); + }else{ + faultInfo.setUpdateTime(backInfo.getStartDateTo()); + } + faultInfo.setBackContent(backInfo.getContent()); + break; } } + } } } + + + } + + if(backList.size()>0) { + ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames); + /* System.out.println("开始执行导出......."); + long start = System.currentTimeMillis();*/ + String result = utils.exportExcelToFilePath(response, utils.listConvert(list)); + /* long end = System.currentTimeMillis(); + System.out.println("耗时:" + (end - start) / 1000 + "秒");*/ } } } + } - ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames); - /* System.out.println("开始执行导出......."); - long start = System.currentTimeMillis();*/ - String result=utils.exportExcelToFilePath(response,utils.listConvert(list)); - /* long end = System.currentTimeMillis(); - System.out.println("耗时:" + (end - start) / 1000 + "秒");*/ + } public boolean compare(String time1,String time2) throws ParseException { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -186,7 +212,7 @@ public class faultController { Calendar end = Calendar.getInstance(); end.setTime(endTime); - + // end.add(end.DATE,-1); if (date.after(begin) && date.before(end)) { return true; } else { 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 b4ac34ab..3ca1e3ac 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 @@ -32,6 +32,7 @@ import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Service public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { @@ -373,11 +374,14 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { if(list!=null && list.size()>0){ Archive_Master_Following archiveMasterFollowing=new Archive_Master_Following(); archiveMasterFollowing.setFollowingType("9"); + if(StringUtils.isNotBlank(emrFaultVo.getArchiveDetailId())){ + archiveMasterFollowing.setMasterId(emrFaultVo.getArchiveDetailId()); + } //根据条件查询跟随流程记录的退回次数排序列表,remark暂存退回次数 List followList =archiveMasterFollowingMapper.selByCol(archiveMasterFollowing); + List followList2=null; if(followList!=null && followList.size()>0){ //Boolean bol=false; - JSONArray powerUsers = powerUserService.getPowerUserList("1"); List powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class); if (powerUserList != null){ @@ -387,32 +391,33 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService { return temp.getString("userName"); }}); for (Emr_Fault_Vo emr_fault_vo : list) { - - JSONObject 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")); + if(StringUtils.isNotBlank(emr_fault_vo.getCreater())) { + JSONObject 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")); + } } - + followList2= followList.stream().filter(u -> (u.getMasterId()).equals(emr_fault_vo.getArchiveDetailId()) && u.getHandleTime()!=null && u.getHandleTime()!="").collect(Collectors.toList()); //退回次数 - for(int i=0;i and CONVERT(VARCHAR(20),handle_name,23) = #{handleName,jdbcType=NVARCHAR} + order by handle_time