|
@@ -1,6 +1,5 @@
|
|
package com.diagbot.facade;
|
|
package com.diagbot.facade;
|
|
|
|
|
|
-import com.diagbot.dto.AverageStatisticsDTO;
|
|
|
|
import com.diagbot.dto.NumDTO;
|
|
import com.diagbot.dto.NumDTO;
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
import com.diagbot.exception.CommonException;
|
|
import com.diagbot.exception.CommonException;
|
|
@@ -21,7 +20,6 @@ import java.text.DecimalFormat;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.LinkedHashMap;
|
|
-import java.util.List;
|
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -54,8 +52,8 @@ public class ConsoleFacade {
|
|
retMap.put("新生儿人数", 0);
|
|
retMap.put("新生儿人数", 0);
|
|
retMap.put("手术病人数", 0);
|
|
retMap.put("手术病人数", 0);
|
|
filterVO.setHospitalId(hospitalId);
|
|
filterVO.setHospitalId(hospitalId);
|
|
- filterVO.setStartDate(getStartDateStr(filterVO.getType()));
|
|
|
|
- filterVO.setEndDate(getEndDateStr(filterVO.getType()));
|
|
|
|
|
|
+ filterVO.setStartDate(getStartDateStr(filterVO.getType(), null));
|
|
|
|
+ filterVO.setEndDate(getEndDateStr(filterVO.getType(), null));
|
|
HomePageFilterVO homePageFilterVO = new HomePageFilterVO();
|
|
HomePageFilterVO homePageFilterVO = new HomePageFilterVO();
|
|
BeanUtil.copyProperties(filterVO, homePageFilterVO);
|
|
BeanUtil.copyProperties(filterVO, homePageFilterVO);
|
|
Integer totleNum = behospitalInfoFacade.homePageCount(homePageFilterVO);
|
|
Integer totleNum = behospitalInfoFacade.homePageCount(homePageFilterVO);
|
|
@@ -81,8 +79,8 @@ public class ConsoleFacade {
|
|
DecimalFormat df = new DecimalFormat("#0.00");
|
|
DecimalFormat df = new DecimalFormat("#0.00");
|
|
Map<String, Object> retMap = new LinkedHashMap<>();
|
|
Map<String, Object> retMap = new LinkedHashMap<>();
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
- String startDate = getStartDateStr(filterVO.getType());
|
|
|
|
- String endDate = getEndDateStr(filterVO.getType());
|
|
|
|
|
|
+ String startDate = getStartDateStr(filterVO.getType(), null);
|
|
|
|
+ String endDate = getEndDateStr(filterVO.getType(), null);
|
|
filterVO.setStartDate(startDate);
|
|
filterVO.setStartDate(startDate);
|
|
filterVO.setEndDate(endDate);
|
|
filterVO.setEndDate(endDate);
|
|
filterVO.setHospitalId(hospitalId);
|
|
filterVO.setHospitalId(hospitalId);
|
|
@@ -139,7 +137,7 @@ public class ConsoleFacade {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 按科室统计
|
|
|
|
|
|
+ * 科室相关统计
|
|
*
|
|
*
|
|
* @param filterVO
|
|
* @param filterVO
|
|
* @return
|
|
* @return
|
|
@@ -149,13 +147,11 @@ public class ConsoleFacade {
|
|
retMap.put("各科室甲级病历占比", Lists.newLinkedList());
|
|
retMap.put("各科室甲级病历占比", Lists.newLinkedList());
|
|
retMap.put("各科室缺陷占比", Lists.newLinkedList());
|
|
retMap.put("各科室缺陷占比", Lists.newLinkedList());
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
- String startDate = getStartDateStr(filterVO.getType());
|
|
|
|
- String endDate = getEndDateStr(filterVO.getType());
|
|
|
|
|
|
+ String startDate = getStartDateStr(filterVO.getType(), null);
|
|
|
|
+ String endDate = getEndDateStr(filterVO.getType(), null);
|
|
filterVO.setStartDate(startDate);
|
|
filterVO.setStartDate(startDate);
|
|
filterVO.setEndDate(endDate);
|
|
filterVO.setEndDate(endDate);
|
|
filterVO.setHospitalId(hospitalId);
|
|
filterVO.setHospitalId(hospitalId);
|
|
- QcresultFilterVO qcresultFilterVO = new QcresultFilterVO();
|
|
|
|
- BeanUtil.copyProperties(filterVO, qcresultFilterVO);
|
|
|
|
try {
|
|
try {
|
|
Map<String, Object> invokeParams = new HashMap<>();
|
|
Map<String, Object> invokeParams = new HashMap<>();
|
|
invokeParams.put("filterVO", filterVO);
|
|
invokeParams.put("filterVO", filterVO);
|
|
@@ -178,7 +174,7 @@ public class ConsoleFacade {
|
|
retMap.put("各模块缺陷占比排行", Lists.newLinkedList());
|
|
retMap.put("各模块缺陷占比排行", Lists.newLinkedList());
|
|
retMap.put("条目缺陷占比", Lists.newLinkedList());
|
|
retMap.put("条目缺陷占比", Lists.newLinkedList());
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
- String startDate = getStartDateStr(filterVO.getType());
|
|
|
|
|
|
+ String startDate = getStartDateStr(filterVO.getType(), null);
|
|
filterVO.setStartDate(startDate);
|
|
filterVO.setStartDate(startDate);
|
|
filterVO.setHospitalId(hospitalId);
|
|
filterVO.setHospitalId(hospitalId);
|
|
try {
|
|
try {
|
|
@@ -193,7 +189,7 @@ public class ConsoleFacade {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 医院运营相关统计
|
|
|
|
|
|
+ * 平局值相关统计
|
|
*
|
|
*
|
|
* @param filterVO
|
|
* @param filterVO
|
|
* @return
|
|
* @return
|
|
@@ -202,34 +198,11 @@ public class ConsoleFacade {
|
|
Map<String, Object> retMap = new LinkedHashMap<>();
|
|
Map<String, Object> retMap = new LinkedHashMap<>();
|
|
retMap.put("平均住院日", Lists.newLinkedList());
|
|
retMap.put("平均住院日", Lists.newLinkedList());
|
|
retMap.put("平均住院费用", Lists.newLinkedList());
|
|
retMap.put("平均住院费用", Lists.newLinkedList());
|
|
|
|
+ retMap.put("各科室质控平均分", Lists.newLinkedList());
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
filterVO.setHospitalId(hospitalId);
|
|
filterVO.setHospitalId(hospitalId);
|
|
- String startDate = getStartDateStr(filterVO.getType());
|
|
|
|
|
|
+ String startDate = getStartDateStr(filterVO.getType(), null);
|
|
filterVO.setStartDate(startDate);
|
|
filterVO.setStartDate(startDate);
|
|
-
|
|
|
|
- /*
|
|
|
|
- List<AverageStatisticsDTO> retAverageDayNumList = Lists.newLinkedList();
|
|
|
|
- List<AverageStatisticsDTO> retAverageFeeList = Lists.newLinkedList();
|
|
|
|
- List<AverageStatisticsDTO> averageDayNumList = homePageFacade.getAverageDayNum(filterVO);
|
|
|
|
- List<AverageStatisticsDTO> averageFeeList = homePageFacade.getAverageFee(filterVO);
|
|
|
|
-
|
|
|
|
- if (filterVO.getLimitCount() == null || filterVO.getLimitCount().equals(0)) {
|
|
|
|
- filterVO.setLimitCount(10);
|
|
|
|
- }
|
|
|
|
- Integer limitCount = filterVO.getLimitCount();
|
|
|
|
-
|
|
|
|
- //平均住院日
|
|
|
|
- if (ListUtil.isNotEmpty(averageDayNumList)) {
|
|
|
|
- retAverageDayNumList = getLimitAverageList(averageDayNumList, limitCount);
|
|
|
|
- retMap.put("平均住院日", retAverageDayNumList);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //平均住院费用
|
|
|
|
- if (ListUtil.isNotEmpty(averageFeeList)) {
|
|
|
|
- retAverageFeeList = getLimitAverageList(averageFeeList, limitCount);
|
|
|
|
- retMap.put("平均住院费用", retAverageFeeList);
|
|
|
|
- }*/
|
|
|
|
-
|
|
|
|
try {
|
|
try {
|
|
Map<String, Object> invokeParams = new HashMap<>();
|
|
Map<String, Object> invokeParams = new HashMap<>();
|
|
invokeParams.put("filterVO", filterVO);
|
|
invokeParams.put("filterVO", filterVO);
|
|
@@ -248,10 +221,10 @@ public class ConsoleFacade {
|
|
* @param type
|
|
* @param type
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public String getStartDateStr(Integer type) {
|
|
|
|
|
|
+ public String getStartDateStr(Integer type, Integer optYear) {
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
String startDate = "";
|
|
String startDate = "";
|
|
- String year = DateUtil.getYear(date);
|
|
|
|
|
|
+ String year = optYear == null ? DateUtil.getYear(date) : optYear.toString();
|
|
int month = DateUtil.getMonth(date);
|
|
int month = DateUtil.getMonth(date);
|
|
if (type.equals(1)) {
|
|
if (type.equals(1)) {
|
|
//本月统计
|
|
//本月统计
|
|
@@ -269,10 +242,10 @@ public class ConsoleFacade {
|
|
* @param type
|
|
* @param type
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public String getEndDateStr(Integer type) {
|
|
|
|
|
|
+ public String getEndDateStr(Integer type, Integer optYear) {
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
String endDate = "";
|
|
String endDate = "";
|
|
- String year = DateUtil.getYear(date);
|
|
|
|
|
|
+ String year = optYear == null ? DateUtil.getYear(date) : optYear.toString();
|
|
int month = DateUtil.getMonth(date);
|
|
int month = DateUtil.getMonth(date);
|
|
if (type.equals(1)) {
|
|
if (type.equals(1)) {
|
|
//本月统计
|
|
//本月统计
|
|
@@ -289,41 +262,37 @@ public class ConsoleFacade {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 根据限制数量重组统计结果
|
|
|
|
|
|
+ * 上一统计周期(上月/去年)的起始时间
|
|
*
|
|
*
|
|
- * @param averageList
|
|
|
|
- * @param limitCount
|
|
|
|
|
|
+ * @param type
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public List<AverageStatisticsDTO> getLimitAverageList(List<AverageStatisticsDTO> averageList, Integer limitCount) {
|
|
|
|
- List<AverageStatisticsDTO> retAverageList = Lists.newLinkedList();
|
|
|
|
- if (averageList.size() < limitCount) {
|
|
|
|
- retAverageList = BeanUtil.listCopyTo(averageList, AverageStatisticsDTO.class);
|
|
|
|
- } else {
|
|
|
|
- if (averageList.size() > limitCount) {
|
|
|
|
- retAverageList = averageList.subList(0, limitCount - 1);
|
|
|
|
- List<AverageStatisticsDTO> otherList = averageList.subList(limitCount - 1, averageList.size());
|
|
|
|
- Double totleValue = otherList
|
|
|
|
- .stream()
|
|
|
|
- .map(i -> BigDecimal.valueOf(i.getTotleValue()))
|
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add).doubleValue();
|
|
|
|
- Integer num = otherList
|
|
|
|
- .stream()
|
|
|
|
- .map(AverageStatisticsDTO::getNum)
|
|
|
|
- .reduce(0, Integer::sum);
|
|
|
|
- Double averageValue = BigDecimal.valueOf(totleValue)
|
|
|
|
- .divide(BigDecimal.valueOf(num), 2, RoundingMode.HALF_UP)
|
|
|
|
- .doubleValue();
|
|
|
|
- AverageStatisticsDTO retAverageStatistics = new AverageStatisticsDTO();
|
|
|
|
- retAverageStatistics.setDeptName("其他");
|
|
|
|
- retAverageStatistics.setNum(num);
|
|
|
|
- retAverageStatistics.setAverageValue(averageValue);
|
|
|
|
- retAverageStatistics.setTotleValue(totleValue);
|
|
|
|
- retAverageList.add(retAverageStatistics);
|
|
|
|
|
|
+ public String getLastStartDateStr(Integer type) {
|
|
|
|
+ Date date = new Date();
|
|
|
|
+ String dateStr = "";
|
|
|
|
+ String year = DateUtil.getYear(date);
|
|
|
|
+ int month = DateUtil.getMonth(date);
|
|
|
|
+ if (type.equals(1)) {
|
|
|
|
+ if (month == 1) {
|
|
|
|
+ dateStr = (Integer.valueOf(year) - 1) + "-12-1";
|
|
} else {
|
|
} else {
|
|
- retAverageList = averageList;
|
|
|
|
|
|
+ dateStr = year + "-" + (month - 1) + "-1";
|
|
}
|
|
}
|
|
|
|
+ } else if (type.equals(2)) {
|
|
|
|
+ dateStr = (Integer.valueOf(year) - 1) + "-1-1";
|
|
}
|
|
}
|
|
- return retAverageList;
|
|
|
|
|
|
+ return dateStr;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取上一统计周期(上月/去年)的起始时间
|
|
|
|
+ *
|
|
|
|
+ * @param type
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public String getLastEndDateStr(Integer type) {
|
|
|
|
+ //上一统计周期的截止时间等于本周期的起始时间
|
|
|
|
+ return getStartDateStr(type, null);
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|