规范updateDisDate参数,修改日志保存时间为180天

docus_webservice_1.1
tan 10 months ago
parent a217021871
commit 05ac45f06e

@ -1,6 +1,8 @@
package com.docus.webservice.config;
import com.docus.webservice.handler.TBasicWebService;
import com.docus.webservice.service.IPcmachineService;
import com.docus.webservice.service.ITBasicService;
import io.swagger.models.auth.In;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -8,11 +10,19 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Component
public class MyScheduling {
@Autowired
IPcmachineService pcmachineService;
@Autowired
private ITBasicService tbasicWebService;
private Logger logger = LogManager.getLogger(MyScheduling.class);
@ -27,4 +37,37 @@ public class MyScheduling {
//
// }
//每天00:01执行一次
@Scheduled(cron = "0 1 0 * * ?")
public void mergePreRecords() {
logger.info("----开始合并预处理数据----");
Map<String, String> dateMap = getDateCollectionTime(new Date(), 3);
tbasicWebService.mergePreRecords(dateMap.get("startDate"), dateMap.get("endDate"));
logger.info("----合并预处理数据结束----");
}
/**
* x
*
* @param date
* @return
*/
public static Map<String, String> getDateCollectionTime(Date date, int day) {
Date dBefore;
Calendar calendar = Calendar.getInstance(); //得到日历
calendar.setTime(date);//把当前时间赋给日历
calendar.add(Calendar.DAY_OF_MONTH, -day); //设置为前day天
dBefore = calendar.getTime(); //得到前一天的时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式
String defaultStartDate = sdf.format(dBefore); //格式化前一天
defaultStartDate = defaultStartDate + " 00:00:00";
String defaultEndDate = defaultStartDate.substring(0, 10) + " 23:59:59";
Map<String, String> map = new HashMap<>();
map.put("startDate", defaultStartDate);
map.put("endDate", defaultEndDate);
return map;
}
}

@ -6,37 +6,37 @@ import javax.jws.WebService;
@WebService
public interface ITBasicWebService {
// /**
// * 住院患者信息新增
// * @param tbasic
// * @return
// */
// @WebMethod
// String OUT_HOS_REG(String tbasic);
//
// /**
// * 住院患者修改
// * @param tbasic
// * @return
// */
// @WebMethod
// String OUT_HOS_CAN(String tbasic);
//
// /**
// * 出院患者信息新增
// * @param tbasic
// * @return
// */
// @WebMethod
// String DISCHARGE_REG(String tbasic);
//
// /**
// * 出院患者修改
// * @param tbasic
// * @return
// */
// @WebMethod
// String DISCHARGE_CAN(String tbasic);
/**
*
* @param tbasic
* @return
*/
@WebMethod
String OUT_HOS_REG(String tbasic);
/**
*
* @param tbasic
* @return
*/
@WebMethod
String OUT_HOS_CAN(String tbasic);
/**
*
* @param tbasic
* @return
*/
@WebMethod
String DISCHARGE_REG(String tbasic);
/**
*
* @param tbasic
* @return
*/
@WebMethod
String DISCHARGE_CAN(String tbasic);
/**
*

@ -88,162 +88,246 @@ public class TBasicWebService implements ITBasicWebService {
mrReportErrorService.save(mrReportError);
}
// /**
// * 住院成员信息新增
// *
// * @param tbasic
// * @return
// */
// @Override
// public String OUT_HOS_REG(String tbasic) {
// log.info("住院成员信息新增xml" + tbasic);
// try {
// //解析xml
// HashMap<String, Object> tBasicMap = new HashMap<>();
// HashMap<String, Object> tBasicSubMap = new HashMap<>();
// HashMap dateMap = new HashMap<>();
// // Date disDate=null;
// parseXml(tbasic, tBasicMap, tBasicSubMap, dateMap);
// //处理业务
// TBasic tBasic;
// if (tBasicMap != null && tBasicMap.size() > 0) {
// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
//// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
//// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
//// tBasic.setIsDead(isDead);
//// }
// //特殊处理出院时间 没有就取当前时间
// Date currentDate = new Date();
//// if(tBasic.getDisDate()==null){
//// tBasic.setDisDate(currentDate);
//// }
// //tBasic.setCreateTime(currentDate);
// tBasic.setCreateTime(currentDate);
// itBasicService.savaAndSub(tBasic, tBasicSubMap,String.valueOf(dateMap.get("preJzh")));
// // this.saveAndCall(tBasic);
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// SimpleDateFormat sdf1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.US);
// if (dateMap.size() > 1) {
// Date admissDate = sdf1.parse(String.valueOf(dateMap.get("admissDate")));
// Date disDate = sdf1.parse(String.valueOf(dateMap.get("disDate")));
// tBasic.setAdmissDate(sdf.parse(sdf.format(admissDate)));
// tBasic.setDisDate(sdf.parse(sdf.format(disDate)));
// tBasic.setInpatientNo(dateMap.get("inpatientNo").toString());
// }
// pcmachineService.saveAndCall(tBasic);
// } else {
// insertLog(tbasic);
// log.info("请提供完整的xml");
// return ResultUtils.fail("请提供完整的xml");
// }
// } catch (RuntimeException e) {
// insertLog(tbasic);
// log.error("OUT_HOS_REG方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// } catch (Exception e) {
// e.printStackTrace();
// log.error("OUT_HOS_REG方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// log.info("OUT_HOS_REG返回结果:" + ResultUtils.success().asXML());
// return ResultUtils.success().asXML();
// }
//
//
// /**
// * 住院解析xml
// *
// * @param tbasic
// * @param tBasicMap
// * @param tBasicSubMap
// */
// private void parseXml(String tbasic, HashMap<String, Object> tBasicMap, HashMap<String, Object> tBasicSubMap, HashMap dateMap) {
// XmlUtils xmlUtils = null;
// log.info("开始解析xml");
// try {
// xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
// //解析json映射文件
// String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_ADDRESS.getMessage());
// Map jsonMap = JSON.parseObject(json, Map.class);
//
// List<SelectColumn> selectColumns = JSON.parseArray(String.valueOf(jsonMap.get(Codes.SELECT_COLUMNS.getMessage())), SelectColumn.class);
// String value;
// for (SelectColumn selectColumn : selectColumns) {
// try {
// value = xmlUtils.getElementText(selectColumn.getQualityColumn()) == null ? null : String.valueOf(xmlUtils.getElementText(selectColumn.getQualityColumn()));
// } catch (RuntimeException e) {
// String message = e.getMessage();
// log.error("解析xml出现:" + message);
// throw new RuntimeException(message);
// }
// if (StringUtils.isBlank(value)) {
// if (selectColumn.getByNull() == 0) {
// insertLog(tbasic);
// log.error(selectColumn.getQualityColumn() + " 字段不能为空值");
// throw new RuntimeException(selectColumn.getQualityColumn() + " 字段不能为空值");
// } else {
// continue;
// }
// } else {
// if (selectColumn.getTableName().equals("t_basic")) {
// tBasicMap.put(selectColumn.getColumnName(), value);
/**
*
*
* @param tbasic
* @return
*/
@Override
public String OUT_HOS_REG(String tbasic) {
log.info("住院成员信息新增xml" + tbasic);
try {
//解析xml
HashMap<String, Object> tBasicMap = new HashMap<>();
HashMap<String, Object> tBasicSubMap = new HashMap<>();
HashMap dateMap = new HashMap<>();
// Date disDate=null;
parseXml(tbasic, tBasicMap, tBasicSubMap, dateMap);
//处理业务
TBasic tBasic;
if (tBasicMap != null && tBasicMap.size() > 0) {
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
// tBasic.setIsDead(isDead);
// }
// if (selectColumn.getTableName().equals("t_basic_sub")) {
// tBasicSubMap.put(selectColumn.getColumnName(), value);
//特殊处理出院时间 没有就取当前时间
Date currentDate = new Date();
// if(tBasic.getDisDate()==null){
// tBasic.setDisDate(currentDate);
// }
// }
// }
// try {
// String preJzh = xmlUtils.getElementText("PRE_INHOSP_NO");
// System.err.println(preJzh);
// if (null != preJzh && !"".equals(preJzh)) {
// //预住院患者记录
// TBasic tBasic = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", preJzh));
// //正式住院患者记录
// TBasic tBasic1 = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasicMap.get("jzh")));
// if (null != tBasic && null != tBasic1) {
// dateMap.put("admissDate", tBasic.getAdmissDate().toString());
// dateMap.put("disDate", tBasic1.getAdmissDate().toString());
// dateMap.put("inpatientNo", tBasic.getInpatientNo());
// //将预住院患者病历文件patient_id改为正式住院的patient_id合并病历
// int i = tScanAssortMapper.updateByPatientId(tBasic1.getPatientId(), tBasic.getPatientId());
// if (i <= 0) {
// log.info("当前预住院没有文件!");
// }else {
// log.info( tBasic1.getJzh()+"本次预住院合并"+i+"份报告");
// }
// } else {
// log.error("正式住院: "+tBasicMap.get("jzh") + " 预住院或正式住院患者不存在!");
//tBasic.setCreateTime(currentDate);
tBasic.setCreateTime(currentDate);
itBasicService.savaAndSub(tBasic, tBasicSubMap,String.valueOf(dateMap.get("preJzh")));
// this.saveAndCall(tBasic);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf1 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.US);
if (dateMap.size() > 1) {
Date admissDate = sdf1.parse(String.valueOf(dateMap.get("admissDate")));
Date disDate = sdf1.parse(String.valueOf(dateMap.get("disDate")));
tBasic.setAdmissDate(sdf.parse(sdf.format(admissDate)));
tBasic.setDisDate(sdf.parse(sdf.format(disDate)));
tBasic.setInpatientNo(dateMap.get("inpatientNo").toString());
}
pcmachineService.saveAndCall(tBasic);
} else {
insertLog(tbasic);
log.info("请提供完整的xml");
return ResultUtils.fail("请提供完整的xml");
}
} catch (RuntimeException e) {
insertLog(tbasic);
log.error("OUT_HOS_REG方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
log.error("OUT_HOS_REG方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
}
log.info("OUT_HOS_REG返回结果:" + ResultUtils.success().asXML());
return ResultUtils.success().asXML();
}
/**
* xml
*
* @param tbasic
* @param tBasicMap
* @param tBasicSubMap
*/
private void parseXml(String tbasic, HashMap<String, Object> tBasicMap, HashMap<String, Object> tBasicSubMap, HashMap dateMap) {
XmlUtils xmlUtils = null;
log.info("开始解析xml");
try {
xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//解析json映射文件
String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_ADDRESS.getMessage());
Map jsonMap = JSON.parseObject(json, Map.class);
List<SelectColumn> selectColumns = JSON.parseArray(String.valueOf(jsonMap.get(Codes.SELECT_COLUMNS.getMessage())), SelectColumn.class);
String value;
for (SelectColumn selectColumn : selectColumns) {
try {
value = xmlUtils.getElementText(selectColumn.getQualityColumn()) == null ? null : String.valueOf(xmlUtils.getElementText(selectColumn.getQualityColumn()));
} catch (RuntimeException e) {
String message = e.getMessage();
log.error("解析xml出现:" + message);
throw new RuntimeException(message);
}
if (StringUtils.isBlank(value)) {
if (selectColumn.getByNull() == 0) {
insertLog(tbasic);
log.error(selectColumn.getQualityColumn() + " 字段不能为空值");
throw new RuntimeException(selectColumn.getQualityColumn() + " 字段不能为空值");
} else {
continue;
}
} else {
if (selectColumn.getTableName().equals("t_basic")) {
tBasicMap.put(selectColumn.getColumnName(), value);
}
if (selectColumn.getTableName().equals("t_basic_sub")) {
tBasicSubMap.put(selectColumn.getColumnName(), value);
}
}
}
try {
String preJzh = xmlUtils.getElementText("PRE_INHOSP_NO");
System.err.println(preJzh);
if (null != preJzh && !"".equals(preJzh)) {
//预住院患者记录
TBasic tBasic = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", preJzh));
//正式住院患者记录
TBasic tBasic1 = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasicMap.get("jzh")));
if (null != tBasic && null != tBasic1) {
dateMap.put("admissDate", tBasic.getAdmissDate().toString());
dateMap.put("disDate", tBasic1.getAdmissDate().toString());
dateMap.put("inpatientNo", tBasic.getInpatientNo());
//将预住院患者病历文件patient_id改为正式住院的patient_id合并病历
int i = tScanAssortMapper.updateByPatientId(tBasic1.getPatientId(), tBasic.getPatientId());
if (i <= 0) {
log.info("当前预住院没有文件!");
}else {
log.info( tBasic1.getJzh()+"本次预住院合并"+i+"份报告");
}
} else {
log.error("正式住院: "+tBasicMap.get("jzh") + " 预住院或正式住院患者不存在!");
}
}
dateMap.put("preJzh",preJzh);
} catch (Exception e) {
log.error("预住院错误信息{}", e.getMessage());
}
}
/**
*
*
* @param tbasic
* @return
*/
@Override
public String OUT_HOS_CAN(String tbasic) {
log.info("住院成员信息修改xml" + tbasic);
try {
long l = System.currentTimeMillis();
HashMap<String, Object> tBasicMap = new HashMap<>();
HashMap<String, Object> tBasicSubMap = new HashMap<>();
HashMap<String, Date> dateMap = new HashMap<>();
//parseXml(tbasic, tBasicMap, tBasicSubMap);
parseXml(tbasic, tBasicMap, tBasicSubMap, dateMap);
TBasic tBasic;
XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
String elementText = xmlUtils.getElementText("IS_ADM_CANCEL");
if (elementText.equals("1")) {
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
tBasic.setIsCancel("1");
int update = tBasicMapper.update(tBasic, new QueryWrapper<TBasic>().eq("jzh", tBasic.getJzh()));
if (update > 0) {
log.info(tBasic.getJzh() + "取消入院成功!");
}
} else {
long l1 = System.currentTimeMillis();
log.info("解析xml时间------" + (l1 - l));
//处理业务
long l2 = System.currentTimeMillis();
if (tBasicMap != null && tBasicMap.size() > 0) {
long l3 = System.currentTimeMillis();
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
// tBasic.setIsDead(isDead);
// }
// }
// dateMap.put("preJzh",preJzh);
// } catch (Exception e) {
// log.error("预住院错误信息{}", e.getMessage());
// }
//
// }
//
// /**
// * 住院成员信息修改
// *
// * @param tbasic
// * @return
// */
// @Override
// public String OUT_HOS_CAN(String tbasic) {
// log.info("住院成员信息修改xml" + tbasic);
// try {
// long l = System.currentTimeMillis();
// HashMap<String, Object> tBasicMap = new HashMap<>();
// HashMap<String, Object> tBasicSubMap = new HashMap<>();
// HashMap<String, Date> dateMap = new HashMap<>();
// //parseXml(tbasic, tBasicMap, tBasicSubMap);
// parseXml(tbasic, tBasicMap, tBasicSubMap, dateMap);
// TBasic tBasic;
// XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
long l4 = System.currentTimeMillis();
log.info("获取tBasic对象时间----------" + (l4 - l3));
if (StringUtils.isBlank(tBasic.getEmpId())) {
insertLog(tbasic);
log.info("emp_id字段不能为空值");
return ResultUtils.fail("emp_id字段不能为空值");
}
long l5 = System.currentTimeMillis();
tBasic.setUpdateTime(new Date());
try {
itBasicService.updateAndSub(tBasic, tBasicSubMap,String.valueOf(dateMap.get("preJzh")));
// this.saveAndCall(tBasic);
long l6 = System.currentTimeMillis();
log.info("update耗时----------" + (l6 - l5));
long l7 = System.currentTimeMillis();
tBasic.setAdmissDate(dateMap.get("admissDate"));
tBasic.setDisDate(dateMap.get("disDate"));
pcmachineService.saveAndCall(tBasic);
long l8 = System.currentTimeMillis();
log.info("saveAndCall耗时-------" + (l8 - l7));
} catch (RuntimeException e) {
insertLog(tbasic);
e.printStackTrace();
log.error("OUT_HOS_CAN方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
}
} else {
insertLog(tbasic);
return ResultUtils.fail("请提供完整的xml");
}
long l3 = System.currentTimeMillis();
log.info("业务处理时间------------" + (l3 - l2));
}
} catch (Exception e) {
e.printStackTrace();
log.error("OUT_HOS_CAN方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
}
log.info("OUT_HOS_CAN方法运行结果:" + ResultUtils.success().asXML());
return ResultUtils.success().asXML();
}
/**
*
*
* @param tbasic
* @return
*/
@Override
public String DISCHARGE_REG(String tbasic) {
log.info("出院成员信息新增xml" + tbasic);
try {
//解析xml
HashMap<String, Object> tBasicMap = new HashMap<>();
HashMap<String, Object> tBasicSubMap = new HashMap<>();
HashMap<String, Object> tBasicExtendMap = new HashMap<>();
OutParseXml(tbasic, tBasicMap, tBasicSubMap, tBasicExtendMap);
//处理业务
TBasic tBasic;
XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
// String elementText = xmlUtils.getElementText("IS_ADM_CANCEL");
// if (elementText.equals("1")) {
// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
@ -253,201 +337,117 @@ public class TBasicWebService implements ITBasicWebService {
// log.info(tBasic.getJzh() + "取消入院成功!");
// }
//
// } else {
// long l1 = System.currentTimeMillis();
// log.info("解析xml时间------" + (l1 - l));
// //处理业务
// long l2 = System.currentTimeMillis();
//
// if (tBasicMap != null && tBasicMap.size() > 0) {
// long l3 = System.currentTimeMillis();
// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
//// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
//// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
//// tBasic.setIsDead(isDead);
//// }
// long l4 = System.currentTimeMillis();
// log.info("获取tBasic对象时间----------" + (l4 - l3));
// if (StringUtils.isBlank(tBasic.getEmpId())) {
// insertLog(tbasic);
// log.info("emp_id字段不能为空值");
// return ResultUtils.fail("emp_id字段不能为空值");
// }
// long l5 = System.currentTimeMillis();
// tBasic.setUpdateTime(new Date());
// try {
// itBasicService.updateAndSub(tBasic, tBasicSubMap,String.valueOf(dateMap.get("preJzh")));
//// this.saveAndCall(tBasic);
// long l6 = System.currentTimeMillis();
// log.info("update耗时----------" + (l6 - l5));
// long l7 = System.currentTimeMillis();
// tBasic.setAdmissDate(dateMap.get("admissDate"));
// tBasic.setDisDate(dateMap.get("disDate"));
// pcmachineService.saveAndCall(tBasic);
// long l8 = System.currentTimeMillis();
// log.info("saveAndCall耗时-------" + (l8 - l7));
// } catch (RuntimeException e) {
// insertLog(tbasic);
// e.printStackTrace();
// log.error("OUT_HOS_CAN方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// } else {
// insertLog(tbasic);
// return ResultUtils.fail("请提供完整的xml");
// }
// long l3 = System.currentTimeMillis();
// log.info("业务处理时间------------" + (l3 - l2));
// }
//
// } catch (Exception e) {
// e.printStackTrace();
// log.error("OUT_HOS_CAN方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// log.info("OUT_HOS_CAN方法运行结果:" + ResultUtils.success().asXML());
// return ResultUtils.success().asXML();
// }
//
//
// /**
// * 出院成员信息新增
// *
// * @param tbasic
// * @return
// */
// @Override
// public String DISCHARGE_REG(String tbasic) {
// log.info("出院成员信息新增xml" + tbasic);
// try {
// //解析xml
// HashMap<String, Object> tBasicMap = new HashMap<>();
// HashMap<String, Object> tBasicSubMap = new HashMap<>();
// HashMap<String, Object> tBasicExtendMap = new HashMap<>();
// OutParseXml(tbasic, tBasicMap, tBasicSubMap, tBasicExtendMap);
// //处理业务
// TBasic tBasic;
// XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
//// String elementText = xmlUtils.getElementText("IS_ADM_CANCEL");
//// if (elementText.equals("1")) {
//// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
//// tBasic.setIsCancel("1");
//// int update = tBasicMapper.update(tBasic, new QueryWrapper<TBasic>().eq("jzh", tBasic.getJzh()));
//// if (update > 0) {
//// log.info(tBasic.getJzh() + "取消入院成功!");
//// }
////
//// }else {
// TBasicExtend tBasicExtend;
// if (tBasicMap != null && tBasicMap.size() > 0) {
// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
// tBasicExtend = JSON.parseObject(JSON.toJSONString(tBasicExtendMap), TBasicExtend.class);
// tBasicExtend.setPatientId(tBasic.getPatientId());
//// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
//// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
//// tBasic.setIsDead(isDead);
//// }
// //特殊处理出院时间 没有就取当前时间
//
//// if(tBasic.getDisDate()==null){
//// tBasic.setDisDate(currentDate);
//// }
// //tBasic.setCreateTime(currentDate);
//
// itBasicService.OutSavaAndSub(tBasic, tBasicSubMap, tBasicExtend);
// // this.saveAndCall(tBasic);
// pcmachineService.saveAndCallOut(tBasic);
// } else {
// insertLog(tbasic);
// log.info("请提供完整的xml");
// return ResultUtils.fail("请提供完整的xml");
// }else {
TBasicExtend tBasicExtend;
if (tBasicMap != null && tBasicMap.size() > 0) {
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
tBasicExtend = JSON.parseObject(JSON.toJSONString(tBasicExtendMap), TBasicExtend.class);
tBasicExtend.setPatientId(tBasic.getPatientId());
// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
// tBasic.setIsDead(isDead);
// }
// // }
// } catch (RuntimeException e) {
// insertLog(tbasic);
// log.error("DISCHARGE_REG方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// } catch (Exception e) {
// e.printStackTrace();
// log.error("DISCHARGE_REG方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// log.info("DISCHARGE_REG返回结果:" + ResultUtils.success().asXML());
// return ResultUtils.success().asXML();
// }
//
// /**
// * 出院成员信息修改
// *
// * @param tbasic
// * @return
// */
// @Override
// public String DISCHARGE_CAN(String tbasic) {
// log.info("出院成员信息修改xml" + tbasic);
//
// try {
//
// long l = System.currentTimeMillis();
// HashMap<String, Object> tBasicMap = new HashMap<>();
// HashMap<String, Object> tBasicSubMap = new HashMap<>();
// HashMap<String, Object> tBasicExtendMap = new HashMap<>();
// TBasic tBasic;
// TBasicExtend tBasicExtend;
// OutParseXml(tbasic, tBasicMap, tBasicSubMap, tBasicExtendMap);
// long l1 = System.currentTimeMillis();
// log.info("解析xml时间------" + (l1 - l));
// //处理业务
// long l2 = System.currentTimeMillis();
//
// if (tBasicMap != null && tBasicMap.size() > 0) {
// long l3 = System.currentTimeMillis();
// tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
// tBasicExtend = JSON.parseObject(JSON.toJSONString(tBasicExtendMap), TBasicExtend.class);
// tBasicExtend.setPatientId(tBasic.getPatientId());
//// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
//// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
//// tBasic.setIsDead(isDead);
//// }
// long l4 = System.currentTimeMillis();
// log.info("获取tBasic对象时间----------" + (l4 - l3));
// if (StringUtils.isBlank(tBasic.getJzh())) {
// insertLog(tbasic);
// log.info("INHOSP_NO字段不能为空值");
// return ResultUtils.fail("INHOSP_NO字段不能为空值");
//特殊处理出院时间 没有就取当前时间
// if(tBasic.getDisDate()==null){
// tBasic.setDisDate(currentDate);
// }
// long l5 = System.currentTimeMillis();
// tBasic.setUpdateTime(new Date());
// try {
// itBasicService.OutUpdateAndSub(tBasic, tBasicSubMap, tBasicExtend);
//// this.saveAndCall(tBasic);
// long l6 = System.currentTimeMillis();
// log.info("update耗时----------" + (l6 - l5));
// long l7 = System.currentTimeMillis();
// pcmachineService.saveAndCallOut(tBasic);
// long l8 = System.currentTimeMillis();
// log.info("saveAndCall耗时-------" + (l8 - l7));
// } catch (RuntimeException e) {
// insertLog(tbasic);
// e.printStackTrace();
// log.error("DISCHARGE_CAN方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
//tBasic.setCreateTime(currentDate);
itBasicService.OutSavaAndSub(tBasic, tBasicSubMap, tBasicExtend);
// this.saveAndCall(tBasic);
pcmachineService.saveAndCallOut(tBasic);
} else {
insertLog(tbasic);
log.info("请提供完整的xml");
return ResultUtils.fail("请提供完整的xml");
}
// }
} catch (RuntimeException e) {
insertLog(tbasic);
log.error("DISCHARGE_REG方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
log.error("DISCHARGE_REG方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
}
log.info("DISCHARGE_REG返回结果:" + ResultUtils.success().asXML());
return ResultUtils.success().asXML();
}
/**
*
*
* @param tbasic
* @return
*/
@Override
public String DISCHARGE_CAN(String tbasic) {
log.info("出院成员信息修改xml" + tbasic);
try {
long l = System.currentTimeMillis();
HashMap<String, Object> tBasicMap = new HashMap<>();
HashMap<String, Object> tBasicSubMap = new HashMap<>();
HashMap<String, Object> tBasicExtendMap = new HashMap<>();
TBasic tBasic;
TBasicExtend tBasicExtend;
OutParseXml(tbasic, tBasicMap, tBasicSubMap, tBasicExtendMap);
long l1 = System.currentTimeMillis();
log.info("解析xml时间------" + (l1 - l));
//处理业务
long l2 = System.currentTimeMillis();
if (tBasicMap != null && tBasicMap.size() > 0) {
long l3 = System.currentTimeMillis();
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
tBasicExtend = JSON.parseObject(JSON.toJSONString(tBasicExtendMap), TBasicExtend.class);
tBasicExtend.setPatientId(tBasic.getPatientId());
// if(StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))||StringUtils.isNotBlank(String.valueOf("is_dead"))){
// String isDead=StringUtils.isNotBlank(String.valueOf(tBasicMap.get("isDead")))?String.valueOf(tBasicMap.get("isDead")):String.valueOf(tBasicMap.get("is_dead"));
// tBasic.setIsDead(isDead);
// }
// } else {
// insertLog(tbasic);
// return ResultUtils.fail("请提供完整的xml");
// }
// long l3 = System.currentTimeMillis();
// log.info("业务处理时间------------" + (l3 - l2));
// } catch (Exception e) {
// e.printStackTrace();
// log.error("DISCHARGE_CAN方法中错误信息:" + e.getMessage());
// return ResultUtils.fail(e.getMessage());
// }
// log.info("DISCHARGE_CAN方法运行结果:" + ResultUtils.success().asXML());
// return ResultUtils.success().asXML();
// }
//
long l4 = System.currentTimeMillis();
log.info("获取tBasic对象时间----------" + (l4 - l3));
if (StringUtils.isBlank(tBasic.getJzh())) {
insertLog(tbasic);
log.info("INHOSP_NO字段不能为空值");
return ResultUtils.fail("INHOSP_NO字段不能为空值");
}
long l5 = System.currentTimeMillis();
tBasic.setUpdateTime(new Date());
try {
itBasicService.OutUpdateAndSub(tBasic, tBasicSubMap, tBasicExtend);
// this.saveAndCall(tBasic);
long l6 = System.currentTimeMillis();
log.info("update耗时----------" + (l6 - l5));
long l7 = System.currentTimeMillis();
pcmachineService.saveAndCallOut(tBasic);
long l8 = System.currentTimeMillis();
log.info("saveAndCall耗时-------" + (l8 - l7));
} catch (RuntimeException e) {
insertLog(tbasic);
e.printStackTrace();
log.error("DISCHARGE_CAN方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
}
} else {
insertLog(tbasic);
return ResultUtils.fail("请提供完整的xml");
}
long l3 = System.currentTimeMillis();
log.info("业务处理时间------------" + (l3 - l2));
} catch (Exception e) {
e.printStackTrace();
log.error("DISCHARGE_CAN方法中错误信息:" + e.getMessage());
return ResultUtils.fail(e.getMessage());
}
log.info("DISCHARGE_CAN方法运行结果:" + ResultUtils.success().asXML());
return ResultUtils.success().asXML();
}
/**
*
*
@ -593,63 +593,62 @@ public class TBasicWebService implements ITBasicWebService {
}
}
// /**
// * 出院解析xml
// *
// * @param tbasic
// * @param tBasicMap
// * @param tBasicSubMap
// */
// private void OutParseXml(String tbasic, HashMap<String, Object> tBasicMap, HashMap<String, Object> tBasicSubMap, HashMap<String, Object> tBasicExtendMap) {
// XmlUtils xmlUtils = null;
// log.info("开始解析xml");
// try {
// xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
// //解析json映射文件
// String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_OUT_ADDRESS.getMessage());
// Map jsonMap = JSON.parseObject(json, Map.class);
//
// List<SelectColumn> selectColumns = JSON.parseArray(String.valueOf(jsonMap.get(Codes.SELECT_COLUMNS.getMessage())), SelectColumn.class);
// String value;
// for (SelectColumn selectColumn : selectColumns) {
// try {
// value = xmlUtils.getElementText(selectColumn.getQualityColumn()) == null ? null : String.valueOf(xmlUtils.getElementText(selectColumn.getQualityColumn()));
// } catch (RuntimeException e) {
// String message = e.getMessage();
// log.error("解析xml出现:" + message);
// throw new RuntimeException(message);
// }
// if (StringUtils.isBlank(value)) {
// if (selectColumn.getByNull() == 0) {
// insertLog(tbasic);
// log.error(selectColumn.getQualityColumn() + " 字段不能为空值");
// throw new RuntimeException(selectColumn.getQualityColumn() + " 字段不能为空值");
// } else {
// continue;
// }
// } else {
// if (selectColumn.getTableName().equals("t_basic")) {
// tBasicMap.put(selectColumn.getColumnName(), value);
// }
// if (selectColumn.getTableName().equals("t_basic_extend")) {
// tBasicExtendMap.put(selectColumn.getColumnName(), value);
// }
// if (selectColumn.getTableName().equals("t_basic_sub")) {
// tBasicSubMap.put(selectColumn.getColumnName(), value);
// }
// }
// }
// try {
// TBasic tBasic = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasicMap.get("jzh")));
// tBasicMap.put("patient_id",tBasic.getPatientId());
//
// itBasicService.merge(tBasicMap);
// }catch (Exception e) {
// log.info(e.getMessage());
// }
// }
//
/**
* xml
*
* @param tbasic
* @param tBasicMap
* @param tBasicSubMap
*/
private void OutParseXml(String tbasic, HashMap<String, Object> tBasicMap, HashMap<String, Object> tBasicSubMap, HashMap<String, Object> tBasicExtendMap) {
XmlUtils xmlUtils = null;
log.info("开始解析xml");
try {
xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//解析json映射文件
String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_OUT_ADDRESS.getMessage());
Map jsonMap = JSON.parseObject(json, Map.class);
List<SelectColumn> selectColumns = JSON.parseArray(String.valueOf(jsonMap.get(Codes.SELECT_COLUMNS.getMessage())), SelectColumn.class);
String value;
for (SelectColumn selectColumn : selectColumns) {
try {
value = xmlUtils.getElementText(selectColumn.getQualityColumn()) == null ? null : String.valueOf(xmlUtils.getElementText(selectColumn.getQualityColumn()));
} catch (RuntimeException e) {
String message = e.getMessage();
log.error("解析xml出现:" + message);
throw new RuntimeException(message);
}
if (StringUtils.isBlank(value)) {
if (selectColumn.getByNull() == 0) {
insertLog(tbasic);
log.error(selectColumn.getQualityColumn() + " 字段不能为空值");
throw new RuntimeException(selectColumn.getQualityColumn() + " 字段不能为空值");
} else {
continue;
}
} else {
if (selectColumn.getTableName().equals("t_basic")) {
tBasicMap.put(selectColumn.getColumnName(), value);
}
if (selectColumn.getTableName().equals("t_basic_extend")) {
tBasicExtendMap.put(selectColumn.getColumnName(), value);
}
if (selectColumn.getTableName().equals("t_basic_sub")) {
tBasicSubMap.put(selectColumn.getColumnName(), value);
}
}
}
try {
TBasic tBasic = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasicMap.get("jzh")));
tBasicMap.put("patient_id",tBasic.getPatientId());
itBasicService.merge(tBasicMap);
}catch (Exception e) {
log.info(e.getMessage());
}
}
}

@ -3,6 +3,7 @@ package com.docus.webservice.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.docus.webservice.entity.TBasic;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;
@ -19,5 +20,6 @@ import java.util.Map;
*/
public interface TBasicMapper extends BaseMapper<TBasic> {
List<Map> selectByDisDateList(@Param("startDate") String startDate, @Param("endDate") String endDate, @RequestParam("size") int size, @RequestParam("current") int current);
List<Map> selectByDisDateList(@Param("startDate") String startDate, @Param("endDate") String endDate, @RequestParam("current") int current, @RequestParam("size") int size);
}

@ -28,5 +28,5 @@ public interface ITBasicService extends IService<TBasic> {
//合并预住院病历
void mergePreRecords(String startDate,String endDate);
void merge(Map patientId);
void merge(Map<String, Object> patientId);
}

@ -168,15 +168,16 @@ public class TBasicServiceImpl extends ServiceImpl<TBasicMapper, TBasic> impleme
//页码
int startrow;
//每页10条数据
int endrow = 10;
final int size = 500;
List<Map> patientIds;
endDate = endDate + " 23:59:59";
for (startrow = 0; ; startrow += 10) {
patientIds = tBasicMapper.selectByDisDateList(startDate, endDate, startrow, endrow);
for (startrow = 0; ; startrow += size) {
patientIds = tBasicMapper.selectByDisDateList(startDate, endDate,startrow,size);
if (null == patientIds || patientIds.size() <= 0) {
log.info("本次预住院病历合并结束!");
break;
}
log.info("预住院病历合并补偿查询startDate:{},endDate:{},startrow:{} size:{},总共:{}条数据",startDate, endDate, startrow, size, patientIds.size());
for (Map patientId : patientIds) {
try {
merge(patientId);
@ -190,30 +191,31 @@ public class TBasicServiceImpl extends ServiceImpl<TBasicMapper, TBasic> impleme
}
@Override
public void merge(Map patientId) {
public void merge(Map<String, Object> patientId) {
TBasicExtend tBasicExtend;
TBasic tBasic;
log.info(patientId.get("inpatient_no") + ":合并预住院病历开始");
try {
tBasicExtend = tBasicExtendMapper.selectOne(new QueryWrapper<TBasicExtend>().eq("patient_id", patientId.get("patient_id")));
if (null != tBasicExtend.getPreJzh()) {
if (tBasicExtend != null && tBasicExtend.getPreJzh() != null) {
tBasic = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasicExtend.getPreJzh()));
//将预住院患者病历文件patient_id改为正式住院的patient_id合并病历
int i = tScanAssortMapper.updateByPatientId(String.valueOf(patientId.get("patient_id")), tBasic.getPatientId());
if (i <= 0) {
log.info("当前预住院没有文件!");
if (tBasic != null) {
int i = tScanAssortMapper.updateByPatientId(String.valueOf(patientId.get("patient_id")), tBasic.getPatientId());
if (i <= 0) {
log.info("当前预住院没有文件!");
} else {
log.info(patientId.get("inpatient_no") + ":本次预住院合并" + i + "份报告");
}
} else {
log.info(patientId.get("inpatient_no") + ":本次预住院合并" + i + "份报告");
log.info(patientId.get("inpatient_no") + ":未查询到预住院信息!");
}
}else {
log.info(patientId.get("inpatient_no")+":未查询到预住院信息!");
} else {
log.info(patientId.get("inpatient_no") + ":未查询到预住院信息!");
}
} catch (Exception e) {
log.info("预住院文件合并出错!--" + e.getMessage());
log.error("预住院文件合并出错!-- 患者号: " + patientId.get("inpatient_no") + " 错误信息: " + e.getMessage(), e);
}
}
/**
*
*

@ -21,11 +21,11 @@
<!-- 活动文件的名字会根据fileNamePattern的值每隔一段时间改变一次 -->
<!-- 文件名log/demo.2017-12-05.0.log -->
<fileNamePattern>log/demo.%d.%i.log</fileNamePattern>
<!-- 每产生一个日志文件,该日志文件的保存期限为30天 -->
<maxHistory>30</maxHistory>
<!-- 每产生一个日志文件,该日志文件的保存期限为180天 -->
<maxHistory>180</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- maxFileSize:这是活动文件的大小默认值是10MB测试时可改成1KB看效果 -->
<maxFileSize>10MB</maxFileSize>
<maxFileSize>300MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>

@ -59,6 +59,6 @@
from docus_medicalrecord.t_basic
where dis_date between #{startDate} and #{endDate}
order by dis_date
limit #{size},#{current}
limit #{current}, #{size}
</select>
</mapper>
Loading…
Cancel
Save