|
|
|
@ -8,6 +8,7 @@ package com.emr.service.ipml;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.emr.dao.Archive_Master_FollowingMapper;
|
|
|
|
|
import com.emr.dao.Emr_Fault_DetailMapper;
|
|
|
|
|
import com.emr.entity.*;
|
|
|
|
|
import com.emr.service.Emr_DictionaryService;
|
|
|
|
@ -21,7 +22,10 @@ import com.google.common.collect.Maps;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.text.ParseException;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
@ -39,6 +43,8 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private PowerUserService powerUserService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private Archive_Master_FollowingMapper archiveMasterFollowingMapper;
|
|
|
|
|
/**
|
|
|
|
|
* 根据条件查询缺陷列表
|
|
|
|
|
* @param emrFaultVo
|
|
|
|
@ -249,6 +255,269 @@ public class Emr_Fault_DetailServiceImpl implements Emr_Fault_DetailService {
|
|
|
|
|
}
|
|
|
|
|
return new OffsetLimitPage((Page) list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<Emr_Fault_Vo> masterTotalList(Emr_Fault_Vo emrFaultVo) {
|
|
|
|
|
List<Emr_Fault_Vo> list= emrFaultDetailMapper.masterTotalList(emrFaultVo);
|
|
|
|
|
JSONArray powerUsers = powerUserService.getPowerUserList("1");
|
|
|
|
|
List<JSONObject> powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class);
|
|
|
|
|
if (powerUserList != null){
|
|
|
|
|
Map<String,JSONObject> mappedMovies = Maps.uniqueIndex(powerUserList, new Function<JSONObject,String>() {
|
|
|
|
|
@Override
|
|
|
|
|
public String apply(JSONObject temp) {
|
|
|
|
|
return temp.getString("userName");
|
|
|
|
|
}});
|
|
|
|
|
|
|
|
|
|
for (Emr_Fault_Vo emr_fault_vo : list) {
|
|
|
|
|
//主管医生
|
|
|
|
|
JSONObject userInfo = mappedMovies.get(emr_fault_vo.getDoctorInCharge());
|
|
|
|
|
if (userInfo==null){
|
|
|
|
|
emr_fault_vo.setDoctorInCharge(emr_fault_vo.getDoctorInCharge());
|
|
|
|
|
}else {
|
|
|
|
|
emr_fault_vo.setDoctorInCharge(userInfo.getString("name"));
|
|
|
|
|
}
|
|
|
|
|
//退回人
|
|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public OffsetLimitPage masterTotalList(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) {
|
|
|
|
|
PageHelper.offsetPage(offset, limit);
|
|
|
|
|
List<Emr_Fault_Vo> list = emrFaultDetailMapper.masterTotalList(emrFaultVo);
|
|
|
|
|
if(list!=null && list.size()>0){
|
|
|
|
|
JSONArray powerUsers = powerUserService.getPowerUserList("1");
|
|
|
|
|
List<JSONObject> powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class);
|
|
|
|
|
if (powerUserList != null){
|
|
|
|
|
Map<String,JSONObject> mappedMovies = Maps.uniqueIndex(powerUserList, new Function<JSONObject,String>() {
|
|
|
|
|
@Override
|
|
|
|
|
public String apply(JSONObject temp) {
|
|
|
|
|
return temp.getString("userName");
|
|
|
|
|
}});
|
|
|
|
|
for (Emr_Fault_Vo emr_fault_vo : list) {
|
|
|
|
|
JSONObject userInfo = mappedMovies.get(emr_fault_vo.getDoctorInCharge());
|
|
|
|
|
if (userInfo==null){
|
|
|
|
|
emr_fault_vo.setDoctorInCharge(emr_fault_vo.getDoctorInCharge());
|
|
|
|
|
}else {
|
|
|
|
|
emr_fault_vo.setDoctorInCharge(userInfo.getString("name"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new OffsetLimitPage((Page) list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<Emr_Fault_Vo> faultBackScoreList(Emr_Fault_Vo emrFaultVo) {
|
|
|
|
|
List<Emr_Fault_Vo> list= emrFaultDetailMapper.faultBackScoreList(emrFaultVo);
|
|
|
|
|
if(list!=null && list.size()>0){
|
|
|
|
|
Archive_Master_Following archiveMasterFollowing=new Archive_Master_Following();
|
|
|
|
|
archiveMasterFollowing.setFollowingType("9");
|
|
|
|
|
//根据条件查询跟随流程记录的退回次数排序列表,remark暂存退回次数
|
|
|
|
|
List<Archive_Master_Following> followList =archiveMasterFollowingMapper.selByCol(archiveMasterFollowing);
|
|
|
|
|
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){
|
|
|
|
|
Map<String,JSONObject> mappedMovies = Maps.uniqueIndex(powerUserList, new Function<JSONObject,String>() {
|
|
|
|
|
@Override
|
|
|
|
|
public String apply(JSONObject temp) {
|
|
|
|
|
return temp.getString("userName");
|
|
|
|
|
}});
|
|
|
|
|
for (Emr_Fault_Vo emr_fault_vo : list) {
|
|
|
|
|
/*JSONObject userInfo = mappedMovies.get(emr_fault_vo.getDoctorInCharge());
|
|
|
|
|
if (userInfo==null){
|
|
|
|
|
emr_fault_vo.setDoctorInCharge(emr_fault_vo.getDoctorInCharge());
|
|
|
|
|
}else {
|
|
|
|
|
emr_fault_vo.setDoctorInCharge(userInfo.getString("name"));
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//退回次数
|
|
|
|
|
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()!="") {
|
|
|
|
|
//a早于b返回true
|
|
|
|
|
try {
|
|
|
|
|
if (compare(emr_fault_vo.getCreateTime(), followList.get(i).getHandleTime())) {
|
|
|
|
|
emr_fault_vo.setBackNum(followList.get(i).getRemark());
|
|
|
|
|
emr_fault_vo.setStartDateTo(followList.get(i-1).getHandleTime());
|
|
|
|
|
emr_fault_vo.setEndDateTo(followList.get(i).getHandleTime());
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} catch (ParseException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
emr_fault_vo.setBackNum("异常");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
//跟随流程表必须有病案室退回科主任记录,否则list为空
|
|
|
|
|
list=null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public OffsetLimitPage faultBackScoreList(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) {
|
|
|
|
|
PageHelper.offsetPage(offset, limit);
|
|
|
|
|
List<Emr_Fault_Vo> list = emrFaultDetailMapper.faultBackScoreList(emrFaultVo);
|
|
|
|
|
if(list!=null && list.size()>0){
|
|
|
|
|
Archive_Master_Following archiveMasterFollowing=new Archive_Master_Following();
|
|
|
|
|
archiveMasterFollowing.setFollowingType("9");
|
|
|
|
|
//根据条件查询跟随流程记录的退回次数排序列表,remark暂存退回次数
|
|
|
|
|
List<Archive_Master_Following> followList =archiveMasterFollowingMapper.selByCol(archiveMasterFollowing);
|
|
|
|
|
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){
|
|
|
|
|
Map<String,JSONObject> mappedMovies = Maps.uniqueIndex(powerUserList, new Function<JSONObject,String>() {
|
|
|
|
|
@Override
|
|
|
|
|
public String apply(JSONObject temp) {
|
|
|
|
|
return temp.getString("userName");
|
|
|
|
|
}});
|
|
|
|
|
for (Emr_Fault_Vo emr_fault_vo : list) {
|
|
|
|
|
/*JSONObject userInfo = mappedMovies.get(emr_fault_vo.getDoctorInCharge());
|
|
|
|
|
if (userInfo==null){
|
|
|
|
|
emr_fault_vo.setDoctorInCharge(emr_fault_vo.getDoctorInCharge());
|
|
|
|
|
}else {
|
|
|
|
|
emr_fault_vo.setDoctorInCharge(userInfo.getString("name"));
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//退回次数
|
|
|
|
|
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()!="") {
|
|
|
|
|
//a早于b返回true
|
|
|
|
|
try {
|
|
|
|
|
if (compare(emr_fault_vo.getCreateTime(), followList.get(i).getHandleTime())) {
|
|
|
|
|
emr_fault_vo.setBackNum(followList.get(i).getRemark());
|
|
|
|
|
emr_fault_vo.setStartDateTo(followList.get(i-1).getHandleTime());
|
|
|
|
|
emr_fault_vo.setEndDateTo(followList.get(i).getHandleTime());
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} catch (ParseException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
emr_fault_vo.setBackNum("异常");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
//跟随流程表必须有病案室退回科主任记录,否则list为空
|
|
|
|
|
list=null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new OffsetLimitPage((Page) list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<Emr_Fault_Vo> selByCol(Emr_Fault_Vo emrFaultVo) {
|
|
|
|
|
List<Emr_Fault_Vo> list=emrFaultDetailMapper.selByCol(emrFaultVo);
|
|
|
|
|
JSONArray powerUsers = powerUserService.getPowerUserList("1");
|
|
|
|
|
List<JSONObject> powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class);
|
|
|
|
|
if (powerUserList != null){
|
|
|
|
|
Map<String,JSONObject> mappedMovies = Maps.uniqueIndex(powerUserList, new Function<JSONObject,String>() {
|
|
|
|
|
@Override
|
|
|
|
|
public String apply(JSONObject temp) {
|
|
|
|
|
return temp.getString("userName");
|
|
|
|
|
}});
|
|
|
|
|
|
|
|
|
|
for (Emr_Fault_Vo emr_fault_vo : list) {
|
|
|
|
|
//主管医生
|
|
|
|
|
JSONObject userInfo = mappedMovies.get(emr_fault_vo.getDoctorInCharge());
|
|
|
|
|
|
|
|
|
|
//创建人
|
|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public OffsetLimitPage selByCol(Emr_Fault_Vo emrFaultVo, Integer offset, Integer limit) {
|
|
|
|
|
PageHelper.offsetPage(offset, limit);
|
|
|
|
|
List<Emr_Fault_Vo> list = emrFaultDetailMapper.selByCol(emrFaultVo);
|
|
|
|
|
|
|
|
|
|
JSONArray powerUsers = powerUserService.getPowerUserList("1");
|
|
|
|
|
List<JSONObject> powerUserList = JSONArray.parseArray(powerUsers.toJSONString(), JSONObject.class);
|
|
|
|
|
if (powerUserList != null){
|
|
|
|
|
Map<String,JSONObject> mappedMovies = Maps.uniqueIndex(powerUserList, new Function<JSONObject,String>() {
|
|
|
|
|
@Override
|
|
|
|
|
public String apply(JSONObject temp) {
|
|
|
|
|
return temp.getString("userName");
|
|
|
|
|
}});
|
|
|
|
|
|
|
|
|
|
for (Emr_Fault_Vo emr_fault_vo : list) {
|
|
|
|
|
|
|
|
|
|
JSONObject userInfo = mappedMovies.get(emr_fault_vo.getDoctorInCharge());
|
|
|
|
|
//创建人
|
|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new OffsetLimitPage((Page) list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean compare(String time1,String time2) throws ParseException{
|
|
|
|
|
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
|
|
|
|
|
Date a=sdf.parse(time1);
|
|
|
|
|
Date b=sdf.parse(time2);
|
|
|
|
|
//a早于b返回true
|
|
|
|
|
if(a.before(b)){
|
|
|
|
|
return true;
|
|
|
|
|
}else{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|