1,配置文件修改

2,添加日志保存
docus_webservice_1.1
mill 4 years ago
parent 0c472ffd6a
commit 01da536920

@ -2,156 +2,164 @@
"selectColumns":[
{
"serialNumber": "1",
"tableName": "t_basic_sub",
"columnName": "healthy_card",
"qualityColumn": "VUID",
"tableName": "t_basic",
"columnName": "ward_palce",
"qualityColumn": "SUBOR_HOSPITAL_DISTRICT",
"byNull":0
},
{
"serialNumber": "2",
"tableName": "t_basic",
"columnName": "admiss_id",
"qualityColumn": "INHOSP_INDEX_NO",
"columnName": "emp_id",
"qualityColumn": "ACCOUNT_NUM",
"byNull":0
},
{
"serialNumber": "3",
"tableName": "t_basic",
"columnName": "inpatient_no",
"qualityColumn": "INHOSP_NO",
"columnName": "admiss_id",
"qualityColumn": "INHOSP_INDEX_NO",
"byNull":0
},
{
"serialNumber": "4",
"tableName": "t_basic",
"columnName": "jzh",
"qualityColumn": "EMPI_ID",
"byNull":1
"columnName": "name",
"qualityColumn": "PAT_NAME",
"byNull":0
},
{
"serialNumber": "5",
"tableName": "t_basic",
"columnName": "dis_date",
"qualityColumn": "DISCHARGE_DATETIME",
"columnName": "admiss_times",
"qualityColumn": "VISIT_NO",
"byNull":0
},
{
"serialNumber": "6",
"tableName": "t_basic",
"columnName": "name",
"qualityColumn": "PAT_NAME",
"columnName": "dis_dept",
"qualityColumn": "DEPT_CODE",
"byNull":0
},
{
"serialNumber": "7",
"tableName": "t_basic",
"columnName": "admiss_times",
"qualityColumn": "VISIT_NO",
"columnName": "dis_dept_name",
"qualityColumn": "DEPT_NAME",
"byNull":0
},
{
"serialNumber": "8",
"tableName": "t_basic",
"columnName": "visit_type_code",
"qualityColumn": "VISIT_TYPE_CODE",
"columnName": "attending",
"qualityColumn": "CHAR_DOC_CODE",
"byNull":0
},
{
"serialNumber": "9",
"tableName": "t_basic",
"columnName": "visit_type_name",
"qualityColumn": "VISIT_TYPE_NAME",
"columnName": "dis_date",
"qualityColumn": "DISCHARGE_DATETIME",
"byNull":0
},
{
"serialNumber": "10",
"tableName": "t_basic",
"columnName": "admiss_days",
"qualityColumn": "INHOSP_DAYS",
"columnName": "is_dead",
"qualityColumn": "DEATH_FLAG",
"byNull":0
},
{
"serialNumber": "11",
"tableName": "t_basic",
"columnName": "id_card",
"qualityColumn": "ID_NUMBER",
"columnName": "inpatient_no",
"qualityColumn": "INHOSP_NO",
"byNull":0
},
{
"serialNumber": "12",
"tableName": "t_basic",
"columnName": "main_diag_code",
"qualityColumn": "WM_DIAG_CODE",
"columnName": "jzh",
"qualityColumn": "EMPI_ID",
"byNull":0
},
{
"serialNumber": "13",
"tableName": "t_basic",
"columnName": "main_diag_name",
"qualityColumn": "WM_DIAG_NAME",
"columnName": "visit_type_code",
"qualityColumn": "VISIT_TYPE_CODE",
"byNull":0
},
{
"serialNumber": "14",
"tableName": "t_basic",
"columnName": "attending",
"qualityColumn": "WM_DIAG_DR_CODE",
"columnName": "visit_type_name",
"qualityColumn": "VISIT_TYPE_NAME",
"byNull":0
},
{
"serialNumber": "15",
"tableName": "t_basic",
"columnName": "attending_name",
"qualityColumn": "WM_DIAG_DR_NAME",
"columnName": "admiss_days",
"qualityColumn": "INHOSP_DAYS",
"byNull":0
},
{
"serialNumber": "16",
"tableName": "t_basic",
"columnName": "tcm_diag_code",
"qualityColumn": "TCM_DIAG_CODE",
"columnName": "id_card",
"qualityColumn": "ID_NUMBER",
"byNull":0
},
{
"serialNumber": "17",
"tableName": "t_basic",
"columnName": "tcm_diag_name",
"qualityColumn": "TCM_DIAG_NAME",
"columnName": "main_diag_code",
"qualityColumn": "WM_DIAG_CODE",
"byNull":0
},
{
"serialNumber": "18",
"tableName": "t_basic",
"columnName": "dis_dept",
"qualityColumn": "DEPT_CODE",
"byNull":1
"columnName": "main_diag_name",
"qualityColumn": "WM_DIAG_NAME",
"byNull":0
},
{
"serialNumber": "19",
"tableName": "t_basic",
"columnName": "dis_dept_name",
"qualityColumn": "DEPT_NAME",
"byNull":1
"columnName": "tcm_diag_code",
"qualityColumn": "TCM_DIAG_CODE",
"byNull":0
},
{
"serialNumber": "20",
"tableName": "t_basic",
"columnName": "emp_id",
"qualityColumn": "ACCOUNT_NUM",
"byNull":1
"columnName": "tcm_diag_name",
"qualityColumn": "TCM_DIAG_NAME",
"byNull":0
},
{
"serialNumber": "21",
"tableName": "t_basic",
"columnName": "ward_palce",
"qualityColumn": "SUBOR_HOSPITAL_DISTRICT",
"columnName": "admiss_dept",
"qualityColumn": "ADMIT_DEPT_CODE",
"byNull":1
},
{
"serialNumber": "22",
"tableName": "t_basic",
"columnName": "admiss_dept",
"qualityColumn": "ADMIT_DEPT_COD",
"columnName": "admiss_dept_name",
"qualityColumn": "ADMIT_DEPT_NAME",
"byNull":1
}
,
{
"serialNumber": "23",
"tableName": "t_basic",
"columnName": "admiss_date",
"qualityColumn": "ADMIT_DATE",
"byNull":1
}
]

@ -15,6 +15,8 @@ import com.docus.webservice.service.IMrReportErrorService;
import com.docus.webservice.service.ITBasicService;
import com.docus.webservice.utils.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import javax.jws.WebService;
@ -37,6 +39,7 @@ public class TBasicWebService implements ITBasicWebService {
@Autowired
private AfInterfaceCollectMapper afInterfaceCollectMapper;
private Logger log= LogManager.getLogger(TBasicWebService.class);
/**
* jar
*
@ -66,6 +69,7 @@ public class TBasicWebService implements ITBasicWebService {
@Override
public String OUT_HOS_REG(String tbasic) {
log.info("打印底层xml"+tbasic);
try {
//解析xml
HashMap<String, Object> tBasicMap = new HashMap<>();
@ -81,16 +85,20 @@ public class TBasicWebService implements ITBasicWebService {
this.saveAndCall(tBasic);
} catch (RuntimeException e) {
insertLog(tbasic);
log.error("OUT_HOS_REG方法中错误信息:"+e.getMessage());
return ResultUtils.fail(e.getMessage());
}
} else {
insertLog(tbasic);
log.info("请提供完整的xml");
return ResultUtils.fail("请提供完整的xml");
}
} catch (Exception e) {
e.printStackTrace();
log.error("OUT_HOS_REG方法中错误信息:"+e.getMessage());
return ResultUtils.fail();
}
log.info("返回结果:"+ResultUtils.success().asXML());
return ResultUtils.success().asXML();
}
@ -102,7 +110,7 @@ public class TBasicWebService implements ITBasicWebService {
*/
private void parseXml(String tbasic, HashMap<String, Object> tBasicMap, HashMap<String, Object> tBasicSubMap) {
XmlUtils xmlUtils = null;
log.info("开始解析xml");
try {
xmlUtils = new XmlUtils(new ByteArrayInputStream(tbasic.getBytes("UTF-8")));
} catch (UnsupportedEncodingException e) {
@ -119,11 +127,13 @@ public class TBasicWebService implements ITBasicWebService {
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;
@ -138,9 +148,9 @@ public class TBasicWebService implements ITBasicWebService {
}
}
}
@Override
public String OUT_HOS_CAN(String tbasic) {
log.info("打印底层xml"+tbasic);
try {
HashMap<String, Object> tBasicMap = new HashMap<>();
HashMap<String, Object> tBasicSubMap = new HashMap<>();
@ -151,6 +161,7 @@ public class TBasicWebService implements ITBasicWebService {
tBasic = JSON.parseObject(JSON.toJSONString(tBasicMap), TBasic.class);
if (StringUtils.isBlank(tBasic.getEmpId())) {
insertLog(tbasic);
log.info("emp_id字段不能为空值");
return ResultUtils.fail("emp_id字段不能为空值");
}
tBasic.setUpdateTime(new Date());
@ -160,6 +171,7 @@ public class TBasicWebService implements ITBasicWebService {
} catch (RuntimeException e) {
insertLog(tbasic);
e.printStackTrace();
log.error("OUT_HOS_CAN方法中错误信息:"+e.getMessage());
return ResultUtils.fail(e.getMessage());
}
} else {
@ -168,12 +180,14 @@ public class TBasicWebService implements ITBasicWebService {
}
} catch (Exception e) {
e.printStackTrace();
log.error("OUT_HOS_CAN方法中错误信息:"+e.getMessage());
return ResultUtils.fail();
}
log.info("OUT_HOS_CAN方法运行结果:"+ResultUtils.success().asXML());
return ResultUtils.success().asXML();
}
public void saveAndCall(TBasic tBasic) throws URISyntaxException {
log.info("病案对象"+tBasic.toString());
//解析json映射文件
String json = JsonUtils.readJsonFile(CurrentPath() + Codes.JSON_COLLECTLIST.getMessage());
if (StringUtils.isNotBlank(json)) {
@ -191,8 +205,10 @@ public class TBasicWebService implements ITBasicWebService {
afc.setJzh(tBasic.getJzh());
afc.setTaskCount(task_count);
afc.setCreateTime(new Date());
afInterfaceCollectMapper.addAfInterfaceCollect(afc);
int i = afInterfaceCollectMapper.addAfInterfaceCollect(afc);
if (i<0) {
log.info("省中医病案采集表添加信息失败!");
}
//添加省中医病案采集-子任务
List<AfInterfaceCollectSub> list=new ArrayList<>();
for (CollectList collectList : collectLists) {
@ -205,8 +221,10 @@ public class TBasicWebService implements ITBasicWebService {
collectList.setId(afcsId);
list.add(afInterfaceCollectSub);
}
afInterfaceCollectMapper.addAfInterfaceCollectSub(list);
int i1 = afInterfaceCollectMapper.addAfInterfaceCollectSub(list);
if (i1<0) {
log.info("省中医病案采集-子任务失败!");
}
for (CollectList collectList : collectLists) {
//调用http发送请求
this.sendHttp(collectList,tBasic.getJzh());

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,%i索引【从数字0开始递增】,,, -->
<!-- appender是configuration的子节点是负责写日志的组件。 -->
<!-- ConsoleAppender把日志输出到控制台 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d %p (%file:%line\)- %m%n</pattern>
<!-- 控制台也要使用UTF-8不要使用GBK否则会中文乱码 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- RollingFileAppender滚动记录文件先将日志记录到指定文件当符合某个条件时将日志记录到其他文件 -->
<!-- 以下的大概意思是1.先按日期存日志日期变了将前一天的日志文件名重命名为XXX%日期%索引新的日志仍然是demo.log -->
<!-- 2.如果日期没有发生变化但是当前日志的文件大小超过1KB时对当前日志进行分割 重命名-->
<appender name="demolog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>configLog/log.log</File>
<!-- rollingPolicy:当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名。 -->
<!-- TimeBasedRollingPolicy 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 活动文件的名字会根据fileNamePattern的值每隔一段时间改变一次 -->
<!-- 文件名log/demo.2017-12-05.0.log -->
<fileNamePattern>log/demo.%d.%i.log</fileNamePattern>
<!-- 每产生一个日志文件该日志文件的保存期限为15天 -->
<maxHistory>15</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- maxFileSize:这是活动文件的大小默认值是10MB测试时可改成1KB看效果 -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<!-- pattern节点用来设置日志的输入格式 -->
<pattern>
%d %p (%file:%line\)- %m%n
</pattern>
<!-- 记录日志的编码:此处设置字符集 - -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 控制台输出日志级别 -->
<root level="info">
<appender-ref ref="STDOUT" />
</root>
<!-- 指定项目中某个包,当有日志操作行为时的日志记录级别 -->
<!-- com.liyan为根包也就是只要是发生在这个根包下面的所有日志操作行为的权限都是DEBUG -->
<!-- 级别依次为【从高到低】FATAL > ERROR > WARN > INFO > DEBUG > TRACE -->
<logger name="com.docus.webservice" level="INFO">
<appender-ref ref="demolog" />
</logger>
</configuration>
Loading…
Cancel
Save