for (Map<String,Object> map : dataList) {
Date rq = DateUtils.parseDate(map.get("rq"));
int rkck = Convert.toInt(map.get("rkck"));
Long brid = Convert.toLong(map.get("brid"));
Date rkrq = DateUtils.parseDate(map.get("rkrq"));
Date rangeBegin, rangeEnd;
String dateStr;
switch (tjjd) {
case 1:
dateStr = DateUtils.parseDateToStr("yyyy年", rq);
rangeBegin = DateUtils.getFirstDayOfYear(rq);
rangeEnd = DateUtils.getLastDayOfYear(rq);
break;
case 2:
dateStr = DateUtils.parseDateToStr("yyyy年MM月", rq);
rangeBegin = DateUtils.getFirstDayOfMonth(rq);
rangeEnd = DateUtils.getLastDayOfMonth(rq);
break;
case 4:
int jidu = DateUtils.getMonth(rq)/3 +1;
int nian = DateUtils.getYear(rq);
dateStr = nian + "年" + jidu + "季度";
rangeBegin = DateUtils.getFirstDayOfQuarter(nian, jidu);
rangeEnd = DateUtils.getLastDayOfQuarter(nian, jidu);
break;
default:
dateStr = DateUtils.parseDateToStr("yyyy年MM月dd日", rq);
rangeBegin = DateUtils.getFirstDate(rq);
rangeEnd = DateUtils.getLastDate(rq);
break;
}
String finalDateStr = dateStr;
List<Map<String,Object>> childList = result.stream()
.filter(stringObjectMap -> stringObjectMap.get("tj_date").toString().equals(finalDateStr))
.collect(Collectors.toList());
if (childList.isEmpty()) {
Map<String,Object> rowMap = new HashMap<>();
rowMap.put("tj_date", dateStr);
rowMap.put("rs_before", 0);
rowMap.put("rs_in", (rkck == 1) ? 1 : 0);
rowMap.put("rs_out", (rkck == 2) ? 1 : 0);
// 增加【入科未出科】
rowMap.put("rs_in_no_out", (rkck == 3) ? 1 : 0);
rowMap.put("rs_after", 0);
rowMap.put("rangeBegin", rangeBegin);
rowMap.put("rangeEnd", rangeEnd);
// 存放入科和出科的病人信息列表
List<Map<String,Object>> rkInfoList = new LinkedList<>();
List<Map<String,Object>> ckInfoList = new LinkedList<>();
// 入科未出科
List<Map<String,Object>> ckNoCkInfoList = new LinkedList<>();
if (rkck == 1) {
Map<String, Object> patlistDetail = getPatDetail(brid,Convert.toInt(para.getOrDefault("xtsb",1)));
Map<String,Object> patlistDetail1 = new HashMap<>(patlistDetail);
patlistDetail1.replace("rkrq",rkrq);
rkInfoList.add(patlistDetail1);
}else if (rkck == 2){
Map<String, Object> patlistDetail = getPatDetail(brid,Convert.toInt(para.getOrDefault("xtsb",1)));
Map<String,Object> patlistDetail1 = new HashMap<>(patlistDetail);
patlistDetail1.replace("rkrq",rkrq);
ckInfoList.add(patlistDetail1);
} else if (rkck == 3) {
Map<String, Object> patlistDetail = getPatDetail(brid,Convert.toInt(para.getOrDefault("xtsb",1)));
Map<String,Object> patlistDetail1 = new HashMap<>(patlistDetail);
patlistDetail1.replace("rkrq",rkrq);
ckNoCkInfoList.add(patlistDetail1);
}
rowMap.put("rkInfoList",rkInfoList);
rowMap.put("ckInfoList",ckInfoList);
rowMap.put("rkNoCkInfoList",ckNoCkInfoList);
result.add(rowMap);
} else {
Map<String,Object> rowMap = childList.get(0);
if (rkck == 1) {
rowMap.replace("rs_in", Convert.toInt(rowMap.getOrDefault("rs_in", 0)) + 1);
List<Map<String,Object>> rkInfoList = (List) rowMap.get("rkInfoList");
Map<String, Object> patlistDetail = getPatDetail(brid,Convert.toInt(para.getOrDefault("xtsb",1)));
Map<String,Object> patlistDetail1 = new HashMap<>(patlistDetail);
patlistDetail1.replace("rkrq",rkrq);
rkInfoList.add(patlistDetail1);
} else if (rkck == 2){
rowMap.replace("rs_out", Convert.toInt(rowMap.getOrDefault("rs_out", 0)) + 1);
List<Map<String,Object>> ckInfoList = (List) rowMap.get("ckInfoList");
Map<String, Object> patlistDetail = getPatDetail(brid,Convert.toInt(para.getOrDefault("xtsb",1)));
Map<String,Object> patlistDetail1 = new HashMap<>(patlistDetail);
patlistDetail1.replace("rkrq",rkrq);
ckInfoList.add(patlistDetail1);
} else if (rkck == 3) {
rowMap.replace("rs_in_no_out", Convert.toInt(rowMap.getOrDefault("rs_in_no_out", 0)) + 1);
List<Map<String,Object>> ckNoCkInfoList = (List) rowMap.get("rkNoCkInfoList");
Map<String, Object> patlistDetail = getPatDetail(brid,Convert.toInt(para.getOrDefault("xtsb",1)));
Map<String,Object> patlistDetail1 = new HashMap<>(patlistDetail);
patlistDetail1.replace("rkrq",rkrq);
ckNoCkInfoList.add(patlistDetail1);
}
}
}现在rs_in和rs_out统计的是人次,我现在想统计人数,定义为rkrs和ckrs,如何改JAVA
最新发布