|
@@ -30,8 +30,7 @@ import java.text.DateFormat;
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.time.Duration;
|
|
|
-import java.time.LocalDateTime;
|
|
|
+import java.time.*;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -2274,6 +2273,8 @@ public class ConsoleFacade {
|
|
|
filterVO.setFlagStr("1");
|
|
|
entryCountMap = behospitalInfoFacade.getCountByEntry(filterVO);
|
|
|
medQualityControlDTO = ruleIndexMethod(filterVO,medQualityControlDTO, baseIndex, entryCountMap);
|
|
|
+ //指标十九
|
|
|
+ medQualityControlDTO = getfileSecAmount(filterVO,medQualityControlDTO, baseIndex);
|
|
|
|
|
|
return medQualityControlDTO;
|
|
|
}
|
|
@@ -2304,6 +2305,79 @@ public class ConsoleFacade {
|
|
|
return retData;
|
|
|
};
|
|
|
|
|
|
+ private MedQualityControlDTO getfileSecAmount(FilterVO filterVO,MedQualityControlDTO medQualityControlDTO, Map<String, Object> baseIndex){
|
|
|
+ QueryWrapper<BehospitalInfo> query = new QueryWrapper<>();
|
|
|
+ DecimalFormat df = new DecimalFormat("0.0");
|
|
|
+ query.eq("hospital_id", filterVO.getHospitalId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N)
|
|
|
+ // .eq("is_placefile", filterVO.getIsPlacefile())
|
|
|
+ .isNotNull("leave_hospital_date")
|
|
|
+ .ge("leave_hospital_date",filterVO.getStartDate())
|
|
|
+ .le("leave_hospital_date",filterVO.getEndDate());
|
|
|
+ List<BehospitalInfo> list = behospitalInfoFacade.list(query);
|
|
|
+
|
|
|
+ Iterator<BehospitalInfo> iterator = list.iterator();
|
|
|
+ while (iterator.hasNext()){
|
|
|
+ BehospitalInfo beh = iterator.next();
|
|
|
+ Boolean flag = getTrueSecFile(beh.getBehospitalDate(), beh.getLeaveHospitalDate());
|
|
|
+ //true删除元素
|
|
|
+ if(!flag){
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ double count = list.stream().distinct().map(BehospitalInfo::getBedCode).count();
|
|
|
+ if(StringUtils.isNotEmpty( baseIndex.get("firMouthNum").toString()) && ! baseIndex.get("firMouthNum").toString().equals("0") ){
|
|
|
+ double retNum =count* 100/Double.parseDouble(baseIndex.get("firMouthNum").toString());
|
|
|
+ double firGradeStr = Double.parseDouble(df.format(retNum));
|
|
|
+ medQualityControlDTO.setLeaveSecFileStr(firGradeStr+"%");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return medQualityControlDTO;
|
|
|
+ };
|
|
|
+
|
|
|
+ private Boolean getTrueSecFile(Date date1,Date date2){
|
|
|
+ Calendar cal1 = Calendar.getInstance();
|
|
|
+ Calendar cal2 = Calendar.getInstance();
|
|
|
+ //计算截止日期
|
|
|
+ Calendar cal3 = Calendar.getInstance();
|
|
|
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ DateTimeFormatter dateTimeFormatterThr = DateTimeFormatter.ofPattern("HH:mm:ss");
|
|
|
+ cal1.setTime(date1);
|
|
|
+ cal2.setTime(date2);
|
|
|
+ cal3.setTime(date1);
|
|
|
+ int holidays = 0;
|
|
|
+ //确定一个 大日期
|
|
|
+ if(cal1.compareTo(cal2) > 0){
|
|
|
+ Calendar temp = cal1;
|
|
|
+ cal1 = cal2;
|
|
|
+ cal2 = temp;
|
|
|
+ temp = null;
|
|
|
+ }
|
|
|
+ while(cal1.compareTo(cal2)<=0){
|
|
|
+ //将时间卡在周六和周天时候取出周末的日期
|
|
|
+ if(cal1.get(Calendar.DAY_OF_WEEK)==1||cal1.get(Calendar.DAY_OF_WEEK)==7){
|
|
|
+ holidays++;
|
|
|
+ System.out.println("周末:"+new SimpleDateFormat("yyyy-MM-dd").format(cal1.getTime()));
|
|
|
+ }
|
|
|
+ cal1.add(Calendar.DAY_OF_YEAR,1);
|
|
|
+ }
|
|
|
+ cal3.add(Calendar.DAY_OF_YEAR,holidays+2);
|
|
|
+ String format1 = new SimpleDateFormat("yyyy-MM-dd").format(cal3.getTime());
|
|
|
+ LocalDateTime of = LocalDateTime.of(1949, 10, 01, 16, 00,01);
|
|
|
+ String format2 = of.format(dateTimeFormatterThr);
|
|
|
+ String endTime = format1 +" "+ format2;
|
|
|
+ LocalDateTime ldt = LocalDateTime.parse(endTime,dateTimeFormatter);
|
|
|
+ ZoneId zone = ZoneId.systemDefault();
|
|
|
+ Instant instant = ldt.atZone(zone).toInstant();
|
|
|
+ Date endDate = Date.from(instant);
|
|
|
+ //true表示未截止
|
|
|
+ if(endDate.after(date1)){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private MedQualityControlDTO ManageIndexMethod(MedQualityControlDTO medQualityControlDTO, Map<String, Object> baseIndex,FilterVO filterVO){
|
|
|
QueryWrapper<MedManagementInfo> query = new QueryWrapper<>();
|