From 7b7c30e3386a5d2df01da2b29cf3ba26c14bef36 Mon Sep 17 00:00:00 2001 From: zengwh <81383286@qq.com> Date: Tue, 3 Aug 2021 16:42:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BD=92=E6=A1=A3=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/emr/controller/RecordController.java | 2 +- .../com/emr/service/ipml/RecordService.java | 2 +- .../emr/service/ipml/V_CountServiceImpl.java | 9 ++- .../com/emr/service/ipml/WorkHomeService.java | 79 ++++++++++++++++--- .../resources/mapper/Archive_MasterMapper.xml | 37 ++++++--- src/main/resources/mapper/V_CountMapper.xml | 24 ++---- .../WEB-INF/views/workHome/recordData.jsp | 9 ++- 7 files changed, 118 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/emr/controller/RecordController.java b/src/main/java/com/emr/controller/RecordController.java index 4da5f9f..ab2cfae 100644 --- a/src/main/java/com/emr/controller/RecordController.java +++ b/src/main/java/com/emr/controller/RecordController.java @@ -70,7 +70,7 @@ public class RecordController { } } offsetLimitPage.setRows(list); - request.getSession().removeAttribute("unSubmitRecords"); + //request.getSession().removeAttribute("unSubmitRecords"); return offsetLimitPage; } diff --git a/src/main/java/com/emr/service/ipml/RecordService.java b/src/main/java/com/emr/service/ipml/RecordService.java index 2fcc64b..5015ee9 100644 --- a/src/main/java/com/emr/service/ipml/RecordService.java +++ b/src/main/java/com/emr/service/ipml/RecordService.java @@ -64,7 +64,7 @@ public class RecordService { //填充各个角色数据、主要填充已提交的 selectList(unSubmitRecords); } - request.getSession().setAttribute("unSubmitRecords",unSubmitRecords); + //request.getSession().setAttribute("unSubmitRecords",unSubmitRecords); return unSubmitRecords; } 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 b9b93db..400091f 100644 --- a/src/main/java/com/emr/service/ipml/V_CountServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/V_CountServiceImpl.java @@ -12,6 +12,7 @@ import com.emr.service.V_CountService; import com.emr.vo.V_CountVo; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import org.apache.shiro.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,7 +25,13 @@ public class V_CountServiceImpl implements V_CountService { @Override public List selectByCol(V_CountVo record) { - return vCountMapper.selectByCol(record); + List counts = vCountMapper.selectByCol(record); + if(!CollectionUtils.isEmpty(counts)){ + for(V_Count count :counts){ + count.setUnfileNum(count.getOutNum() - count.getFileNum()); + } + } + return counts; } @Override diff --git a/src/main/java/com/emr/service/ipml/WorkHomeService.java b/src/main/java/com/emr/service/ipml/WorkHomeService.java index e0383ac..63342c9 100644 --- a/src/main/java/com/emr/service/ipml/WorkHomeService.java +++ b/src/main/java/com/emr/service/ipml/WorkHomeService.java @@ -11,6 +11,7 @@ import org.apache.shiro.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -137,6 +138,8 @@ public class WorkHomeService { int admissCount = 0; //定义归档数量 int recordCount = 0; + //定义出科数量 + int sumbitCount = 0; if(!CollectionUtils.isEmpty(list)){ for(Archive_Master archiveMaster : list){ if(StringUtils.isNotBlank(archiveMaster.getDeptName()) && archiveMaster.getDeptName().equals(deptName)){ @@ -147,21 +150,23 @@ public class WorkHomeService { }else{ admissCount++; } - //判断出科 String archivestate = archiveMaster.getArchivestate(); - //判断归档 - if ("128".equals(archivestate)) { + String t1 = archiveMaster.getT1(); + //判断归档 待终审且已签收+已终审 + if ("128".equals(archivestate) || ("64".equals(archivestate) && StringUtils.isNotBlank(t1) && !"1801-02-03".equals(t1.substring(0,10)))) { recordCount++; } + //判断出科 + if ("128".equals(archivestate) || "64".equals(archivestate)) { + sumbitCount++; + } } } } vo.setDisCount(disCount); vo.setRecordCount(recordCount); vo.setAdmissCount(admissCount); - if(disCount != 0) { - vo.setRecordRate((recordCount * 100 / disCount) + "%"); - } + vo.setSumbitCount(sumbitCount); //转换科室 for (Emr_Dictionary dictionaryTemp : dictionaries) { String name = dictionaryTemp.getName(); @@ -246,8 +251,6 @@ public class WorkHomeService { int signCount = 0; //已扫描数量 int isScanCount = 0; - //未扫描数量 - int notScanCount = 0; //超期病历 int overTimeCount = 0; //预超期病历 @@ -265,8 +268,6 @@ public class WorkHomeService { recordCount = list.get(2) + list.get(5); signCount = list.get(3); isScanCount = list.get(4); - //待终审未扫描数量 = 待终审总数 - 已扫描 - notScanCount = headNurseCount - list.get(5); //查询超期参数 EmrOvertimeSet overtimeSet = overtimeSetService.selectByPrimaryKey(1); //获取未超期列表 @@ -281,7 +282,7 @@ public class WorkHomeService { String reDeadDate = unHolidays.get(overtimeSet.getDeadDays() - overtimeSet.getSurplusDays()).getDate(); //查询超期与预超期数量集合 1.超期数量 2.预超期数量 List overTimeAndReOverTimeCountList = archiveMasterMapper.overTimeAndReOverTimeCount(date,deadDate,reDate,reDeadDate,startDateTo, endDateTo); - overTimeCount = overTimeAndReOverTimeCountList.get(0); + overTimeCount = getOverTimeCount(startDateTo,endDateTo); reOverTimeCount = overTimeAndReOverTimeCountList.get(1); } //归档率 归档数量/出院人数 @@ -313,12 +314,66 @@ public class WorkHomeService { //未扫描数量 已签收-已扫描 map.put("notScanCount",(signCount - isScanCount) + ""); //扫描率 - if(disCount != 0){ + if(disCount != 0 && signCount != 0){ scanRate = (isScanCount * 100 / signCount); } map.put("scanRate",scanRate + "%"); return map; } + + private int getOverTimeCount(String startDateTo, String endDateTo) throws Exception{ + RecordSearch recordSearch = new RecordSearch(); + recordSearch.setStartDate(startDateTo); + recordSearch.setEndDate(endDateTo); + int count = 0; + List unSubmitRecords = recordMapper.selectUnCountGroupDept(recordSearch); + if (!CollectionUtils.isEmpty(unSubmitRecords)) { + unSubmitRecords = selectOvertimeRecord(unSubmitRecords); + if(!CollectionUtils.isEmpty(unSubmitRecords)){ + count = unSubmitRecords.size(); + } + } + return count; + } + + /** + * 过滤未过期的 + * @param unSubmitRecords + * @return + */ + private List selectOvertimeRecord(List unSubmitRecords) throws Exception{ + //查询超期参数 + EmrOvertimeSet overtimeSet = overtimeSetService.selectByPrimaryKey(1); + //获取未超期列表 + List unHolidays = holidaySetMapper.selectNotHolidayList(); + Iterator iterator = unSubmitRecords.iterator(); + //获取非死亡工作日 + String date = unHolidays.get(overtimeSet.getDays()).getDate(); + //获取非死亡工作日 + String deadDate = unHolidays.get(overtimeSet.getDeadDays()).getDate(); + //定义格式化日期 + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + while (iterator.hasNext()) { + SubmitRecord record = (SubmitRecord) iterator.next(); + //获取是否死亡 + String dischargeDisposition = record.getDischargeDisposition(); + String dischargeDateTime = record.getDischargeDateTime(); + long time = fmt.parse(dischargeDateTime).getTime(); + if(StringUtils.isNotBlank(dischargeDisposition) && "5".equals(dischargeDisposition)){ + //死亡 + if(time >= fmt.parse(deadDate).getTime()){ + iterator.remove(); + } + }else{ + //非死亡 + if(time >= fmt.parse(date).getTime()){ + iterator.remove(); + } + } + } + return unSubmitRecords; + } + /* public Map medicalRoomManageData(String startDateTo, String endDateTo) throws Exception{ //查询总数据 diff --git a/src/main/resources/mapper/Archive_MasterMapper.xml b/src/main/resources/mapper/Archive_MasterMapper.xml index 40978db..d3567fe 100644 --- a/src/main/resources/mapper/Archive_MasterMapper.xml +++ b/src/main/resources/mapper/Archive_MasterMapper.xml @@ -1424,18 +1424,37 @@ diff --git a/src/main/resources/mapper/V_CountMapper.xml b/src/main/resources/mapper/V_CountMapper.xml index e7240a6..3ab20b4 100644 --- a/src/main/resources/mapper/V_CountMapper.xml +++ b/src/main/resources/mapper/V_CountMapper.xml @@ -18,12 +18,12 @@ - deptCode, deptName, inNum, outNum, fileNum, unfileNum, deathNum, fileRate, + deptCode, deptName, inNum, outNum, fileNum, deathNum, fileRate, day2Rate, day3Rate, day7Rate