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

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

@ -1,6 +1,8 @@
package com.docus.webservice.config; package com.docus.webservice.config;
import com.docus.webservice.handler.TBasicWebService;
import com.docus.webservice.service.IPcmachineService; import com.docus.webservice.service.IPcmachineService;
import com.docus.webservice.service.ITBasicService;
import io.swagger.models.auth.In; import io.swagger.models.auth.In;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; 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.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; 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 @Component
public class MyScheduling { public class MyScheduling {
@Autowired @Autowired
IPcmachineService pcmachineService; IPcmachineService pcmachineService;
@Autowired
private ITBasicService tbasicWebService;
private Logger logger = LogManager.getLogger(MyScheduling.class); 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 @WebService
public interface ITBasicWebService { public interface ITBasicWebService {
// /** /**
// * 住院患者信息新增 *
// * @param tbasic * @param tbasic
// * @return * @return
// */ */
// @WebMethod @WebMethod
// String OUT_HOS_REG(String tbasic); String OUT_HOS_REG(String tbasic);
//
// /** /**
// * 住院患者修改 *
// * @param tbasic * @param tbasic
// * @return * @return
// */ */
// @WebMethod @WebMethod
// String OUT_HOS_CAN(String tbasic); String OUT_HOS_CAN(String tbasic);
//
// /** /**
// * 出院患者信息新增 *
// * @param tbasic * @param tbasic
// * @return * @return
// */ */
// @WebMethod @WebMethod
// String DISCHARGE_REG(String tbasic); String DISCHARGE_REG(String tbasic);
//
// /** /**
// * 出院患者修改 *
// * @param tbasic * @param tbasic
// * @return * @return
// */ */
// @WebMethod @WebMethod
// String DISCHARGE_CAN(String tbasic); String DISCHARGE_CAN(String tbasic);
/** /**
* *

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

@ -3,6 +3,7 @@ package com.docus.webservice.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.docus.webservice.entity.TBasic; import com.docus.webservice.entity.TBasic;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
@ -19,5 +20,6 @@ import java.util.Map;
*/ */
public interface TBasicMapper extends BaseMapper<TBasic> { 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 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; int startrow;
//每页10条数据 //每页10条数据
int endrow = 10; final int size = 500;
List<Map> patientIds; List<Map> patientIds;
endDate = endDate + " 23:59:59"; endDate = endDate + " 23:59:59";
for (startrow = 0; ; startrow += 10) { for (startrow = 0; ; startrow += size) {
patientIds = tBasicMapper.selectByDisDateList(startDate, endDate, startrow, endrow); patientIds = tBasicMapper.selectByDisDateList(startDate, endDate,startrow,size);
if (null == patientIds || patientIds.size() <= 0) { if (null == patientIds || patientIds.size() <= 0) {
log.info("本次预住院病历合并结束!"); log.info("本次预住院病历合并结束!");
break; break;
} }
log.info("预住院病历合并补偿查询startDate:{},endDate:{},startrow:{} size:{},总共:{}条数据",startDate, endDate, startrow, size, patientIds.size());
for (Map patientId : patientIds) { for (Map patientId : patientIds) {
try { try {
merge(patientId); merge(patientId);
@ -190,30 +191,31 @@ public class TBasicServiceImpl extends ServiceImpl<TBasicMapper, TBasic> impleme
} }
@Override @Override
public void merge(Map patientId) { public void merge(Map<String, Object> patientId) {
TBasicExtend tBasicExtend; TBasicExtend tBasicExtend;
TBasic tBasic; TBasic tBasic;
log.info(patientId.get("inpatient_no") + ":合并预住院病历开始"); log.info(patientId.get("inpatient_no") + ":合并预住院病历开始");
try { try {
tBasicExtend = tBasicExtendMapper.selectOne(new QueryWrapper<TBasicExtend>().eq("patient_id", patientId.get("patient_id"))); 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())); tBasic = tBasicMapper.selectOne(new QueryWrapper<TBasic>().eq("jzh", tBasicExtend.getPreJzh()));
//将预住院患者病历文件patient_id改为正式住院的patient_id合并病历 if (tBasic != null) {
int i = tScanAssortMapper.updateByPatientId(String.valueOf(patientId.get("patient_id")), tBasic.getPatientId()); int i = tScanAssortMapper.updateByPatientId(String.valueOf(patientId.get("patient_id")), tBasic.getPatientId());
if (i <= 0) { if (i <= 0) {
log.info("当前预住院没有文件!"); log.info("当前预住院没有文件!");
} else {
log.info(patientId.get("inpatient_no") + ":本次预住院合并" + i + "份报告");
}
} else { } else {
log.info(patientId.get("inpatient_no") + ":本次预住院合并" + i + "份报告"); log.info(patientId.get("inpatient_no") + ":未查询到预住院信息!");
} }
}else { } else {
log.info(patientId.get("inpatient_no")+":未查询到预住院信息!"); log.info(patientId.get("inpatient_no") + ":未查询到预住院信息!");
} }
} catch (Exception e) { } catch (Exception e) {
log.info("预住院文件合并出错!--" + e.getMessage()); log.error("预住院文件合并出错!-- 患者号: " + patientId.get("inpatient_no") + " 错误信息: " + e.getMessage(), e);
} }
} }
/** /**
* *
* *

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

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