|
@@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
@@ -100,14 +101,118 @@ public class ConsoleByDeptExportFacade {
|
|
|
ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", DeptEntryNumDTO.class, fileName, response, 12.8f);
|
|
|
}
|
|
|
|
|
|
- public void solveParam(QcResultShortPageVO qcResultShortPageVO){
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 各模块缺陷占比导出-科室
|
|
|
+ *
|
|
|
+ * @param filterPageByDeptVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void entryGroupExportByDeptCase(HttpServletResponse response,FilterPageByDeptVO filterPageByDeptVO) {
|
|
|
+ filterFacade.filterPageByDeptVOSet(filterPageByDeptVO);
|
|
|
+ IPage<NumDTO> page = qcresultInfoFacade.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
|
|
|
+ filterPageByDeptVO.setCurrent(1L);
|
|
|
+ filterPageByDeptVO.setSize(Long.MAX_VALUE);
|
|
|
+ filterPageByDeptVO.setSearchCount(false);
|
|
|
+ String fileName = "各模块缺陷详情.xls";
|
|
|
+ ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", NumDTO.class, fileName, response, 12.8f);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 条目缺陷占比(内页)-科室
|
|
|
+ *
|
|
|
+ * @param filterPageByDeptVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void entryGroupByEntryDeptPage(HttpServletResponse response,FilterPageByDeptVO filterPageByDeptVO) {
|
|
|
+ filterFacade.filterPageByDeptVOSet(filterPageByDeptVO);
|
|
|
+ filterPageByDeptVO.setCurrent(1L);
|
|
|
+ filterPageByDeptVO.setSize(Long.MAX_VALUE);
|
|
|
+ filterPageByDeptVO.setSearchCount(false);
|
|
|
+ IPage<DeptEntryNumDTO> page = qcresultInfoFacade.entryGroupByEntryAndDeptInnerPage(filterPageByDeptVO);
|
|
|
+ String fileName = "条目缺陷占比详情.xls";
|
|
|
+ ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", DeptEntryNumDTO.class, fileName, response, 12.8f);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 缺陷详情质控评分页导出-科室
|
|
|
+ *
|
|
|
+ * @param qcResultShortPageVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void qcResultShortByDeptPageExport(HttpServletResponse response,QcResultShortPageVO qcResultShortPageVO) {
|
|
|
+ filterFacade.qcResultShortPageVOSet(qcResultShortPageVO);
|
|
|
+ nineTytime(qcResultShortPageVO);
|
|
|
+ qcResultShortPageVO.setCurrent(1L);
|
|
|
+ qcResultShortPageVO.setSize(Long.MAX_VALUE);
|
|
|
+ qcResultShortPageVO.setSearchCount(false);
|
|
|
+ List<ExportExcelByDeptDTO> records = behospitalInfoFacade.qcResultShortByDeptPageExport(qcResultShortPageVO);
|
|
|
+ //带缺陷
|
|
|
+ List<ExportSevenByDeptDTO> resDTO = new ArrayList<ExportSevenByDeptDTO>();
|
|
|
+ if(ListUtil.isNotEmpty(records)){
|
|
|
+ ExportSevenByDeptDTO exportByDeptDTO = new ExportSevenByDeptDTO();
|
|
|
+ exportByDeptDTO.setBehDeptName(records.get(0).getBehDeptName());
|
|
|
+ exportByDeptDTO.setExportExcelByDeptDTOS(records);
|
|
|
+ resDTO.add(exportByDeptDTO);
|
|
|
+ }
|
|
|
+ String fileName = "缺陷详情质控评分.xls";
|
|
|
+ ExcelUtils.exportExcelUser(resDTO, null, "sheet1", ExportSevenByDeptDTO.class, fileName, response);
|
|
|
+
|
|
|
+ }
|
|
|
+ public void nineTytime(QcResultShortPageVO qcResultShortPageVO){
|
|
|
+ Date startDate = qcResultShortPageVO.getStartDate();
|
|
|
+ Date endDate = qcResultShortPageVO.getEndDate();
|
|
|
+ //时间间隔90天
|
|
|
+ long interval = 90 * 24l * 60l * 60l * 1000l;
|
|
|
+ if (endDate.getTime() < startDate.getTime()) {
|
|
|
+ throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
|
|
|
+ }
|
|
|
+ if (endDate.getTime() - startDate.getTime() > interval) {
|
|
|
+ throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于90天");
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 各科室缺陷占比-科室(组合)
|
|
|
+ *
|
|
|
+ * @param filterOrderVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void levelByDeptExport(HttpServletResponse response,FilterOrderVO filterOrderVO) {
|
|
|
+ filterFacade.filterOrderVOSame(filterOrderVO);
|
|
|
+ List<LevelStsByDeptDTO> records = behospitalInfoFacade.levelStatisticsByDept(filterOrderVO);
|
|
|
+ if(ListUtil.isNotEmpty(records)){
|
|
|
+ for (LevelStsByDeptDTO record : records) {
|
|
|
+ BigDecimalStrExport(record);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String fileName = "各科室缺陷占比-科室.xls";
|
|
|
+ ExcelUtils.exportExcel(records, null, "sheet1", LevelStsByDeptDTO.class, fileName, response, 12.8f);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 关键条目缺陷占比统计导出-科室
|
|
|
+ *
|
|
|
+ * @param entryStatisticsVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void entryStatisticsByDeptExport(HttpServletResponse response,EntryStatisticsVO entryStatisticsVO) {
|
|
|
+ List<EntryStasByDeptDTO> records = behospitalInfoFacade.entryStatisticsByDept(entryStatisticsVO);
|
|
|
+ String fileName = "关键条目缺陷占比统计导出.xls";
|
|
|
+ ExcelUtils.exportExcel(records, null, "sheet1", EntryStasByDeptDTO.class, fileName, response, 12.8f);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public void solveParam(QcResultShortPageVO qcResultShortPageVO){
|
|
|
String hospitalId = SysUserUtils.getCurrentHospitalID();
|
|
|
qcResultShortPageVO.setHospitalId(hospitalId);
|
|
|
Date startDate = qcResultShortPageVO.getStartDate();
|
|
|
Date endDate = qcResultShortPageVO.getEndDate();
|
|
|
//时间间隔7天
|
|
|
long interval_7 = 7 * 24 * 60 * 60 * 1000;
|
|
|
- long interval_90 = 90l * 24 * 60 * 60 * 1000;
|
|
|
+ long interval_90 = 90 * 24 * 60 * 60 * 1000;
|
|
|
|
|
|
if("1".equals(qcResultShortPageVO.getRadioCheck())){
|
|
|
//时间间隔7天
|
|
@@ -136,7 +241,7 @@ public class ConsoleByDeptExportFacade {
|
|
|
ExportWideExcelByDeptDTO exportWideExcelByDeptDTO = new ExportWideExcelByDeptDTO();
|
|
|
exportWideExcelByDeptDTO.setAvgScore(exportExcelByDeptDTO.getAvgScore());
|
|
|
exportNinetyByDeptDTO.setBehDeptName( exportExcelByDeptDTO.getBehDeptName());
|
|
|
- exportWideExcelByDeptDTO.setBehDoctorName(exportExcelByDeptDTO.getBehDoctorName());
|
|
|
+ exportWideExcelByDeptDTO.setDoctorName(exportExcelByDeptDTO.getDoctorName());
|
|
|
List<ExportExcelBehByDeptDTO> exportExcelBehByDeptDTOS = exportExcelByDeptDTO.getExcelBehospitalDTOS();
|
|
|
List<ExportExcelWideBehByDeptDTO> exportExcelWideBehByDepDTOs = new ArrayList<>();
|
|
|
|
|
@@ -159,4 +264,175 @@ public class ConsoleByDeptExportFacade {
|
|
|
return resWide;
|
|
|
}
|
|
|
|
|
|
+ public void BigDecimalStrExport(LevelStsByDeptDTO record){
|
|
|
+
|
|
|
+ BigDecimal entrySameBigDecimal = getSubtract(new BigDecimal(record.getEntryNum()), new BigDecimal(record.getSameNum() == null? 0:record.getSameNum()));
|
|
|
+
|
|
|
+ if(entrySameBigDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setEntryStrNum(record.getEntryNum()+"↑");
|
|
|
+ }else if(entrySameBigDecimal.compareTo(BigDecimal.ZERO) <0){
|
|
|
+ record.setEntryStrNum(record.getEntryNum()+"↓");
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal sameMrNumBigDecimal = getSubtract(new BigDecimal(record.getMrNum()), new BigDecimal(record.getSameMrNum() == null? 0:record.getSameMrNum()));
|
|
|
+ if(sameMrNumBigDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setMrStrNum(record.getMrNum()+"↑");
|
|
|
+ }else if(sameMrNumBigDecimal.compareTo(BigDecimal.ZERO) <0){
|
|
|
+ record.setMrStrNum(record.getMrNum()+"↓");
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal sameAvgValueDecimal = getSubtract(new BigDecimal(record.getAverageValue()), new BigDecimal(record.getSameAvgValue() == null? 0:record.getSameAvgValue()));
|
|
|
+ if(sameAvgValueDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setAverageStrValue(record.getAverageValue()+"↑");
|
|
|
+ }else if(sameAvgValueDecimal.compareTo(BigDecimal.ZERO) <0){
|
|
|
+ record.setAverageStrValue(record.getAverageValue()+"↓");
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameFirstLevelBigDecimal = getSubtract(new BigDecimal(record.getFirstLevelNum()), new BigDecimal(record.getSameFirstLevelNum() == null? 0:record.getSameFirstLevelNum()));
|
|
|
+ if(SameFirstLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setFirstLevelStrNum(record.getFirstLevelNum()+"↑");
|
|
|
+ }else if(SameFirstLevelBigDecimal.compareTo(BigDecimal.ZERO) <0){
|
|
|
+ record.setFirstLevelStrNum(record.getFirstLevelNum()+"↓");
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameSecondLevelBigDecimal = getSubtract(new BigDecimal(record.getSecondLevelNum()), new BigDecimal(record.getSameSecondLevelNum() == null? 0:record.getSameSecondLevelNum()));
|
|
|
+ if(SameSecondLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setSecondLevelStrNum(record.getSecondLevelNum()+"↑");
|
|
|
+ }else if(SameSecondLevelBigDecimal.compareTo(BigDecimal.ZERO) <0){
|
|
|
+ record.setSecondLevelStrNum(record.getSecondLevelNum()+"↓");
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameThirdLevelBigDecimal = getSubtract(new BigDecimal(record.getThirdLevelNum()), new BigDecimal(record.getSameThirdLevelNum() == null? 0:record.getSameThirdLevelNum()));
|
|
|
+ if(SameThirdLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setThirdLevelStrNum(record.getThirdLevelNum()+"↑");
|
|
|
+ }else if(SameThirdLevelBigDecimal.compareTo(BigDecimal.ZERO) <0){
|
|
|
+ record.setThirdLevelStrNum(record.getThirdLevelNum()+"↓");
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameFirstLevelPeDecimal = getSubtract(new BigDecimal(record.getFirstLevelPercent()), new BigDecimal(record.getSameFirstLevelPercent() == null? 0:record.getSameFirstLevelPercent()));
|
|
|
+ if(SameFirstLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setFirstLevelPercentStr(record.getFirstLevelPercentStr()+"↑");
|
|
|
+ }else if(SameFirstLevelPeDecimal.compareTo(BigDecimal.ZERO) <0){
|
|
|
+ record.setFirstLevelPercentStr(record.getFirstLevelPercentStr()+"↓");
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameSecondLevelPeDecimal = getSubtract(new BigDecimal(record.getSecondLevelPercent()), new BigDecimal(record.getSameSecondLevelPercent() == null? 0:record.getSameSecondLevelPercent()));
|
|
|
+ if(SameSecondLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setSecondLevelPercentStr(record.getSecondLevelPercentStr()+"↑");
|
|
|
+ }else if(SameSecondLevelPeDecimal.compareTo(BigDecimal.ZERO)<0){
|
|
|
+ record.setSecondLevelPercentStr(record.getSecondLevelPercentStr()+"↓");
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameThirdLevelPeDecimal = getSubtract(new BigDecimal(record.getThirdLevelPercent()), new BigDecimal(record.getSameThirdLevelPercent() == null? 0:record.getSameThirdLevelPercent()));
|
|
|
+ if(SameThirdLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setThirdLevelPercentStr(record.getThirdLevelPercentStr()+"↑");
|
|
|
+ }else if(SameThirdLevelPeDecimal.compareTo(BigDecimal.ZERO) <0){
|
|
|
+ record.setThirdLevelPercentStr(record.getThirdLevelPercentStr()+"↓");
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ public void BigDecimalMethod(LevelStatisticsDTO record){
|
|
|
+ BigDecimal entrySameBigDecimal = getSubtract(new BigDecimal(record.getEntryNum()), new BigDecimal(record.getSameNum() == null? 0:record.getSameNum()));
|
|
|
+
|
|
|
+ if(entrySameBigDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setEntrySameNum(1);
|
|
|
+ }else if(entrySameBigDecimal.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ record.setEntrySameNum(0);
|
|
|
+ }else{
|
|
|
+ record.setEntrySameNum(-1);
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal sameMrNumBigDecimal = getSubtract(new BigDecimal(record.getMrNum()), new BigDecimal(record.getSameMrNum() == null? 0:record.getSameMrNum()));
|
|
|
+ if(sameMrNumBigDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setMrSameNum(1);
|
|
|
+ }else if(sameMrNumBigDecimal.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ record.setMrSameNum(0);
|
|
|
+ }else{
|
|
|
+ record.setMrSameNum(-1);
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal sameAvgValueDecimal = getSubtract(new BigDecimal(record.getAverageValue()), new BigDecimal(record.getSameAvgValue() == null? 0:record.getSameAvgValue()));
|
|
|
+ if(sameAvgValueDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setAvSameValue(1);
|
|
|
+ }else if(sameAvgValueDecimal.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ record.setAvSameValue(0);
|
|
|
+ }else{
|
|
|
+ record.setAvSameValue(-1);
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameFirstLevelBigDecimal = getSubtract(new BigDecimal(record.getFirstLevelNum()), new BigDecimal(record.getSameFirstLevelNum() == null? 0:record.getSameFirstLevelNum()));
|
|
|
+ if(SameFirstLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setFirSameLevelNum(1);
|
|
|
+ }else if(SameFirstLevelBigDecimal.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ record.setFirSameLevelNum(0);
|
|
|
+ }else{
|
|
|
+ record.setFirSameLevelNum(-1);
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameSecondLevelBigDecimal = getSubtract(new BigDecimal(record.getSecondLevelNum()), new BigDecimal(record.getSameSecondLevelNum() == null? 0:record.getSameSecondLevelNum()));
|
|
|
+ if(SameSecondLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setSecSameLevelNum(1);
|
|
|
+ }else if(SameSecondLevelBigDecimal.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ record.setSecSameLevelNum(0);
|
|
|
+ }else{
|
|
|
+ record.setSecSameLevelNum(-1);
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameThirdLevelBigDecimal = getSubtract(new BigDecimal(record.getThirdLevelNum()), new BigDecimal(record.getSameThirdLevelNum() == null? 0:record.getSameThirdLevelNum()));
|
|
|
+ if(SameThirdLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setThiSameLevelNum(1);
|
|
|
+ }else if(SameThirdLevelBigDecimal.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ record.setThiSameLevelNum(0);
|
|
|
+ }else{
|
|
|
+ record.setThiSameLevelNum(-1);
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameFirstLevelPeDecimal = getSubtract(new BigDecimal(record.getFirstLevelPercent()), new BigDecimal(record.getSameFirstLevelPercent() == null? 0:record.getSameFirstLevelPercent()));
|
|
|
+ if(SameFirstLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setFirSameLevelPercent(1);
|
|
|
+ }else if(SameFirstLevelPeDecimal.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ record.setFirSameLevelPercent(0);
|
|
|
+ }else{
|
|
|
+ record.setFirSameLevelPercent(-1);
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameSecondLevelPeDecimal = getSubtract(new BigDecimal(record.getSecondLevelPercent()), new BigDecimal(record.getSameSecondLevelPercent() == null? 0:record.getSameSecondLevelPercent()));
|
|
|
+ if(SameSecondLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setSecSameLevelPercent(1);
|
|
|
+ }else if(SameSecondLevelPeDecimal.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ record.setSecSameLevelPercent(0);
|
|
|
+ }else{
|
|
|
+ record.setSecSameLevelPercent(-1);
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal SameThirdLevelPeDecimal = getSubtract(new BigDecimal(record.getThirdLevelPercent()), new BigDecimal(record.getSameThirdLevelPercent() == null? 0:record.getSameThirdLevelPercent()));
|
|
|
+ if(SameThirdLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ record.setThiSameLevelPercent(1);
|
|
|
+ }else if(SameThirdLevelPeDecimal.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ record.setThiSameLevelPercent(0);
|
|
|
+ }else{
|
|
|
+ record.setThiSameLevelPercent(-1);
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 差值计算
|
|
|
+ *
|
|
|
+ * @param bigDecimalOne
|
|
|
+ * @param bigDecimalTwo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private BigDecimal getSubtract(BigDecimal bigDecimalOne, BigDecimal bigDecimalTwo) {
|
|
|
+ BigDecimal newBigDecimal = new BigDecimal(0);
|
|
|
+ if (null == bigDecimalOne && null != bigDecimalTwo) {
|
|
|
+ newBigDecimal = newBigDecimal.subtract(bigDecimalTwo);
|
|
|
+ } else if (null != bigDecimalOne && null == bigDecimalTwo) {
|
|
|
+ newBigDecimal = bigDecimalOne.subtract(newBigDecimal);
|
|
|
+ } else if (null != bigDecimalOne && null != bigDecimalTwo) {
|
|
|
+ newBigDecimal = bigDecimalOne.subtract(bigDecimalTwo);
|
|
|
+ }
|
|
|
+ return newBigDecimal;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|