修正:退回内容已被改动暂时去掉,缺陷内容字段等、科主任提交不设默认出院日期等

master
hujl 3 years ago
parent d7c8d4a3d8
commit c9c692c377

@ -16,6 +16,7 @@ import com.emr.service.PowerUserService;
import com.emr.util.ThreadExcelUtils;
import com.google.common.base.Function;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
@ -62,8 +63,8 @@ public class faultController {
@RequestMapping(value = "/exportExcel")
public void exportExcel(HttpServletResponse response, Emr_Fault_Vo emrFaultVo) throws Exception {
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
String[] header = {"病历清单id","住院号","住院次数","姓名","出院科室","出院日期","归档状态","评分","主管医生","退回总次数","退回总费用(元)","当前退回次数","退回费用","退回人","退回时间","回退内容","缺陷选项","缺陷评分","缺陷内容","创建人","创建时间"};
String[] fileNames = {"archiveDetailId","inpNo","visitId","name","deptName","dischargeDateTime","archivestate","price","doctorInCharge","totalBackNum","totalBackFee","backNum","backFee","updater","updateTime","backContent","assortName","score","content","creater","createTime"};
String[] header = {"病历清单id","住院号","住院次数","姓名","出院科室","出院日期","归档状态","评分","主管医生","退回总次数","退回总费用(元)","当前退回次数","退回费用","退回人","退回时间","缺陷选项","缺陷评分","缺陷内容","创建人","创建时间"};//,"回退内容"
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的数据
@ -74,6 +75,7 @@ public class faultController {
List<Emr_Fault_Vo> backList =emrFaultDetailService.faultBackScoreList(emrFaultVo);
//退回总次数、总费用和总评分
List<Emr_Fault_Vo> masterList=emrFaultDetailService.masterTotalList(emrFaultVo);
if(list!=null && list.size()>0){
if(backList!=null && backList.size()>0){
if(masterList!=null && masterList.size()>0){
@ -82,8 +84,6 @@ public class faultController {
faultInfo.setBackFee("0");
faultInfo.setBackNum("0");
faultInfo.setUpdater(null);
faultInfo.setUpdateTime(null);
faultInfo.setContent(null);
faultInfo.setTotalBackNum("0");
faultInfo.setTotalBackFee("0");
//退回总次数、总费用和总评分
@ -104,13 +104,14 @@ public class faultController {
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(backInfo.getCreateTime());
Date nowTime = ft.parse(faultInfo.getCreateTime());
Date startTime = ft.parse(backInfo.getStartDateTo());
Date endTime = ft.parse(backInfo.getEndDateTo());
if( isEffectiveDate(nowTime,startTime,endTime)){
@ -118,40 +119,65 @@ public class faultController {
faultInfo.setEndDateTo(backInfo.getEndDateTo());
faultInfo.setBackNum(backInfo.getBackNum());
faultInfo.setUpdater(backInfo.getCreater());
faultInfo.setUpdateTime(backInfo.getCreateTime());
faultInfo.setContent(backInfo.getContent());
//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()!=""){
}else if(faultInfo.getEndDateTo()!=null && faultInfo.getEndDateTo()!=""){
if(compare(backInfo.getCreateTime(),faultInfo.getEndDateTo())){
faultInfo.setBackNum(backInfo.getBackNum());
faultInfo.setUpdater(backInfo.getCreater());
faultInfo.setUpdateTime(backInfo.getCreateTime());
faultInfo.setContent(backInfo.getContent());
//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());
faultInfo.setUpdateTime(backInfo.getCreateTime());
faultInfo.setContent(backInfo.getContent());
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 {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -186,7 +212,7 @@ public class faultController {
Calendar end = Calendar.getInstance();
end.setTime(endTime);
// end.add(end.DATE,-1);
if (date.after(begin) && date.before(end)) {
return true;
} else {

@ -32,6 +32,7 @@ import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService {
@ -373,11 +374,14 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService {
if(list!=null && list.size()>0){
Archive_Master_Following archiveMasterFollowing=new Archive_Master_Following();
archiveMasterFollowing.setFollowingType("9");
if(StringUtils.isNotBlank(emrFaultVo.getArchiveDetailId())){
archiveMasterFollowing.setMasterId(emrFaultVo.getArchiveDetailId());
}
//根据条件查询跟随流程记录的退回次数排序列表remark暂存退回次数
List<Archive_Master_Following> followList =archiveMasterFollowingMapper.selByCol(archiveMasterFollowing);
List<Archive_Master_Following> followList2=null;
if(followList!=null && followList.size()>0){
//Boolean bol=false;
JSONArray powerUsers = powerUserService.getPowerUserList("1");
List<JSONObject> powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class);
if (powerUserList != null){
@ -387,32 +391,33 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService {
return temp.getString("userName");
}});
for (Emr_Fault_Vo emr_fault_vo : list) {
JSONObject userInfo = mappedMovies.get(emr_fault_vo.getCreater());
if (userInfo==null){
emr_fault_vo.setCreater(emr_fault_vo.getCreater());
}else {
emr_fault_vo.setCreater(userInfo.getString("name"));
if(StringUtils.isNotBlank(emr_fault_vo.getCreater())) {
JSONObject userInfo = mappedMovies.get(emr_fault_vo.getCreater());
if (userInfo == null) {
emr_fault_vo.setCreater(emr_fault_vo.getCreater());
} else {
emr_fault_vo.setCreater(userInfo.getString("name"));
}
}
followList2= followList.stream().filter(u -> (u.getMasterId()).equals(emr_fault_vo.getArchiveDetailId()) && u.getHandleTime()!=null && u.getHandleTime()!="").collect(Collectors.toList());
//退回次数
for(int i=0;i<followList.size();i++){
if(emr_fault_vo.getArchiveDetailId().equals(followList.get(i).getMasterId()) && emr_fault_vo.getCreateTime()!=null && emr_fault_vo.getCreateTime()!="" && followList.get(i).getHandleTime()!=null && followList.get(i).getHandleTime()!="") {
for(int i=0;i<followList2.size();i++){
if(emr_fault_vo.getArchiveDetailId().equals(followList2.get(i).getMasterId()) && emr_fault_vo.getCreateTime()!=null && emr_fault_vo.getCreateTime()!="" && followList2.get(i).getHandleTime()!=null && followList2.get(i).getHandleTime()!="") {
//a早于b返回true
try {
if (compare(emr_fault_vo.getCreateTime(), followList.get(i).getHandleTime())) {
emr_fault_vo.setBackNum(followList.get(i).getRemark());
if(i!=0) {
emr_fault_vo.setStartDateTo(followList.get(i - 1).getHandleTime());
if (StringUtils.isNotBlank(followList.get(i).getHandleTime())) {
emr_fault_vo.setEndDateTo(followList.get(i).getHandleTime());
} else {
emr_fault_vo.setEndDateTo(followList.get(i - 1).getHandleTime());
}
}else{
if (compare(emr_fault_vo.getCreateTime(), followList2.get(i).getHandleTime())) {
emr_fault_vo.setBackNum(followList2.get(i).getRemark());
if(followList2.get(i).getRemark().equals("1")){
//第一次签收
emr_fault_vo.setStartDateTo("2000-01-01 01:00:00");
emr_fault_vo.setEndDateTo(followList.get(i).getHandleTime());
emr_fault_vo.setEndDateTo(followList2.get(i).getHandleTime());
}else{
emr_fault_vo.setStartDateTo(followList2.get(i - 1).getHandleTime());
if (StringUtils.isNotBlank(followList2.get(i).getHandleTime())) {
emr_fault_vo.setEndDateTo(followList2.get(i).getHandleTime());
} else {
emr_fault_vo.setEndDateTo(followList2.get(i - 1).getHandleTime());
}
}
break;
}
@ -424,7 +429,6 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService {
}
}
}
}
}else{
//跟随流程表必须有病案室退回科主任记录否则list为空

@ -163,6 +163,7 @@
<if test="handleName != null and handleName != ''">
and CONVERT(VARCHAR(20),handle_name,23) = #{handleName,jdbcType=NVARCHAR}
</if>
order by handle_time
</where>
</select>
<select id="selLastByType" parameterType="com.emr.entity.Archive_Master_Following" resultMap="BaseResultMap">

@ -199,6 +199,7 @@
<if test="archiveState != null and archiveState!=''">
and f.archive_state=#{archiveState,jdbcType=NVARCHAR}
</if>
order by f.create_time desc
</where>
</select>
<select id="selectByDept" parameterType="com.emr.entity.Emr_Fault_Detail" resultMap="BaseResultMap">
@ -826,18 +827,18 @@
</select>
<!--退回次数和评分-->
<select id="faultBackScoreList" parameterType="com.emr.entity.Emr_Fault_Vo" resultMap="BaseResultMap2">
select a.archive_detail_id,a.creater,convert(varchar,create_time,120) create_time,m.inp_no,m.visit_id,m.name,convert(varchar,m.discharge_date_time,120)
select a.archive_detail_id,a.creater,convert(varchar,a.create_time,120) create_time,m.inp_no,m.visit_id,m.name,a.content,convert(varchar,m.discharge_date_time,120)
discharge_date_time,m.dept_name,m.ArchiveState,isnull(m.score,0) score,m.DOCTOR_IN_CHARGE
from(
select DISTINCT archive_detail_id,creater,create_time from emr_fault_detail
where 1=1 and back_flag in(5,6)
select DISTINCT archive_detail_id,content,creater,create_time from emr_fault_detail
where 1=1 and back_flag in(5,6) and assort_id is not null and assort_id!=''
)a
left join(
select m.id,m.inp_no,m.visit_id,m.name,m.discharge_date_time,m.dept_name,m.ArchiveState, score,m.DOCTOR_IN_CHARGE
from Archive_Master m where 1=1 and ArchiveState not in('作废','已封存','') and ArchiveState is not null and Is_Valid!=1
select m.id,m.inp_no,m.visit_id,m.name,m.discharge_date_time,m.dept_name,m.ArchiveState, score,m.DOCTOR_IN_CHARGE
from Archive_Master m where 1=1 and ArchiveState not in('作废','已封存','') and ArchiveState is not null and Is_Valid!=1
)m
on a.archive_detail_id=m.id
<where> 1=1 and ArchiveState not in('作废','已封存','') and ArchiveState is not null
<where> 1=1 and ArchiveState not in('作废','已封存','','取消入院') and ArchiveState is not null
<if test="archiveDetailId != null and archiveDetailId != ''">
and a.archive_detail_id=#{archiveDetailId,jdbcType=NCHAR}
</if>
@ -881,7 +882,7 @@
</choose>
</where>
order by create_time desc
order by create_time
</select>
<!--<select id="faultBackList" parameterType="com.emr.entity.Emr_Fault_Detail" resultMap="BaseResultMap">

@ -2431,7 +2431,7 @@
language: "zh-CN"
});
var startDateTo = "";
/*var startDateTo = "";
var endDateTo = "";
if (($("#startDateTo").val() == "" && $("#endDateTo").val() == "") || ($("#startDateTo4").val() == "" && $("#endDateTo4").val() == "") ||($("#startDateTo5").val() == "" && $("#endDateTo5").val() == "") ) {
//获取当前日期
@ -2455,7 +2455,7 @@
$("#endDateTo5").val(endDateTo);
$('#startDateTo').val(startDateTo);
$('#endDateTo').val(endDateTo);
}
}*/
$("#imgsClearBtn2").click(function () {
//console.log("===清空删除页的图片===");

@ -883,7 +883,7 @@
//return changeDateFormat(value)
}
},
{
/*{
field: 'backContent',
title: '退回内容',
//visible: false,
@ -891,7 +891,8 @@
return value;
//return changeDateFormat(value)
}
},{
},*/
{
field: 'createTime',
title: '创建时间',
valign: 'middle',

Loading…
Cancel
Save