|
|
|
@ -34,6 +34,7 @@ import java.math.BigDecimal;
|
|
|
|
|
import java.text.ParseException;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
@Controller
|
|
|
|
|
@RequestMapping("fault")
|
|
|
|
@ -67,8 +68,7 @@ public class faultController {
|
|
|
|
|
String[] fileNames = {"archiveDetailId","inpNo","visitId","name","deptName","dischargeDateTime","archivestate","price","doctorInCharge","totalBackNum","totalBackFee","backNum","backFee","updater","updateTime","assortName","score","content","creater","createTime"};//,"backContent"
|
|
|
|
|
//文件名
|
|
|
|
|
String fileName = "缺陷信息数据" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
|
|
|
|
|
//构造excel的数据
|
|
|
|
|
// List<Emr_Fault_Vo> list = emrFaultDetailService.getQualityControlList(emrFaultVo);
|
|
|
|
|
|
|
|
|
|
//获取病案室退回医生或护士的缺陷列表
|
|
|
|
|
List<Emr_Fault_Vo> list = emrFaultDetailService.selByCol(emrFaultVo);
|
|
|
|
|
//获取病案退回是第几次 updater为退回人
|
|
|
|
@ -87,96 +87,90 @@ public class faultController {
|
|
|
|
|
faultInfo.setTotalBackNum("0");
|
|
|
|
|
faultInfo.setTotalBackFee("0");
|
|
|
|
|
//退回总次数、总费用和总评分
|
|
|
|
|
for (Emr_Fault_Vo masertInfo : masterList) {
|
|
|
|
|
if(faultInfo.getArchiveDetailId().equals(masertInfo.getArchiveDetailId())) {
|
|
|
|
|
faultInfo.setBackFee(masertInfo.getBackFee());
|
|
|
|
|
faultInfo.setInpNo(masertInfo.getInpNo());
|
|
|
|
|
faultInfo.setVisitId(masertInfo.getVisitId());
|
|
|
|
|
faultInfo.setName(masertInfo.getName());
|
|
|
|
|
faultInfo.setDeptName(masertInfo.getDeptName());
|
|
|
|
|
faultInfo.setDischargeDateTime(masertInfo.getDischargeDateTime());
|
|
|
|
|
faultInfo.setArchiveState(masertInfo.getArchiveState());
|
|
|
|
|
faultInfo.setPrice(masertInfo.getScore());
|
|
|
|
|
faultInfo.setTotalBackNum(masertInfo.getTotalBackNum());
|
|
|
|
|
faultInfo.setTotalBackFee(masertInfo.getTotalBackFee());
|
|
|
|
|
}else{
|
|
|
|
|
//匹配不到退回相关的ArchiveDetailId,分数暂时为100
|
|
|
|
|
faultInfo.setPrice(new BigDecimal(100));
|
|
|
|
|
}
|
|
|
|
|
List<Emr_Fault_Vo> masterList2= masterList.stream().filter(u -> (u.getArchiveDetailId()).equals(faultInfo.getArchiveDetailId())).collect(Collectors.toList());
|
|
|
|
|
if(masterList2.size()>0){
|
|
|
|
|
Emr_Fault_Vo masertInfo=masterList2.get(0);
|
|
|
|
|
faultInfo.setBackFee(masertInfo .getBackFee());
|
|
|
|
|
faultInfo.setInpNo(masertInfo.getInpNo());
|
|
|
|
|
faultInfo.setVisitId(masertInfo.getVisitId());
|
|
|
|
|
faultInfo.setName(masertInfo.getName());
|
|
|
|
|
faultInfo.setDeptName(masertInfo.getDeptName());
|
|
|
|
|
faultInfo.setDischargeDateTime(masertInfo.getDischargeDateTime());
|
|
|
|
|
faultInfo.setArchiveState(masertInfo.getArchiveState());
|
|
|
|
|
faultInfo.setPrice(masertInfo.getScore());
|
|
|
|
|
faultInfo.setTotalBackNum(masertInfo.getTotalBackNum());
|
|
|
|
|
faultInfo.setTotalBackFee(masertInfo.getTotalBackFee());
|
|
|
|
|
}else{
|
|
|
|
|
//匹配不到退回相关的ArchiveDetailId,分数暂时为100
|
|
|
|
|
faultInfo.setPrice(new BigDecimal(100));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取病案退回是第几次 updater为退回人
|
|
|
|
|
for (Emr_Fault_Vo backInfo : backList) {
|
|
|
|
|
if(faultInfo.getArchiveDetailId().equals(backInfo.getArchiveDetailId())) {
|
|
|
|
|
if(backInfo.getCreateTime()!=null && backInfo.getCreateTime()!=""){
|
|
|
|
|
if(backInfo.getStartDateTo()!=null && backInfo.getStartDateTo()!="" && backInfo.getEndDateTo()!=null && backInfo.getEndDateTo()!=""){
|
|
|
|
|
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
Date nowTime = ft.parse(faultInfo.getCreateTime());
|
|
|
|
|
Date startTime = ft.parse(backInfo.getStartDateTo());
|
|
|
|
|
Date endTime = ft.parse(backInfo.getEndDateTo());
|
|
|
|
|
if( isEffectiveDate(nowTime,startTime,endTime)){
|
|
|
|
|
faultInfo.setStartDateTo(backInfo.getStartDateTo());
|
|
|
|
|
faultInfo.setEndDateTo(backInfo.getEndDateTo());
|
|
|
|
|
faultInfo.setBackNum(backInfo.getBackNum());
|
|
|
|
|
faultInfo.setUpdater(backInfo.getCreater());
|
|
|
|
|
//System.out.println(backInfo.getCreateTime());
|
|
|
|
|
if(StringUtils.isNotBlank(backInfo.getEndDateTo())){
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getEndDateTo());
|
|
|
|
|
}else{
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getStartDateTo());
|
|
|
|
|
}
|
|
|
|
|
faultInfo.setBackContent(backInfo.getContent());
|
|
|
|
|
break;
|
|
|
|
|
List<Emr_Fault_Vo> backList2= backList.stream().filter(u -> (u.getArchiveDetailId()).equals(faultInfo.getArchiveDetailId())).collect(Collectors.toList());
|
|
|
|
|
//获取病案退回是第几次 updater为退回人 1583480
|
|
|
|
|
for (Emr_Fault_Vo backInfo : backList2) {
|
|
|
|
|
if(backInfo.getCreateTime()!=null && backInfo.getCreateTime()!=""){
|
|
|
|
|
if(backInfo.getStartDateTo()!=null && backInfo.getStartDateTo()!="" && backInfo.getEndDateTo()!=null && backInfo.getEndDateTo()!=""){
|
|
|
|
|
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
Date nowTime = ft.parse(faultInfo.getCreateTime());
|
|
|
|
|
Date startTime = ft.parse(backInfo.getStartDateTo());
|
|
|
|
|
Date endTime = ft.parse(backInfo.getEndDateTo());
|
|
|
|
|
if( isEffectiveDate(nowTime,startTime,endTime)){
|
|
|
|
|
faultInfo.setStartDateTo(backInfo.getStartDateTo());
|
|
|
|
|
faultInfo.setEndDateTo(backInfo.getEndDateTo());
|
|
|
|
|
faultInfo.setBackNum(backInfo.getBackNum());
|
|
|
|
|
faultInfo.setUpdater(backInfo.getCreater());
|
|
|
|
|
// faultInfo.setDoctorInCharge(backInfo.getDoctorInCharge());
|
|
|
|
|
//System.out.println(backInfo.getCreateTime());
|
|
|
|
|
if(StringUtils.isNotBlank(backInfo.getEndDateTo())){
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getEndDateTo());
|
|
|
|
|
}else{
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getStartDateTo());
|
|
|
|
|
}
|
|
|
|
|
faultInfo.setBackContent(backInfo.getContent());
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}else if(faultInfo.getEndDateTo()!=null && faultInfo.getEndDateTo()!=""){
|
|
|
|
|
if(compare(backInfo.getCreateTime(),faultInfo.getEndDateTo())){
|
|
|
|
|
faultInfo.setBackNum(backInfo.getBackNum());
|
|
|
|
|
faultInfo.setUpdater(backInfo.getCreater());
|
|
|
|
|
//faultInfo.setDoctorInCharge(backInfo.getDoctorInCharge());
|
|
|
|
|
//System.out.println(backInfo.getCreateTime());
|
|
|
|
|
if(StringUtils.isNotBlank(backInfo.getEndDateTo())){
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getEndDateTo());
|
|
|
|
|
}else{
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getStartDateTo());
|
|
|
|
|
}
|
|
|
|
|
}else if(faultInfo.getEndDateTo()!=null && faultInfo.getEndDateTo()!=""){
|
|
|
|
|
if(compare(backInfo.getCreateTime(),faultInfo.getEndDateTo())){
|
|
|
|
|
faultInfo.setBackNum(backInfo.getBackNum());
|
|
|
|
|
faultInfo.setUpdater(backInfo.getCreater());
|
|
|
|
|
//System.out.println(backInfo.getCreateTime());
|
|
|
|
|
if(StringUtils.isNotBlank(backInfo.getEndDateTo())){
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getEndDateTo());
|
|
|
|
|
}else{
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getStartDateTo());
|
|
|
|
|
}
|
|
|
|
|
faultInfo.setBackContent(backInfo.getContent());
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}else if(faultInfo.getStartDateTo()!=null && faultInfo.getStartDateTo()!=""){
|
|
|
|
|
if(compare(faultInfo.getStartDateTo(),backInfo.getCreateTime())){
|
|
|
|
|
faultInfo.setBackNum(backInfo.getBackNum());
|
|
|
|
|
faultInfo.setUpdater(backInfo.getCreater());
|
|
|
|
|
if(StringUtils.isNotBlank(backInfo.getEndDateTo())){
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getEndDateTo());
|
|
|
|
|
}else{
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getStartDateTo());
|
|
|
|
|
}
|
|
|
|
|
faultInfo.setBackContent(backInfo.getContent());
|
|
|
|
|
break;
|
|
|
|
|
faultInfo.setBackContent(backInfo.getContent());
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}else if(faultInfo.getStartDateTo()!=null && faultInfo.getStartDateTo()!=""){
|
|
|
|
|
if(compare(faultInfo.getStartDateTo(),backInfo.getCreateTime())){
|
|
|
|
|
faultInfo.setBackNum(backInfo.getBackNum());
|
|
|
|
|
faultInfo.setUpdater(backInfo.getCreater());
|
|
|
|
|
//faultInfo.setDoctorInCharge(backInfo.getDoctorInCharge());
|
|
|
|
|
if(StringUtils.isNotBlank(backInfo.getEndDateTo())){
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getEndDateTo());
|
|
|
|
|
}else{
|
|
|
|
|
faultInfo.setUpdateTime(backInfo.getStartDateTo());
|
|
|
|
|
}
|
|
|
|
|
faultInfo.setBackContent(backInfo.getContent());
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(backList.size()>0) {
|
|
|
|
|
ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames);
|
|
|
|
|
/* System.out.println("开始执行导出.......");
|
|
|
|
|
long start = System.currentTimeMillis();*/
|
|
|
|
|
String result = utils.exportExcelToFilePath(response, utils.listConvert(list));
|
|
|
|
|
/* long end = System.currentTimeMillis();
|
|
|
|
|
System.out.println("耗时:" + (end - start) / 1000 + "秒");*/
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ThreadExcelUtils utils = new ThreadExcelUtils(fileName, "", header, fileNames);
|
|
|
|
|
/* System.out.println("开始执行导出.......");
|
|
|
|
|
long start = System.currentTimeMillis();*/
|
|
|
|
|
String result = utils.exportExcelToFilePath(response, utils.listConvert(list));
|
|
|
|
|
/* long end = System.currentTimeMillis();
|
|
|
|
|
System.out.println("耗时:" + (end - start) / 1000 + "秒");*/
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
public boolean compare(String time1,String time2) throws ParseException {
|
|
|
|
|