From 9420b2fc97219f3e776d69123d53441653834028 Mon Sep 17 00:00:00 2001 From: beeajax <1105173470@qq.com> Date: Sat, 3 Jun 2023 23:11:54 +0800 Subject: [PATCH] aop --- .../com/docus/server/AppRunBootstrap.java | 4 +- .../docus/server/collect/WsResultImpl.java | 25 - ...Impl.java => HttpTBasicCollectorImpl.java} | 10 +- .../collect/basic/ws/TBasicConverter.java | 16 +- ...ceImpl.java => HttpDeptCollectorImpl.java} | 11 +- .../collect/dept/ws/PowerDeptConverter.java | 3 +- .../medical/record/ParseServiceImpl.java | 2 +- .../collect/report/ReportConverter.java | 3 +- .../collect/report/WsReportResultImpl.java | 2 +- ...ceImpl.java => HttpUserCollectorImpl.java} | 10 +- .../collect/user/ws/PowerUserConverter.java | 73 +- .../collect/user/ws/WsUserResultImpl.java | 126 +- collect-sdry/src/main/resources/bootstrap.yml | 22 +- .../infrastructure/dao/CollectTypeEnum.java | 14 +- .../dao/TaskOriginalMessage.java | 6 +- .../infrastructure/enums/IIntegerEnum.java | 9 + .../job/basic/AbstractTBasicCollectJob.java | 17 +- .../job/basic/TBasicHttpCollectJob.java | 15 +- .../job/basic/TBasicViewCollectJob.java | 9 +- .../job/dept/AbstractDeptCollectJob.java | 20 +- .../collect/job/dept/DeptHttpCollectJob.java | 15 +- .../collect/job/dept/DeptViewCollectJob.java | 9 +- .../job/user/AbstractUserCollectJob.java | 13 +- .../collect/job/user/UserHttpCollectJob.java | 15 +- .../collect/job/user/UserViewCollectJob.java | 13 +- .../collect/service/CollectService.java | 9 +- .../collect/service/IHttpCollector.java | 11 + .../service/IHttpDeptCollectService.java | 10 - .../service/IHttpTBasicCollectService.java | 10 - .../service/IHttpUserCollectService.java | 10 - .../com/docus/server/tool/SpringUtils.java | 107 ++ .../server/visitor/VisitorProcessor.java | 106 ++ .../ws/ITaskOriginalMessageService.java | 6 +- .../java/com/docus/server/ws/WsCollect.java | 77 +- .../docus/server/ws/convert/IConverter.java | 4 +- .../convert/TaskOriginalMessageConverter.java | 3 +- .../server/ws/impl/BasicServiceImpl.java | 19 +- .../docus/server/ws/impl/DeptServerImpl.java | 9 +- .../server/ws/impl/ReportServerImpl.java | 1041 +++++++++-------- .../impl/TaskOriginalMessageServiceImpl.java | 18 +- .../docus/server/ws/impl/UserServerImpl.java | 58 +- .../server/ws/impl/WebServiceServer.java | 16 +- .../server/sys/common/pojo/dto/UserDTO.java | 1 - pom.xml | 12 +- 44 files changed, 1077 insertions(+), 912 deletions(-) delete mode 100644 collect-sdry/src/main/java/com/docus/server/collect/WsResultImpl.java rename collect-sdry/src/main/java/com/docus/server/collect/basic/http/{HttpTBasicCollectServiceImpl.java => HttpTBasicCollectorImpl.java} (53%) rename collect-sdry/src/main/java/com/docus/server/collect/dept/http/{HttpDeptCollectServiceImpl.java => HttpDeptCollectorImpl.java} (74%) rename collect-sdry/src/main/java/com/docus/server/collect/user/http/{HttpUserCollectServiceImpl.java => HttpUserCollectorImpl.java} (70%) create mode 100644 common-collect/src/main/java/com/docus/server/collect/service/IHttpCollector.java delete mode 100644 common-collect/src/main/java/com/docus/server/collect/service/IHttpDeptCollectService.java delete mode 100644 common-collect/src/main/java/com/docus/server/collect/service/IHttpTBasicCollectService.java delete mode 100644 common-collect/src/main/java/com/docus/server/collect/service/IHttpUserCollectService.java create mode 100644 common-collect/src/main/java/com/docus/server/tool/SpringUtils.java create mode 100644 common-collect/src/main/java/com/docus/server/visitor/VisitorProcessor.java diff --git a/collect-sdry/src/main/java/com/docus/server/AppRunBootstrap.java b/collect-sdry/src/main/java/com/docus/server/AppRunBootstrap.java index 7f13269..15515b0 100644 --- a/collect-sdry/src/main/java/com/docus/server/AppRunBootstrap.java +++ b/collect-sdry/src/main/java/com/docus/server/AppRunBootstrap.java @@ -1,11 +1,11 @@ package com.docus.server; +import com.docus.log.EnableTrackGroup; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.retry.annotation.EnableRetry; -import org.springframework.scheduling.annotation.EnableAsync; @Slf4j @@ -14,7 +14,7 @@ import org.springframework.scheduling.annotation.EnableAsync; //@MapperScan("com.docus.server") @SpringBootApplication(scanBasePackages = {"com.docus"}) @EnableRetry -@EnableAsync +@EnableTrackGroup public class AppRunBootstrap { public static void main(String[] args) { System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"); diff --git a/collect-sdry/src/main/java/com/docus/server/collect/WsResultImpl.java b/collect-sdry/src/main/java/com/docus/server/collect/WsResultImpl.java deleted file mode 100644 index 75f0c9d..0000000 --- a/collect-sdry/src/main/java/com/docus/server/collect/WsResultImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.docus.server.collect; - -import com.docus.server.ws.IWsResult; -import org.springframework.stereotype.Component; - -import java.util.Map; - -@Component -public class WsResultImpl implements IWsResult { - - @Override - public String ok(Map params) { - return null; - } - - @Override - public String fail(String message) { - return message; - } - - @Override - public String ok(String message) { - return message; - } -} diff --git a/collect-sdry/src/main/java/com/docus/server/collect/basic/http/HttpTBasicCollectServiceImpl.java b/collect-sdry/src/main/java/com/docus/server/collect/basic/http/HttpTBasicCollectorImpl.java similarity index 53% rename from collect-sdry/src/main/java/com/docus/server/collect/basic/http/HttpTBasicCollectServiceImpl.java rename to collect-sdry/src/main/java/com/docus/server/collect/basic/http/HttpTBasicCollectorImpl.java index 205f167..95106f6 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/basic/http/HttpTBasicCollectServiceImpl.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/basic/http/HttpTBasicCollectorImpl.java @@ -1,17 +1,17 @@ package com.docus.server.collect.basic.http; -import com.docus.server.collect.service.IHttpTBasicCollectService; +import com.docus.server.collect.service.IHttpCollector; import com.docus.server.record.pojo.dto.TBasicDTO; import com.google.common.collect.Lists; -import org.springframework.stereotype.Service; +import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; -@Service -public class HttpTBasicCollectServiceImpl implements IHttpTBasicCollectService { +@Component("httpTBasicCollectorImpl") +public class HttpTBasicCollectorImpl implements IHttpCollector { @Override - public List getTBasics(Date startDate, Date endDate, long pageNum, long pageSize) { + public List get(Date startDate, Date endDate, long pageNum, long pageSize) { TBasicDTO deptDTO = new TBasicDTO(); TBasicDTO deptDTO1 = new TBasicDTO(); diff --git a/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/TBasicConverter.java b/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/TBasicConverter.java index 4fb4619..fb44d8b 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/TBasicConverter.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/TBasicConverter.java @@ -13,19 +13,19 @@ import org.w3c.dom.Node; public class TBasicConverter implements IConverter { @Override - public TBasicDTO convert(String message, FlagEnum flagEnum) { + public TBasicDTO convert(String message, String methodName) { XmlUtil xml = XmlUtil.of(message); //id-消息流水号 String serialId = null; - Node serialIdNode = FlagEnum.INSERT.equals(flagEnum) ? - xml.getNode("/PRPA_HIP0032/id/@extension") : xml.getNode("/PRPA_HIP0033/id/@extension"); + Node serialIdNode = FlagEnum.INSERT.equals(methodName) ? + xml.getNode("/PRPA_HIP0032/id/@extension") : xml.getNode("/PRPA_HIP0033/id/@extension"); if (Func.isNotEmpty(serialIdNode)) { serialId = serialIdNode.getNodeValue(); } //接受方 String receive = null; - Node receiveNode = FlagEnum.INSERT.equals(flagEnum) ? - xml.getNode("/PRPA_HIP0032/receiver/device/id/item/@extension") : xml.getNode("/PRPA_HIP0033/receiver/device/id/item/@extension"); + Node receiveNode = FlagEnum.INSERT.equals(methodName) ? + xml.getNode("/PRPA_HIP0032/receiver/device/id/item/@extension") : xml.getNode("/PRPA_HIP0033/receiver/device/id/item/@extension"); if (Func.isNotEmpty(receiveNode)) { receive = receiveNode.getNodeValue(); } @@ -183,9 +183,9 @@ public class TBasicConverter implements IConverter { dto.setSdryIndex(sdryIndex); dto.setParams(ParamsUtils.addParam("serialId", dto.getSerialId()) - .addParam("receive", dto.getReceive()) - .addParam("send", dto.getSend()) - .param()); + .addParam("receive", dto.getReceive()) + .addParam("send", dto.getSend()) + .param()); return dto; } } diff --git a/collect-sdry/src/main/java/com/docus/server/collect/dept/http/HttpDeptCollectServiceImpl.java b/collect-sdry/src/main/java/com/docus/server/collect/dept/http/HttpDeptCollectorImpl.java similarity index 74% rename from collect-sdry/src/main/java/com/docus/server/collect/dept/http/HttpDeptCollectServiceImpl.java rename to collect-sdry/src/main/java/com/docus/server/collect/dept/http/HttpDeptCollectorImpl.java index bcbd796..eee3762 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/dept/http/HttpDeptCollectServiceImpl.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/dept/http/HttpDeptCollectorImpl.java @@ -1,17 +1,18 @@ package com.docus.server.collect.dept.http; -import com.docus.server.collect.service.IHttpDeptCollectService; +import com.docus.server.collect.service.IHttpCollector; import com.docus.server.sys.common.pojo.dto.DeptDTO; import com.google.common.collect.Lists; -import org.springframework.stereotype.Service; +import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; -@Service -public class HttpDeptCollectServiceImpl implements IHttpDeptCollectService { +@Component("httpDeptCollectorImpl") +public class HttpDeptCollectorImpl implements IHttpCollector { + @Override - public List getDepts(Date startDate, Date endDate, long pageNum, long pageSize) { + public List get(Date startDate, Date endDate, long pageNum, long pageSize) { DeptDTO deptDTO = new DeptDTO(); deptDTO.setAuthorId("1"); deptDTO.setAuthorName("admin"); diff --git a/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/PowerDeptConverter.java b/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/PowerDeptConverter.java index 00681f6..a40a2fc 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/PowerDeptConverter.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/PowerDeptConverter.java @@ -1,7 +1,6 @@ package com.docus.server.collect.dept.ws; import com.docus.core.util.XmlUtil; -import com.docus.server.collect.infrastructure.dao.FlagEnum; import com.docus.server.sys.common.pojo.dto.DeptDTO; import com.docus.server.tool.ParamsUtils; import com.docus.server.ws.convert.IConverter; @@ -12,7 +11,7 @@ import org.w3c.dom.Node; public class PowerDeptConverter implements IConverter { @Override - public DeptDTO convert(String message, FlagEnum flagEnum) { + public DeptDTO convert(String message,String methodName) { //TODO: 根据协议进行解析。 XmlUtil xmlParseUtil = XmlUtil.of(message); Node msgIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/id/@extension"); diff --git a/collect-sdry/src/main/java/com/docus/server/collect/medical/record/ParseServiceImpl.java b/collect-sdry/src/main/java/com/docus/server/collect/medical/record/ParseServiceImpl.java index 36401ba..f3a3254 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/medical/record/ParseServiceImpl.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/medical/record/ParseServiceImpl.java @@ -119,7 +119,7 @@ public class ParseServiceImpl implements IParseService { "\t\t\t\n" + "\t\t\n" + "\t\t\n" + - "\t\t\t\n" + + "\t\t\t\n" + "\t\t\n" + "\t\n" + "\n"; diff --git a/collect-sdry/src/main/java/com/docus/server/collect/report/ReportConverter.java b/collect-sdry/src/main/java/com/docus/server/collect/report/ReportConverter.java index efc5b12..b39e5dc 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/report/ReportConverter.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/report/ReportConverter.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject; import com.docus.core.util.Func; import com.docus.core.util.XmlUtil; import com.docus.infrastructure.core.exception.BaseException; -import com.docus.server.collect.infrastructure.dao.FlagEnum; import com.docus.server.collect.infrastructure.pojo.dto.ReportDTO; import com.docus.server.tool.ParamsUtils; import com.docus.server.tool.TableJsonRead; @@ -16,7 +15,7 @@ import org.w3c.dom.Node; public class ReportConverter implements IConverter { @Override - public ReportDTO convert(String message, FlagEnum flagEnum) { + public ReportDTO convert(String message, String methodName) { //TODO: 根据协议进行解析。 XmlUtil xmlUtil = XmlUtil.of(message); Node msgNode = xmlUtil.getNode("/Request/Msg/ID"); diff --git a/collect-sdry/src/main/java/com/docus/server/collect/report/WsReportResultImpl.java b/collect-sdry/src/main/java/com/docus/server/collect/report/WsReportResultImpl.java index ed34342..fa830c6 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/report/WsReportResultImpl.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/report/WsReportResultImpl.java @@ -15,6 +15,6 @@ public class WsReportResultImpl implements IWsResult { @Override public String fail(Map params) { - + return null; } } diff --git a/collect-sdry/src/main/java/com/docus/server/collect/user/http/HttpUserCollectServiceImpl.java b/collect-sdry/src/main/java/com/docus/server/collect/user/http/HttpUserCollectorImpl.java similarity index 70% rename from collect-sdry/src/main/java/com/docus/server/collect/user/http/HttpUserCollectServiceImpl.java rename to collect-sdry/src/main/java/com/docus/server/collect/user/http/HttpUserCollectorImpl.java index dab0a32..a1c0f47 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/user/http/HttpUserCollectServiceImpl.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/user/http/HttpUserCollectorImpl.java @@ -1,17 +1,17 @@ package com.docus.server.collect.user.http; -import com.docus.server.collect.service.IHttpUserCollectService; +import com.docus.server.collect.service.IHttpCollector; import com.docus.server.sys.common.pojo.dto.UserDTO; import com.google.common.collect.Lists; -import org.springframework.stereotype.Service; +import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; -@Service -public class HttpUserCollectServiceImpl implements IHttpUserCollectService { +@Component("httpUserCollectorImpl") +public class HttpUserCollectorImpl implements IHttpCollector { @Override - public List getUsers(Date startDate, Date endDate, long pageNum, long pageSize) { + public List get(Date startDate, Date endDate, long pageNum, long pageSize) { UserDTO deptDTO = new UserDTO(); deptDTO.setAuthorId("1"); deptDTO.setAuthorName("admin"); diff --git a/collect-sdry/src/main/java/com/docus/server/collect/user/ws/PowerUserConverter.java b/collect-sdry/src/main/java/com/docus/server/collect/user/ws/PowerUserConverter.java index 686b083..83c96fb 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/user/ws/PowerUserConverter.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/user/ws/PowerUserConverter.java @@ -1,44 +1,61 @@ package com.docus.server.collect.user.ws; -import com.docus.core.util.XmlUtil; -import com.docus.server.collect.infrastructure.dao.FlagEnum; import com.docus.server.sys.common.pojo.dto.UserDTO; -import com.docus.server.tool.ParamsUtils; import com.docus.server.ws.convert.IConverter; import org.springframework.stereotype.Component; -import org.w3c.dom.Node; + +import java.util.UUID; @Component("powerUserConverter") public class PowerUserConverter implements IConverter { @Override - public UserDTO convert(String message, FlagEnum flagEnum) { - XmlUtil xmlParseUtil = XmlUtil.of(message); - Node msgIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/id/@extension"); - Node receiverNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/receiver/device/id/item/@extension"); - Node operateTypeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/@operateType"); - Node employeeCodeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/EMPL_CODE/@value"); - Node employeeNameNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/EMPL_NAME/@value"); - Node deptCodeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/DEPT_CODE/@value"); - Node positionNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/POSI_NAME/@value"); - Node authorIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/author/assignedEntity/id/item/@extension"); - Node authorNameNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/author/assignedEntity/assignedPerson/name/item/part/@value"); + public UserDTO convert(String message, String methodName) { +// XmlUtil xmlParseUtil = XmlUtil.of(message); +// Node msgIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/id/@extension"); +// Node receiverNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/receiver/device/id/item/@extension"); +// Node operateTypeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/@operateType"); +// Node employeeCodeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/EMPL_CODE/@value"); +// Node employeeNameNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/EMPL_NAME/@value"); +// Node deptCodeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/DEPT_CODE/@value"); +// Node positionNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/POSI_NAME/@value"); +// Node authorIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/author/assignedEntity/id/item/@extension"); +// Node authorNameNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/author/assignedEntity/assignedPerson/name/item/part/@value"); +// UserDTO userDTO = new UserDTO(); +// userDTO.setDeptId(deptCodeNode.getNodeValue()); +// userDTO.setReceiver(receiverNode.getNodeValue()); +// userDTO.setOperateType(operateTypeNode.getNodeValue()); +// userDTO.setUserName(employeeCodeNode.getNodeValue()); +// userDTO.setName(employeeNameNode.getNodeValue()); +// userDTO.setPosition(positionNode.getNodeValue()); +// userDTO.setAuthorId(authorIdNode.getNodeValue()); +// userDTO.setMessageId(msgIdNode.getNodeValue()); +// userDTO.setAuthorName(authorNameNode.getNodeValue()); +// userDTO.setRoleId(0L); +// +// userDTO.setParams(ParamsUtils.addParam("msg", "操作成功!") +// .addParam("msgId", userDTO.getMessageId()) +// .addParam("receiver", userDTO.getReceiver()) +// .param()); + + UserDTO userDTO = new UserDTO(); - userDTO.setDeptId(deptCodeNode.getNodeValue()); - userDTO.setReceiver(receiverNode.getNodeValue()); - userDTO.setOperateType(operateTypeNode.getNodeValue()); - userDTO.setUserName(employeeCodeNode.getNodeValue()); - userDTO.setName(employeeNameNode.getNodeValue()); - userDTO.setPosition(positionNode.getNodeValue()); - userDTO.setAuthorId(authorIdNode.getNodeValue()); - userDTO.setMessageId(msgIdNode.getNodeValue()); - userDTO.setAuthorName(authorNameNode.getNodeValue()); + userDTO.setDeptId("1"); + userDTO.setReceiver("2"); + userDTO.setOperateType("3"); + userDTO.setUserName("4"); + userDTO.setName("5"); + userDTO.setPosition("6"); + userDTO.setAuthorId("7"); + userDTO.setMessageId(UUID.randomUUID().toString()); + userDTO.setAuthorName("9"); userDTO.setRoleId(0L); - userDTO.setParams(ParamsUtils.addParam("msg", "操作成功!") - .addParam("msgId", userDTO.getMessageId()) - .addParam("receiver", userDTO.getReceiver()) - .param()); +// userDTO.setParams(ParamsUtils.addParam("msg", "操作成功!") +// .addParam("msgId", userDTO.getMessageId()) +// .addParam("receiver", userDTO.getReceiver()) +// .param()); + return userDTO; } diff --git a/collect-sdry/src/main/java/com/docus/server/collect/user/ws/WsUserResultImpl.java b/collect-sdry/src/main/java/com/docus/server/collect/user/ws/WsUserResultImpl.java index e46c33d..0a7066e 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/user/ws/WsUserResultImpl.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/user/ws/WsUserResultImpl.java @@ -16,74 +16,74 @@ public class WsUserResultImpl implements IWsResult { public String ok(Map params) { String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); return "\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - ""; + "file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/MCCI\n" + + "_IN000002UV01.xsd\">\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + ""; } @Override public String fail(Map params) { String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); return "\n" + - "\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\n"; + "file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/RCMR\n" + + "_IN000030UV01.xsd\">\n" + + "\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\t\n" + + "\t\t\t\n" + + "\t\t\n" + + "\t\n" + + "\n"; } } diff --git a/collect-sdry/src/main/resources/bootstrap.yml b/collect-sdry/src/main/resources/bootstrap.yml index a4089bb..11b0e85 100644 --- a/collect-sdry/src/main/resources/bootstrap.yml +++ b/collect-sdry/src/main/resources/bootstrap.yml @@ -12,21 +12,21 @@ spring: datasource: master: url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_archivefile?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: docus - password: docus702 + username: root + password: root driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy type: com.alibaba.druid.pool.DruidDataSource his: - url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_archivefile?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai - username: docus - password: docus702 + url: jdbc:log4jdbc:mysql://db.docus.cn:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + username: root + password: root driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy type: com.alibaba.druid.pool.DruidDataSource redis: host: redis.docus.cn - password: JSdocus@702 + # password: JSdocus@702 cloud: nacos: discovery: @@ -42,7 +42,9 @@ spring: docus: dbtype: mysql - + user: + # 用户默认密码 + defpwd: fd29cd53ec12616e5f36b77d4afffbff mybatis-plus: configuration: map-underscore-to-camel-case: true @@ -52,14 +54,14 @@ mybatis-plus: db-config: field-strategy: NOT_EMPTY db-type: MYSQL - type-enums-package: com.docus.server.collect.infrastructure.enums + type-enums-package: com.docus.server.collect.infrastructure.enums,com.docus.server.collect.infrastructure.dao xxl: job: accessToken: admin: addresses: http://job.docus.cn:8180/xxl-job-admin executor: - appname: docus-inspection + appname: xxl-job-executor-test address: ip: port: 17781 @@ -78,4 +80,4 @@ xxl: # replica: # queueManager: MqManager02 # channel: chl_server02 -# connName: 10.222.23.131(1414) \ No newline at end of file +# connName: 10.222.23.131(1414) diff --git a/common-collect/src/main/java/com/docus/server/collect/infrastructure/dao/CollectTypeEnum.java b/common-collect/src/main/java/com/docus/server/collect/infrastructure/dao/CollectTypeEnum.java index 0bd0b76..cfae13f 100644 --- a/common-collect/src/main/java/com/docus/server/collect/infrastructure/dao/CollectTypeEnum.java +++ b/common-collect/src/main/java/com/docus/server/collect/infrastructure/dao/CollectTypeEnum.java @@ -4,13 +4,13 @@ import com.docus.server.collect.infrastructure.enums.IIntegerEnum; public enum CollectTypeEnum implements IIntegerEnum { - WS_XML_DEPT(0, "ws同步的科室数据"), - WS_XML_USER(1, "ws同步的用户数据"), - WS_XML_BASIC(2, "ws同步的病患数据"), - WS_XML_SA_REPORT(2, "ws同步的手麻报告数据"), - WS_XML_ICU_REPORT(2, "ws同步的重症报告数据"), - WS_XML_INSERT_INSPECTION_REPORT(2, "ws同步的新增检查报告数据"), - WS_XML_UPDATE_INSPECTION_REPORT(2, "ws同步的更新检查报告数据"); + WEBSERVICE_XML_DEPT(0, "WEBSERVICE_XML_DEPT"), + WEBSERVICE_XML_USER(1, "WEBSERVICE_XML_USER"), + WEBSERVICE_XML_BASIC(2, "WEBSERVICE_XML_BASIC"), + WEBSERVICE_XML_REPORT(3, "WEBSERVICE_XML_REPORT"), + WEBSERVICE_XML_ICU_REPORT(4, "WEBSERVICE_XML_ICU_REPORT"), + WEBSERVICE_XML_INSERT_INSPECTION_REPORT(5, "WEBSERVICE_XML_INSERT_INSPECTION_REPORT"), + WEBSERVICE_XML_UPDATE_INSPECTION_REPORT(6, "WEBSERVICE_XML_UPDATE_INSPECTION_REPORT"); private Integer value; private String display; diff --git a/common-collect/src/main/java/com/docus/server/collect/infrastructure/dao/TaskOriginalMessage.java b/common-collect/src/main/java/com/docus/server/collect/infrastructure/dao/TaskOriginalMessage.java index 242c563..72eb664 100644 --- a/common-collect/src/main/java/com/docus/server/collect/infrastructure/dao/TaskOriginalMessage.java +++ b/common-collect/src/main/java/com/docus/server/collect/infrastructure/dao/TaskOriginalMessage.java @@ -29,7 +29,7 @@ public class TaskOriginalMessage implements Serializable { @ApiModelProperty(value = "主键") @TableId(value = "id", type = IdType.ASSIGN_UUID) - private long id; + private Long id; @ApiModelProperty(value = "采集名字") @TableField("name") @@ -39,6 +39,10 @@ public class TaskOriginalMessage implements Serializable { @TableField("collect_type") private CollectTypeEnum collectType; + @ApiModelProperty(value = "原始报文转对象json") + @TableField("json_str") + private Object jsonStr; + @ApiModelProperty(value = "原始报文") @TableField("source") private String source; diff --git a/common-collect/src/main/java/com/docus/server/collect/infrastructure/enums/IIntegerEnum.java b/common-collect/src/main/java/com/docus/server/collect/infrastructure/enums/IIntegerEnum.java index 645371c..9967435 100644 --- a/common-collect/src/main/java/com/docus/server/collect/infrastructure/enums/IIntegerEnum.java +++ b/common-collect/src/main/java/com/docus/server/collect/infrastructure/enums/IIntegerEnum.java @@ -20,4 +20,13 @@ public interface IIntegerEnum extends IEnum { } throw new IllegalArgumentException("No. enum value 。" + value + "of " + enumType.getCanonicalName()); } + + static T fromDisplay(Class enumType, String display) { + for (T object : enumType.getEnumConstants()) { + if (Objects.equals(display, object.getDisplay())) { + return object; + } + } + throw new IllegalArgumentException("No. enum value 。" + display + "of " + enumType.getCanonicalName()); + } } diff --git a/common-collect/src/main/java/com/docus/server/collect/job/basic/AbstractTBasicCollectJob.java b/common-collect/src/main/java/com/docus/server/collect/job/basic/AbstractTBasicCollectJob.java index 8e0d8d5..9895ae6 100644 --- a/common-collect/src/main/java/com/docus/server/collect/job/basic/AbstractTBasicCollectJob.java +++ b/common-collect/src/main/java/com/docus/server/collect/job/basic/AbstractTBasicCollectJob.java @@ -15,14 +15,9 @@ import java.util.List; public abstract class AbstractTBasicCollectJob { @Autowired - private final ITBasicService basicService; + private ITBasicService basicService; @Resource - private final ITaskConfigService taskConfigService; - - protected AbstractTBasicCollectJob(ITBasicService deptService, ITaskConfigService taskConfigService) { - this.basicService = deptService; - this.taskConfigService = taskConfigService; - } + private ITaskConfigService taskConfigService; /** * 启动全量收集任务,时间从数据库读取,全量一般都用手工指定 @@ -67,10 +62,10 @@ public abstract class AbstractTBasicCollectJob { int pageNum = 1; for (; true; pageNum++) { basics = this.getTBasics( - periodTime.getPeriodStartDate(), - periodTime.getPeriodEndDate(), - pageNum, - taskConfig.getPageSize() + periodTime.getPeriodStartDate(), + periodTime.getPeriodEndDate(), + pageNum, + taskConfig.getPageSize() ); if (Func.isEmpty(basics)) { break; diff --git a/common-collect/src/main/java/com/docus/server/collect/job/basic/TBasicHttpCollectJob.java b/common-collect/src/main/java/com/docus/server/collect/job/basic/TBasicHttpCollectJob.java index 9bcbe40..3bf0084 100644 --- a/common-collect/src/main/java/com/docus/server/collect/job/basic/TBasicHttpCollectJob.java +++ b/common-collect/src/main/java/com/docus/server/collect/job/basic/TBasicHttpCollectJob.java @@ -1,9 +1,7 @@ package com.docus.server.collect.job.basic; -import com.docus.server.collect.service.IHttpTBasicCollectService; -import com.docus.server.collect.service.ITaskConfigService; +import com.docus.server.collect.service.IHttpCollector; import com.docus.server.record.pojo.dto.TBasicDTO; -import com.docus.server.record.service.ITBasicService; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @@ -15,13 +13,8 @@ import java.util.List; @Component public class TBasicHttpCollectJob extends AbstractTBasicCollectJob { - @Resource - private final IHttpTBasicCollectService iHttpTBasicCollectService; - - public TBasicHttpCollectJob(ITBasicService deptService, ITaskConfigService taskConfigService, IHttpTBasicCollectService iHttpTBasicCollectService) { - super(deptService, taskConfigService); - this.iHttpTBasicCollectService = iHttpTBasicCollectService; - } + @Resource(name = "httpTBasicCollectorImpl") + private IHttpCollector collector; /** * xxl jobhandler 手工执行 @@ -45,6 +38,6 @@ public class TBasicHttpCollectJob extends AbstractTBasicCollectJob { //需要根据不同医院去解析不同的内容。使用接口实现的方式。 - return iHttpTBasicCollectService.getTBasics(startDate, endDate, pazeNum, pageSize); + return collector.get(startDate, endDate, pazeNum, pageSize); } } diff --git a/common-collect/src/main/java/com/docus/server/collect/job/basic/TBasicViewCollectJob.java b/common-collect/src/main/java/com/docus/server/collect/job/basic/TBasicViewCollectJob.java index 11b2dc8..6658106 100644 --- a/common-collect/src/main/java/com/docus/server/collect/job/basic/TBasicViewCollectJob.java +++ b/common-collect/src/main/java/com/docus/server/collect/job/basic/TBasicViewCollectJob.java @@ -1,9 +1,7 @@ package com.docus.server.collect.job.basic; -import com.docus.server.collect.service.ITaskConfigService; import com.docus.server.his.service.IHisService; import com.docus.server.record.pojo.dto.TBasicDTO; -import com.docus.server.record.service.ITBasicService; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @@ -14,12 +12,7 @@ import java.util.List; @Component public class TBasicViewCollectJob extends AbstractTBasicCollectJob { @Resource - private final IHisService hisService; - - protected TBasicViewCollectJob(ITBasicService deptService, ITaskConfigService taskConfigService, IHisService hisService) { - super(deptService, taskConfigService); - this.hisService = hisService; - } + private IHisService hisService; /** * xxl jobhandler 手工执行,全量执行 diff --git a/common-collect/src/main/java/com/docus/server/collect/job/dept/AbstractDeptCollectJob.java b/common-collect/src/main/java/com/docus/server/collect/job/dept/AbstractDeptCollectJob.java index e15f8e3..d7a9ade 100644 --- a/common-collect/src/main/java/com/docus/server/collect/job/dept/AbstractDeptCollectJob.java +++ b/common-collect/src/main/java/com/docus/server/collect/job/dept/AbstractDeptCollectJob.java @@ -7,22 +7,16 @@ import com.docus.server.sys.common.pojo.dto.DeptDTO; import com.docus.server.sys.service.IPowerDeptService; import com.docus.server.tool.PeriodTime; import com.xxl.job.core.context.XxlJobHelper; -import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; import java.util.Date; import java.util.List; public abstract class AbstractDeptCollectJob { - @Autowired - private final IPowerDeptService deptService; @Resource - private final ITaskConfigService taskConfigService; - - protected AbstractDeptCollectJob(IPowerDeptService deptService, ITaskConfigService taskConfigService) { - this.deptService = deptService; - this.taskConfigService = taskConfigService; - } + private IPowerDeptService deptService; + @Resource + private ITaskConfigService taskConfigService; /** * 启动全量收集任务,时间从数据库读取,全量一般都用手工指定 @@ -67,10 +61,10 @@ public abstract class AbstractDeptCollectJob { int pageNum = 1; for (; true; pageNum++) { depts = this.getDepts( - periodTime.getPeriodStartDate(), - periodTime.getPeriodEndDate(), - pageNum, - taskConfig.getPageSize() + periodTime.getPeriodStartDate(), + periodTime.getPeriodEndDate(), + pageNum, + taskConfig.getPageSize() ); if (Func.isEmpty(depts)) { break; diff --git a/common-collect/src/main/java/com/docus/server/collect/job/dept/DeptHttpCollectJob.java b/common-collect/src/main/java/com/docus/server/collect/job/dept/DeptHttpCollectJob.java index c3df08b..a73af2e 100644 --- a/common-collect/src/main/java/com/docus/server/collect/job/dept/DeptHttpCollectJob.java +++ b/common-collect/src/main/java/com/docus/server/collect/job/dept/DeptHttpCollectJob.java @@ -1,9 +1,7 @@ package com.docus.server.collect.job.dept; -import com.docus.server.collect.service.IHttpDeptCollectService; -import com.docus.server.collect.service.ITaskConfigService; +import com.docus.server.collect.service.IHttpCollector; import com.docus.server.sys.common.pojo.dto.DeptDTO; -import com.docus.server.sys.service.IPowerDeptService; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @@ -15,13 +13,8 @@ import java.util.List; @Component public class DeptHttpCollectJob extends AbstractDeptCollectJob { - @Resource - private final IHttpDeptCollectService httpDeptCollectService; - - public DeptHttpCollectJob(IPowerDeptService deptService, ITaskConfigService taskConfigService, IHttpDeptCollectService httpDeptCollectService) { - super(deptService, taskConfigService); - this.httpDeptCollectService = httpDeptCollectService; - } + @Resource(name = "httpDeptCollectorImpl") + private IHttpCollector collector; /** * xxl jobhandler 手工执行 @@ -45,6 +38,6 @@ public class DeptHttpCollectJob extends AbstractDeptCollectJob { //需要根据不同医院去解析不同的内容。使用接口实现的方式。 - return httpDeptCollectService.getDepts(startDate, endDate, pazeNum, pageSize); + return collector.get(startDate, endDate, pazeNum, pageSize); } } diff --git a/common-collect/src/main/java/com/docus/server/collect/job/dept/DeptViewCollectJob.java b/common-collect/src/main/java/com/docus/server/collect/job/dept/DeptViewCollectJob.java index 13519c6..63100f4 100644 --- a/common-collect/src/main/java/com/docus/server/collect/job/dept/DeptViewCollectJob.java +++ b/common-collect/src/main/java/com/docus/server/collect/job/dept/DeptViewCollectJob.java @@ -1,9 +1,7 @@ package com.docus.server.collect.job.dept; -import com.docus.server.collect.service.ITaskConfigService; import com.docus.server.his.service.IHisService; import com.docus.server.sys.common.pojo.dto.DeptDTO; -import com.docus.server.sys.service.IPowerDeptService; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @@ -14,12 +12,7 @@ import java.util.List; @Component public class DeptViewCollectJob extends AbstractDeptCollectJob { @Resource - private final IHisService hisService; - - protected DeptViewCollectJob(IPowerDeptService deptService, ITaskConfigService taskConfigService, IHisService hisService) { - super(deptService, taskConfigService); - this.hisService = hisService; - } + private IHisService hisService; /** * xxl jobhandler 手工执行,全量执行 diff --git a/common-collect/src/main/java/com/docus/server/collect/job/user/AbstractUserCollectJob.java b/common-collect/src/main/java/com/docus/server/collect/job/user/AbstractUserCollectJob.java index 11eede5..2970ba6 100644 --- a/common-collect/src/main/java/com/docus/server/collect/job/user/AbstractUserCollectJob.java +++ b/common-collect/src/main/java/com/docus/server/collect/job/user/AbstractUserCollectJob.java @@ -19,11 +19,6 @@ public abstract class AbstractUserCollectJob { @Resource private ITaskConfigService taskConfigService; - protected AbstractUserCollectJob(IPowerUserService userService, ITaskConfigService taskConfigService) { - this.userService = userService; - this.taskConfigService = taskConfigService; - } - /** * 启动全量收集任务,时间从数据库读取,全量一般都用手工指定 */ @@ -67,10 +62,10 @@ public abstract class AbstractUserCollectJob { int pageNum = 1; for (; true; pageNum++) { users = this.getUsers( - periodTime.getPeriodStartDate(), - periodTime.getPeriodEndDate(), - pageNum, - taskConfig.getPageSize() + periodTime.getPeriodStartDate(), + periodTime.getPeriodEndDate(), + pageNum, + taskConfig.getPageSize() ); if (Func.isEmpty(users)) { break; diff --git a/common-collect/src/main/java/com/docus/server/collect/job/user/UserHttpCollectJob.java b/common-collect/src/main/java/com/docus/server/collect/job/user/UserHttpCollectJob.java index 75aa45b..4b026b4 100644 --- a/common-collect/src/main/java/com/docus/server/collect/job/user/UserHttpCollectJob.java +++ b/common-collect/src/main/java/com/docus/server/collect/job/user/UserHttpCollectJob.java @@ -1,9 +1,7 @@ package com.docus.server.collect.job.user; -import com.docus.server.collect.service.IHttpUserCollectService; -import com.docus.server.collect.service.ITaskConfigService; +import com.docus.server.collect.service.IHttpCollector; import com.docus.server.sys.common.pojo.dto.UserDTO; -import com.docus.server.sys.service.IPowerUserService; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @@ -15,13 +13,8 @@ import java.util.List; @Component public class UserHttpCollectJob extends AbstractUserCollectJob { - @Resource - private final IHttpUserCollectService httpUserCollectService; - - public UserHttpCollectJob(IPowerUserService userService, ITaskConfigService taskConfigService, IHttpUserCollectService httpDeptCollectService) { - super(userService, taskConfigService); - this.httpUserCollectService = httpDeptCollectService; - } + @Resource(name = "httpUserCollectorImpl") + private IHttpCollector collector; /** * xxl jobhandler 手工执行 @@ -43,6 +36,6 @@ public class UserHttpCollectJob extends AbstractUserCollectJob { @Override public List getUsers(Date startDate, Date endDate, long pazeNum, long pageSize) { //需要根据不同医院去解析不同的内容。使用接口实现的方式。 - return httpUserCollectService.getUsers(startDate, endDate, pazeNum, pageSize); + return collector.get(startDate, endDate, pazeNum, pageSize); } } diff --git a/common-collect/src/main/java/com/docus/server/collect/job/user/UserViewCollectJob.java b/common-collect/src/main/java/com/docus/server/collect/job/user/UserViewCollectJob.java index f5933a7..13a9411 100644 --- a/common-collect/src/main/java/com/docus/server/collect/job/user/UserViewCollectJob.java +++ b/common-collect/src/main/java/com/docus/server/collect/job/user/UserViewCollectJob.java @@ -1,9 +1,7 @@ package com.docus.server.collect.job.user; -import com.docus.server.collect.service.ITaskConfigService; import com.docus.server.his.service.IHisService; import com.docus.server.sys.common.pojo.dto.UserDTO; -import com.docus.server.sys.service.IPowerUserService; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @@ -14,17 +12,12 @@ import java.util.List; @Component public class UserViewCollectJob extends AbstractUserCollectJob { @Resource - private final IHisService hisService; - - protected UserViewCollectJob(IPowerUserService deptService, ITaskConfigService taskConfigService, IHisService hisService) { - super(deptService, taskConfigService); - this.hisService = hisService; - } + private IHisService hisService; /** * xxl jobhandler 手工执行,全量执行 */ - @XxlJob("startAllDeptViewCollect") + @XxlJob("startAllUserViewCollect") public void startAllDeptViewCollect() { super.startCollectAll(getJobParam()); } @@ -33,7 +26,7 @@ public class UserViewCollectJob extends AbstractUserCollectJob { /** * xxl jobhandler 配置定时启动,如果未完成任务跳过。增量收集 */ - @XxlJob("startIncDeptViewCollect") + @XxlJob("startIncUserViewCollect") public void startIncDeptViewCollect() { super.startCollectIncrement(getJobParam()); } diff --git a/common-collect/src/main/java/com/docus/server/collect/service/CollectService.java b/common-collect/src/main/java/com/docus/server/collect/service/CollectService.java index 05b3f13..9fc2aee 100644 --- a/common-collect/src/main/java/com/docus/server/collect/service/CollectService.java +++ b/common-collect/src/main/java/com/docus/server/collect/service/CollectService.java @@ -22,23 +22,22 @@ public class CollectService extends BaseCollectService { /** * 默认3次重试 */ - @Async + @Async("recordMessage") @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5)) public void toInsertOrUpdateDept(DeptDTO deptDTO) { //异步写入归档系统,失败自动重试。 if (checkType(deptDTO.getOperateType(), delType)) { deptService.delDeptByDeptCode(deptDTO.getDeptCode()); } else { - deptService.saveOrUpdatePowerDept(deptDTO); } } - @Async - @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5)) + // @Async("recordMessage") +// @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5)) public void toInsertOrUpdateUser(UserDTO userDTO) { // 判断操作类型 - if (checkType(userDTO.getOperateType(), delType)) { + if (super.checkType(userDTO.getOperateType(), delType)) { userService.delUserByUserName(userDTO.getUserName()); } else { userService.saveOrUpdatePowerUser(userDTO); diff --git a/common-collect/src/main/java/com/docus/server/collect/service/IHttpCollector.java b/common-collect/src/main/java/com/docus/server/collect/service/IHttpCollector.java new file mode 100644 index 0000000..65483c0 --- /dev/null +++ b/common-collect/src/main/java/com/docus/server/collect/service/IHttpCollector.java @@ -0,0 +1,11 @@ +package com.docus.server.collect.service; + +import java.util.Date; +import java.util.List; + +public interface IHttpCollector { + /** + * 根据配置获取多态的收集器 + */ + List get(Date startDate, Date endDate, long pageNum, long pageSize); +} diff --git a/common-collect/src/main/java/com/docus/server/collect/service/IHttpDeptCollectService.java b/common-collect/src/main/java/com/docus/server/collect/service/IHttpDeptCollectService.java deleted file mode 100644 index 2a56485..0000000 --- a/common-collect/src/main/java/com/docus/server/collect/service/IHttpDeptCollectService.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.docus.server.collect.service; - -import com.docus.server.sys.common.pojo.dto.DeptDTO; - -import java.util.Date; -import java.util.List; - -public interface IHttpDeptCollectService { - List getDepts(Date startDate, Date endDate, long pageNum, long pageSize); -} diff --git a/common-collect/src/main/java/com/docus/server/collect/service/IHttpTBasicCollectService.java b/common-collect/src/main/java/com/docus/server/collect/service/IHttpTBasicCollectService.java deleted file mode 100644 index 6c861c5..0000000 --- a/common-collect/src/main/java/com/docus/server/collect/service/IHttpTBasicCollectService.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.docus.server.collect.service; - -import com.docus.server.record.pojo.dto.TBasicDTO; - -import java.util.Date; -import java.util.List; - -public interface IHttpTBasicCollectService { - List getTBasics(Date startDate, Date endDate, long pageNum, long pageSize); -} diff --git a/common-collect/src/main/java/com/docus/server/collect/service/IHttpUserCollectService.java b/common-collect/src/main/java/com/docus/server/collect/service/IHttpUserCollectService.java deleted file mode 100644 index d4e058e..0000000 --- a/common-collect/src/main/java/com/docus/server/collect/service/IHttpUserCollectService.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.docus.server.collect.service; - -import com.docus.server.sys.common.pojo.dto.UserDTO; - -import java.util.Date; -import java.util.List; - -public interface IHttpUserCollectService { - List getUsers(Date startDate, Date endDate, long pageNum, long pageSize); -} diff --git a/common-collect/src/main/java/com/docus/server/tool/SpringUtils.java b/common-collect/src/main/java/com/docus/server/tool/SpringUtils.java new file mode 100644 index 0000000..59cba3e --- /dev/null +++ b/common-collect/src/main/java/com/docus/server/tool/SpringUtils.java @@ -0,0 +1,107 @@ +package com.docus.server.tool; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; + +import java.lang.reflect.Method; +import java.util.Map; + +/** + * @author linruifeng + */ +@Configuration +public class SpringUtils implements ApplicationContextAware { + + /** + * Spring容器 spring应用上下文对象 + */ + private static ApplicationContext applicationContext; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + SpringUtils.applicationContext = applicationContext; + } + + /** + * bean名称 + * + * @param name 要查询的bean的名称 + * @return true:包含 + */ + public static boolean containsBean(String name) { + return applicationContext.containsBean(name); + } + + /** + * 通过对象名称获取spring bean对象 + * + * @param name bean的名称 + * @return 对象 + */ + public static Object getBean(String name) throws BeansException { + return applicationContext.getBean(name); + } + + /** + * 返回与给定对象类型唯一匹配的bean实例(如果有) + * + * @param requiredType bean 必须匹配的类型; 可以是接口或超 + * @return 匹配所需类型的单个 bean 的实例 + */ + public static T getBean(Class requiredType) throws BeansException { + return applicationContext.getBean(requiredType); + } + + /** + * 返回与给定对象类型(包括子类)匹配的 bean 实例 + * + * @param type 要匹配的类或接口 + * @return Map + */ + public static Map getBeansOfType(Class type) throws BeansException { + return applicationContext.getBeansOfType(type); + } + + public static Object invokeMethod(Class requiredType, String methodName, Object[] params) { + Object service = getBean(requiredType); + Class[] paramClass = null; + if (params != null) { + int paramsLength = params.length; + paramClass = new Class[paramsLength]; + for (int i = 0; i < paramsLength; i++) { + paramClass[i] = params[i].getClass(); + } + } + // 找到方法 + Method method = ReflectionUtils.findMethod(service.getClass(), methodName, paramClass); + // 执行方法 + return ReflectionUtils.invokeMethod(method, service, params); + } + + /** + * 根据bean名称、方法名反射调用spring bean中的方法 + * + * @param serviceName 服务名 + * @param methodName 方法名 + * @param params 参数 + * @return 对象 + */ + public static Object invokeMethod(String serviceName, String methodName, Object[] params) { + Object service = getBean(serviceName); + Class[] paramClass = null; + if (params != null) { + int paramsLength = params.length; + paramClass = new Class[paramsLength]; + for (int i = 0; i < paramsLength; i++) { + paramClass[i] = params[i].getClass(); + } + } + // 找到方法 + Method method = ReflectionUtils.findMethod(service.getClass(), methodName, paramClass); + // 执行方法 + return ReflectionUtils.invokeMethod(method, service, params); + } +} diff --git a/common-collect/src/main/java/com/docus/server/visitor/VisitorProcessor.java b/common-collect/src/main/java/com/docus/server/visitor/VisitorProcessor.java new file mode 100644 index 0000000..e0cb599 --- /dev/null +++ b/common-collect/src/main/java/com/docus/server/visitor/VisitorProcessor.java @@ -0,0 +1,106 @@ +package com.docus.server.visitor; + +import com.docus.core.util.Func; +import com.docus.core.util.json.JSON; +import com.docus.log.context.TrackContext; +import com.docus.log.processor.AbstractProcessor; +import com.docus.server.collect.infrastructure.dao.CollectTypeEnum; +import com.docus.server.collect.infrastructure.dao.StateEnum; +import com.docus.server.collect.infrastructure.enums.IIntegerEnum; +import com.docus.server.tool.ParamsUtils; +import com.docus.server.tool.SpringUtils; +import com.docus.server.ws.ITaskOriginalMessageService; +import com.docus.server.ws.IWsResult; +import com.docus.server.ws.convert.IConverter; +import lombok.extern.slf4j.Slf4j; + +import java.util.Map; + +/** + * @author linruifeng + */ +@Slf4j +public class VisitorProcessor extends AbstractProcessor { + private IConverter converter; + private IWsResult wsResult; + private ITaskOriginalMessageService taskOriginalMessageService; + + @Override + public Object doProcess(TrackContext context) { + if (context.isError()) { + return afterThrowingProcess(context); + } else { + return afterReturnProcess(context); + } + } + + /** + * 前置通知 + */ + @Override + public Object beforeProcess(TrackContext context) { + log.debug("=== AOP 前置通知 ==="); + String message = (String) context.getArgs()[0]; + initBeans(context.getBeanNames()); + Object dto = converter.convert(message, context.getMethodName()); + String jsonStr = JSON.toJSON(dto); + SpringUtils.invokeMethod(context.getClassType(), "setProperty", new Object[]{jsonStr}); + Long taskId = taskOriginalMessageService.insertTaskOriginalMessage(jsonStr, message, + IIntegerEnum.fromDisplay(CollectTypeEnum.class, context.getGroup())); + return ParamsUtils.addParam("taskId", taskId).addParam("jsonStr", jsonStr).param(); + } + + + /** + * 后置通知 + */ + public Object afterReturnProcess(TrackContext context) { + log.debug("=== AOP 后置通知 ==="); + Map beforeResult = (Map) context.getBeforeResult(); + Long taskId = (Long) beforeResult.get("taskId"); + String afterReturnResult = (String) beforeResult.get("jsonStr"); + if (Func.isNotEmpty(taskId)) { + taskOriginalMessageService.updateTaskOriginalMessage(taskId, afterReturnResult, StateEnum.OK); + } + Map map = JSON.fromJSON(afterReturnResult, Map.class); + map.put("msg", "操作成功!"); + return wsResult.ok(map); + } + + /** + * 异常通知 + */ + public Object afterThrowingProcess(TrackContext context) { + log.error("=== AOP 异常通知 ==="); + Map params = ParamsUtils.addParam("msg", context.getExMessageResult()).param(); + try { + Map beforeResult = (Map) context.getBeforeResult(); + Long taskId = (Long) beforeResult.get("taskId"); + String afterReturnResult = (String) beforeResult.get("jsonStr"); + + log.error(context.getExMessageResult()); + if (Func.isNotEmpty(taskId)) { + taskOriginalMessageService.updateTaskOriginalMessage(taskId, afterReturnResult, StateEnum.FAIL); + } + params.putAll(JSON.fromJSON(afterReturnResult, Map.class)); + return wsResult.fail(params); + } catch (Exception e) { + return wsResult.fail(params); + } + } + + /** + * 最后通知 + */ + @Override + public Object afterProcess(TrackContext context) { + log.debug("=== AOP 最后通知 ==="); + return null; + } + + private void initBeans(String[] beanNames) { + this.converter = (IConverter) SpringUtils.getBean(beanNames[0]); + this.wsResult = (IWsResult) SpringUtils.getBean(beanNames[1]); + this.taskOriginalMessageService = SpringUtils.getBean(ITaskOriginalMessageService.class); + } +} diff --git a/common-collect/src/main/java/com/docus/server/ws/ITaskOriginalMessageService.java b/common-collect/src/main/java/com/docus/server/ws/ITaskOriginalMessageService.java index 8644ed4..9eca406 100644 --- a/common-collect/src/main/java/com/docus/server/ws/ITaskOriginalMessageService.java +++ b/common-collect/src/main/java/com/docus/server/ws/ITaskOriginalMessageService.java @@ -1,11 +1,11 @@ package com.docus.server.ws; import com.docus.server.collect.infrastructure.dao.CollectTypeEnum; +import com.docus.server.collect.infrastructure.dao.StateEnum; public interface ITaskOriginalMessageService { - long insertTaskOriginalMessage(String xml, CollectTypeEnum collectType); - - void updateTaskOriginalMessage(long id); + Long insertTaskOriginalMessage(Object json, String xml, CollectTypeEnum collectType); + void updateTaskOriginalMessage(Long id, Object json, StateEnum stateEnum); } diff --git a/common-collect/src/main/java/com/docus/server/ws/WsCollect.java b/common-collect/src/main/java/com/docus/server/ws/WsCollect.java index 6e13085..bf50000 100644 --- a/common-collect/src/main/java/com/docus/server/ws/WsCollect.java +++ b/common-collect/src/main/java/com/docus/server/ws/WsCollect.java @@ -1,52 +1,45 @@ package com.docus.server.ws; -import com.docus.server.collect.service.CollectService; -import com.docus.server.collect.service.IParseService; -import com.docus.server.record.pojo.entity.MedicalRecord; -import com.docus.server.record.service.IMedicalRecordService; -import com.docus.server.sys.common.pojo.dto.DeptDTO; -import com.docus.server.sys.service.IPowerDeptService; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Slf4j @Component public class WsCollect { - @Autowired - private IMedicalRecordService medicalRecordService; - @Autowired - private IParseService parseService; - @Autowired - private CollectService collectService; - @Autowired - private IWsResult wsResult; - @Autowired - private IPowerDeptService powerDeptService; - - //接收xml。并且下载病案。 - public String receiveHandNumbness(String handNumbness) { - log.info("收到手麻消息:{}", handNumbness); - try { - MedicalRecord medicalRecord = parseService.parseHandNumbness(handNumbness); - medicalRecordService.receive(medicalRecord); - return wsResult.ok(medicalRecord.getParams()); - } catch (Exception e) { - return wsResult.fail(e.getMessage()); - } - } - - public String receiveDept(String deptXml) { - log.info("收到科室消息:{}", deptXml); - try { - DeptDTO dept = parseService.parseDeptXml(deptXml); - - //此处需要存储原xml内容。 - collectService.receiveDept(dept); - return wsResult.ok(dept.getParams()); - } catch (Exception e) { - return wsResult.fail(e.getMessage(), dept.getParams()); - } - } +// @Autowired +// private IMedicalRecordService medicalRecordService; +// @Autowired +// private IParseService parseService; +// @Autowired +// private CollectService collectService; +// @Autowired +// private IWsResult wsResult; +// @Autowired +// private IPowerDeptService powerDeptService; +// +// //接收xml。并且下载病案。 +// public String receiveHandNumbness(String handNumbness) { +// log.info("收到手麻消息:{}", handNumbness); +// try { +// MedicalRecord medicalRecord = parseService.parseHandNumbness(handNumbness); +// medicalRecordService.receive(medicalRecord); +// return wsResult.ok(medicalRecord.getParams()); +// } catch (Exception e) { +// return wsResult.fail(e.getMessage()); +// } +// } +// +// public String receiveDept(String deptXml) { +// log.info("收到科室消息:{}", deptXml); +// try { +// DeptDTO dept = parseService.parseDeptXml(deptXml); +// +// //此处需要存储原xml内容。 +// collectService.receiveDept(dept); +// return wsResult.ok(dept.getParams()); +// } catch (Exception e) { +// return wsResult.fail(e.getMessage(), dept.getParams()); +// } +// } } diff --git a/common-collect/src/main/java/com/docus/server/ws/convert/IConverter.java b/common-collect/src/main/java/com/docus/server/ws/convert/IConverter.java index 138e03d..677d2fa 100644 --- a/common-collect/src/main/java/com/docus/server/ws/convert/IConverter.java +++ b/common-collect/src/main/java/com/docus/server/ws/convert/IConverter.java @@ -1,9 +1,7 @@ package com.docus.server.ws.convert; -import com.docus.server.collect.infrastructure.dao.FlagEnum; - public interface IConverter { - T convert(String message, FlagEnum flagEnum); + T convert(String message, String methodName); } diff --git a/common-collect/src/main/java/com/docus/server/ws/convert/TaskOriginalMessageConverter.java b/common-collect/src/main/java/com/docus/server/ws/convert/TaskOriginalMessageConverter.java index 6b2ed86..2a3e2ef 100644 --- a/common-collect/src/main/java/com/docus/server/ws/convert/TaskOriginalMessageConverter.java +++ b/common-collect/src/main/java/com/docus/server/ws/convert/TaskOriginalMessageConverter.java @@ -14,11 +14,12 @@ public class TaskOriginalMessageConverter { @Resource private IdService idService; - public TaskOriginalMessage toConvertTaskOriginalMessageDO(String xml, CollectTypeEnum collectType) { + public TaskOriginalMessage toConvertTaskOriginalMessageDO(Object json, String xml, CollectTypeEnum collectType) { TaskOriginalMessage taskOriginalMessage = new TaskOriginalMessage(); taskOriginalMessage.setId(idService.getDateSeq()); taskOriginalMessage.setName(collectType.name()); taskOriginalMessage.setCollectType(collectType); + taskOriginalMessage.setJsonStr(json); taskOriginalMessage.setSource(xml); taskOriginalMessage.setState(StateEnum.OK); taskOriginalMessage.setCreateTime(DateUtil.now()); diff --git a/common-collect/src/main/java/com/docus/server/ws/impl/BasicServiceImpl.java b/common-collect/src/main/java/com/docus/server/ws/impl/BasicServiceImpl.java index 71986ab..246052c 100644 --- a/common-collect/src/main/java/com/docus/server/ws/impl/BasicServiceImpl.java +++ b/common-collect/src/main/java/com/docus/server/ws/impl/BasicServiceImpl.java @@ -1,6 +1,7 @@ package com.docus.server.ws.impl; import com.docus.core.util.Func; +import com.docus.core.util.json.JSON; import com.docus.server.collect.infrastructure.dao.CollectTypeEnum; import com.docus.server.collect.infrastructure.dao.FlagEnum; import com.docus.server.record.pojo.dto.TBasicDTO; @@ -47,13 +48,13 @@ public class BasicServiceImpl implements IBasicService { TBasicDTO tBasicDTO = new TBasicDTO(); long id = 0; try { - id = taskOriginalMessageService.insertTaskOriginalMessage(message, CollectTypeEnum.WS_XML_BASIC); - tBasicDTO = (TBasicDTO) converter.convert(message, FlagEnum.INSERT); + tBasicDTO = (TBasicDTO) converter.convert(message, FlagEnum.INSERT.name()); + id = taskOriginalMessageService.insertTaskOriginalMessage(JSON.toJSON(tBasicDTO), message, CollectTypeEnum.WEBSERVICE_XML_BASIC); tBasicService.insertTBasic(tBasicDTO); return wsResult.ok(tBasicDTO.getParams()); } catch (Exception e) { log.error(e.getMessage(), e); - taskOriginalMessageService.updateTaskOriginalMessage(id); +// taskOriginalMessageService.updateTaskOriginalMessage(id); tBasicDTO.getParams().put("msg", e.getMessage()); return wsResult.fail(tBasicDTO.getParams()); } @@ -70,13 +71,13 @@ public class BasicServiceImpl implements IBasicService { TBasicDTO tBasicDTO = new TBasicDTO(); long id = 0; try { - id = taskOriginalMessageService.insertTaskOriginalMessage(message, CollectTypeEnum.WS_XML_BASIC); - tBasicDTO = (TBasicDTO) converter.convert(message, FlagEnum.UPDATE); + tBasicDTO = (TBasicDTO) converter.convert(message, FlagEnum.UPDATE.name()); + id = taskOriginalMessageService.insertTaskOriginalMessage(JSON.toJSON(tBasicDTO), message, CollectTypeEnum.WEBSERVICE_XML_BASIC); tBasicService.updateTBasic(tBasicDTO); return wsResult.ok(tBasicDTO.getParams()); } catch (Exception e) { log.error(e.getMessage(), e); - taskOriginalMessageService.updateTaskOriginalMessage(id); +// taskOriginalMessageService.updateTaskOriginalMessage(id); tBasicDTO.getParams().put("msg", e.getMessage()); return wsResult.fail(tBasicDTO.getParams()); } @@ -84,9 +85,9 @@ public class BasicServiceImpl implements IBasicService { private String toFail() { return wsResult.fail(ParamsUtils.addParam("serialId", null) - .addParam("msg", "参数为空") - .addParam("receive", null) - .addParam("send", null).param()); + .addParam("msg", "参数为空") + .addParam("receive", null) + .addParam("send", null).param()); } } diff --git a/common-collect/src/main/java/com/docus/server/ws/impl/DeptServerImpl.java b/common-collect/src/main/java/com/docus/server/ws/impl/DeptServerImpl.java index ca92b1c..d27a858 100644 --- a/common-collect/src/main/java/com/docus/server/ws/impl/DeptServerImpl.java +++ b/common-collect/src/main/java/com/docus/server/ws/impl/DeptServerImpl.java @@ -1,5 +1,6 @@ package com.docus.server.ws.impl; +import com.docus.core.util.json.JSON; import com.docus.server.collect.infrastructure.dao.CollectTypeEnum; import com.docus.server.collect.infrastructure.dao.FlagEnum; import com.docus.server.collect.service.CollectService; @@ -34,17 +35,17 @@ public class DeptServerImpl implements IDeptServer { log.info("新增/修改科室数据:{}", message); DeptDTO deptDTO = new DeptDTO(); - long id = 0; + Long id = null; try { //此处需要存储原xml内容。 - id = taskOriginalMessageService.insertTaskOriginalMessage(message, CollectTypeEnum.WS_XML_DEPT); - deptDTO = (DeptDTO) converter.convert(message, FlagEnum.INSERT); + deptDTO = (DeptDTO) converter.convert(message, FlagEnum.INSERT.name()); + id = taskOriginalMessageService.insertTaskOriginalMessage(JSON.toJSON(deptDTO), message, CollectTypeEnum.WEBSERVICE_XML_DEPT); collectService.toInsertOrUpdateDept(deptDTO); return wsResult.ok(deptDTO.getParams()); } catch (Exception e) { log.error(e.getMessage(), e); - taskOriginalMessageService.updateTaskOriginalMessage(id); +// taskOriginalMessageService.updateTaskOriginalMessage(id); deptDTO.getParams().put("msg", e.getMessage()); return wsResult.fail(deptDTO.getParams()); } diff --git a/common-collect/src/main/java/com/docus/server/ws/impl/ReportServerImpl.java b/common-collect/src/main/java/com/docus/server/ws/impl/ReportServerImpl.java index 290c526..fc88b45 100644 --- a/common-collect/src/main/java/com/docus/server/ws/impl/ReportServerImpl.java +++ b/common-collect/src/main/java/com/docus/server/ws/impl/ReportServerImpl.java @@ -1,26 +1,8 @@ package com.docus.server.ws.impl; -import com.alibaba.fastjson.JSONObject; -import com.docus.core.util.DateUtil; -import com.docus.core.util.Func; -import com.docus.core.util.XmlUtil; -import com.docus.infrastructure.core.exception.BaseException; -import com.docus.infrastructure.core.utils.TableJsonRead; -import com.docus.server.collect.infrastructure.dao.CollectTypeEnum; -import com.docus.server.collect.infrastructure.dao.FlagEnum; -import com.docus.server.collect.infrastructure.pojo.dto.ReportDTO; -import com.docus.server.collect.service.CollectService; -import com.docus.server.tool.IdUtil; import com.docus.server.ws.IReportServer; -import com.docus.server.ws.ITaskOriginalMessageService; -import com.docus.server.ws.IWsResult; -import com.docus.server.ws.convert.IConverter; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import org.w3c.dom.Node; - -import javax.annotation.Resource; -import java.util.Date; /** * @author wyb @@ -29,520 +11,539 @@ import java.util.Date; @Service @Slf4j public class ReportServerImpl implements IReportServer { - @Resource(name = "wsReportResultImpl") - private IWsResult wsResult; - @Resource(name = "reportConverter") - private IConverter converter; - @Resource - private CollectService collectService; - @Resource - private ITaskOriginalMessageService taskOriginalMessageService; - @Resource - private ReportService reportService; - @Override - public String pushSAReport(String message) { - log.info("收到手麻消息:{}", message); - ReportDTO reportDTO = new ReportDTO(); - long id = 0; - try { - id = taskOriginalMessageService.insertTaskOriginalMessage(message, CollectTypeEnum.WS_XML_SA_REPORT); - reportDTO = (ReportDTO) converter.convert(message, FlagEnum.INSERT); - medicalRecordService.receive(medicalRecord); - return wsResult.ok(reportDTO.getParams()); - } catch (Exception e) { - log.error(e.getMessage(), e); - taskOriginalMessageService.updateTaskOriginalMessage(id); - reportDTO.getParams().put("msg", e.getMessage()); - return wsResult.fail(reportDTO.getParams()); - } - - - // 待做 - log.info("收到手麻消息:{}", saReportMessage); - String msgId = ""; - try { - XmlUtil xmlUtil = XmlUtil.of(saReportMessage); - Node msgNode = xmlUtil.getNode("/Request/Msg/ID"); - msgId = msgNode.getTextContent(); - ReportDto reportDto = getReportDtoByJSXML(xmlUtil); - verifyReportDto(reportDto); - reportService.report(reportDto); - return JSXMLResult.success(msgId); - } catch (BaseException baseException) { - log.error(baseException.getMessage(), baseException); - return JSXMLResult.failed(msgId, baseException.getMessage()); - } catch (Exception ex) { - log.error(ex.getMessage(), ex); - return JSXMLResult.failed(msgId, "系统故障!"); - } - } - - - /** - * 嘉时自定义接收接口使用,从xml工具读取返回文件上报需要的数据 - * - * @param xmlUtil xml消息工具封装 - * @return 文件上报数据 - */ - public ReportDto getReportDtoByJSXML(XmlUtil xmlUtil) { - TableJsonRead jsonRead = new TableJsonRead(); - JSONObject tableTypeJson = jsonRead.Read("data-config", "js-table-type.json", JSONObject.class); - String jsReportConfigXml = jsonRead.ReadContent("data-config", "js-report-config.xml"); - XmlUtil configXmlUtil = XmlUtil.of(jsReportConfigXml); - - Node inpatientNoXpathNode = configXmlUtil.getNode("/REPORT/INPATIENT_NO"); - String inpatientNoXpath = inpatientNoXpathNode.getTextContent(); - Node inpatientNoNode = xmlUtil.getNode(inpatientNoXpath); - String inpatientNo = inpatientNoNode.getTextContent(); - - Node jzhXpathNode = configXmlUtil.getNode("/REPORT/JZH"); - String jzhXpath = jzhXpathNode.getTextContent(); - Node jzhNode = xmlUtil.getNode(jzhXpath); - String jzh = jzhNode.getTextContent(); - - Node admissTimesXpathNode = configXmlUtil.getNode("/REPORT/ADMISS_TIMES"); - String admissTimesXpath = admissTimesXpathNode.getTextContent(); - Node admissTimesNode = xmlUtil.getNode(admissTimesXpath); - Integer admissTimes = Integer.valueOf(admissTimesNode.getTextContent()); - - Node serialnumXpathNode = configXmlUtil.getNode("/REPORT/SERIALNUM"); - String serialnumXpath = serialnumXpathNode.getTextContent(); - Node serialnumNode = xmlUtil.getNode(serialnumXpath); - String serialnum = serialnumNode.getTextContent(); - - Node fileTitleXpathNode = configXmlUtil.getNode("/REPORT/FILE_TITLE"); - String fileTitleXpath = fileTitleXpathNode.getTextContent(); - Node fileTitleNode = xmlUtil.getNode(fileTitleXpath); - String fileTitle = fileTitleNode.getTextContent(); - - Node downUrlXpathNode = configXmlUtil.getNode("/REPORT/DOWNURL"); - String downUrlXpath = downUrlXpathNode.getTextContent(); - Node downUrlNode = xmlUtil.getNode(downUrlXpath); - String downUrl = downUrlNode.getTextContent(); - - Node tableTypeXpathNode = configXmlUtil.getNode("/REPORT/TABLE_TYPE"); - String tableTypeXpath = tableTypeXpathNode.getTextContent(); - Node tableTypeNode = xmlUtil.getNode(tableTypeXpath); - String tableType = tableTypeNode.getTextContent(); - - - Node assortIdXpathNode = configXmlUtil.getNode("/REPORT/ASSORT_ID"); - String assortIdXpath = assortIdXpathNode.getTextContent(); - String assortId; - if (Func.isBlank(assortIdXpath)) { - // 如果没有配置 取value 属性,如果value也未配置 取 tableType 对应的json配置,最终方案默认 other 分段 - Node assortIdValueNode = assortIdXpathNode.getAttributes().getNamedItem("value"); - if (Func.isEmpty(assortIdValueNode)) { - assortId = assortIdValueNode.getNodeValue(); - } else { - assortId = tableTypeJson.getString(tableType); - } - if (Func.isBlank(assortId)) { - assortId = tableTypeJson.getString("other"); - } - } else { - Node assortIdNode = xmlUtil.getNode(assortIdXpath); - assortId = assortIdNode.getTextContent(); - } - - Node sysFlagXpathNode = configXmlUtil.getNode("/REPORT/SYSTEM_FLAG"); - String sysFlagXpath = sysFlagXpathNode.getTextContent(); - Node sysFlagNode = xmlUtil.getNode(sysFlagXpath); - String sysFlag = sysFlagNode.getTextContent(); - - Node fileSourceXpathNode = configXmlUtil.getNode("/REPORT/FILESOURCE"); - String fileSourceXpath = fileSourceXpathNode.getTextContent(); - String fileSource; - if (Func.isBlank(fileSourceXpath)) { - Node fileSourceValueNode = fileSourceXpathNode.getAttributes().getNamedItem("value"); - if (Func.isEmpty(fileSourceValueNode)) { - fileSource = null; - } else { - fileSource = fileSourceValueNode.getNodeValue(); - } - - } else { - Node fileSourceNode = xmlUtil.getNode(fileSourceXpath); - fileSource = fileSourceNode.getTextContent(); - } - - - Node fileStorageTypeXpathNode = configXmlUtil.getNode("/REPORT/FILE_STORAGE_TYPE"); - String fileStorageTypeXpath = fileStorageTypeXpathNode.getTextContent(); - String fileStorageType; - if (Func.isBlank(fileStorageTypeXpath)) { - Node filestoragetypeValueNode = fileStorageTypeXpathNode.getAttributes().getNamedItem("value"); - if (Func.isEmpty(filestoragetypeValueNode)) { - fileStorageType = "1"; - } else { - fileStorageType = filestoragetypeValueNode.getNodeValue(); - } - - } else { - Node filestoragetypeNode = xmlUtil.getNode(fileStorageTypeXpath); - fileStorageType = filestoragetypeNode.getTextContent(); - } - - ReportDto reportDto = new ReportDto(); - reportDto.setAdmisstimes(admissTimes); - reportDto.setInpatientNo(inpatientNo); - reportDto.setJzh(jzh); - reportDto.setSerialnum(serialnum); - reportDto.setFileTitle(fileTitle); - reportDto.setDownUrl(downUrl); - reportDto.setAssortId(assortId); - reportDto.setSysFlag(sysFlag); - reportDto.setFileSource(fileSource); - reportDto.setFilestoragetype(fileStorageType); - return reportDto; + public String pushSAReport(String saReportMessage) { + return null; } @Override public String pushICUReport(String icuReportMessage) { - log.info("收到重症消息:{}", icuReportMessage); - String msgId = ""; - try { - XmlUtil xmlUtil = XmlUtil.of(icuReportMessage); - Node msgNode = xmlUtil.getNode("/Request/Msg/ID"); - msgId = msgNode.getTextContent(); - ReportDto reportDto = getReportDtoByJSXML(xmlUtil); - verifyReportDto(reportDto); - reportService.report(reportDto); - return JSXMLResult.success(msgId); - } catch (BaseException baseException) { - log.error(baseException.getMessage(), baseException); - return JSXMLResult.failed(msgId, baseException.getMessage()); - } catch (Exception ex) { - log.error(ex.getMessage(), ex); - return JSXMLResult.failed(msgId, "系统故障!"); - } + return null; } @Override public String pushAddInspectionReport(String inspectionReportMessage) { - log.info("收到检查报告新增消息:{}", inspectionReportMessage); - String msgId = ""; - String sender = ""; - String receiver = ""; - try { - XmlUtil xmlUtil = XmlUtil.of(inspectionReportMessage); - msgId = xmlUtil.getNode("/POOR_HIP1008/id/@extension").getNodeValue(); - sender = xmlUtil.getNode("/POOR_HIP1008/sender/device/id/item/@extension").getNodeValue(); - receiver = xmlUtil.getNode("/POOR_HIP1008/receiver/device/id/item/@extension").getNodeValue(); - - ReportDto reportDto = getReportDtoByInspectionInsert(xmlUtil); - verifyReportDto(reportDto); - reportService.report(reportDto); - return insertSuccess(msgId, sender, receiver); - } catch (BaseException baseException) { - log.error(baseException.getMessage(), baseException); - return insertFailed(msgId, sender, receiver, baseException.getMessage()); - } catch (Exception ex) { - log.error(ex.getMessage(), ex); - return insertFailed(msgId, sender, receiver, "系统错误!"); - } + return null; } - @Override public String pushUpdateInspectionReport(String inspectionReportMessage) { - log.info("收到检查报告更新消息{}", inspectionReportMessage); - String msgId = ""; - String sender = ""; - String receiver = ""; - try { - XmlUtil xmlUtil = XmlUtil.of(inspectionReportMessage); - msgId = xmlUtil.getNode("/POOR_HIP1009/id/@extension").getNodeValue(); - sender = xmlUtil.getNode("/POOR_HIP1009/sender/device/id/item/@extension").getNodeValue(); - receiver = xmlUtil.getNode("/POOR_HIP1009/receiver/device/id/item/@extension").getNodeValue(); - - ReportDto reportDto = getReportDtoByInspectionUpdate(xmlUtil); - verifyReportDto(reportDto); - reportService.report(reportDto); - return updateSuccess(msgId, sender, receiver); - } catch (BaseException baseException) { - log.error(baseException.getMessage(), baseException); - return updateFailed(msgId, sender, receiver, baseException.getMessage()); - } catch (Exception ex) { - log.error(ex.getMessage(), ex); - return updateFailed(msgId, sender, receiver, "系统错误"); - } - - } - - /** - * 验证上报文件的信息 - * - * @param reportDto 上报文件的信息 - * @throws BaseException 验证不通过抛出业务异常 - */ - private void verifyReportDto(ReportDto reportDto) throws BaseException { - - if (Func.isBlank(reportDto.getInpatientNo())) { - throw new BaseException("住院号不能为空!"); - } - - if (Func.isEmpty(reportDto.getAdmisstimes()) && Func.isBlank(reportDto.getJzh())) { - throw new BaseException("当住院号与住院次数都为空时,住院流水号/记账号不能为空!"); - } - - if (Func.isBlank(reportDto.getFileTitle())) { - throw new BaseException("文件名不能为空!"); - } - if (Func.isBlank(reportDto.getDownUrl())) { - throw new BaseException("文件下载路径不能为空!"); - } - } - - public ReportDto getReportDtoByInspectionInsert(XmlUtil inspectionInsertXmlUtil) { - - Node inpatientNoNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.12']/@extension"); - String inpatientNo = inpatientNoNode.getNodeValue(); - - Node admissTimesNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/item[@root='1.2.156.112635.1.2.1.7']/@extension"); - Integer admissTimes = Integer.valueOf(admissTimesNode.getNodeValue()); - - // 检查报告单号标识 - Node reportFlagNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.32']/@extension"); - String reportFlag = reportFlagNode.getNodeValue(); - //电子申请单编号 - Node eafNoNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.24']/@extension"); - String eafNo = eafNoNode.getNodeValue(); - String serialnum = reportFlag + "@" + eafNo; - - Node assortIdNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); - String assortId = assortIdNode.getNodeValue(); - - Node sysFlagNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); - String sysFlag = sysFlagNode.getNodeValue(); - - Node fileTitleNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查报告类型']/observation/code/@displayName"); - String fileTitle = fileTitleNode.getNodeValue(); - - Node downUrlNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告图像']/report/entry[@displayName='检查报告图像URL地址']/observation/value"); - String downUrl = downUrlNode.getTextContent(); - - ReportDto reportDto = new ReportDto(); - reportDto.setAdmisstimes(admissTimes); - reportDto.setInpatientNo(inpatientNo); - reportDto.setSerialnum(serialnum); - reportDto.setFileTitle(fileTitle); - reportDto.setDownUrl(downUrl); - reportDto.setAssortId(assortId); - reportDto.setSysFlag(sysFlag); - reportDto.setFileSource("1"); - reportDto.setFilestoragetype("1"); - return reportDto; - } - - public ReportDto getReportDtoByInspectionUpdate(XmlUtil inspectionUpdateXmlUtil) { - Node inpatientNoNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.12']/@extension"); - String inpatientNo = inpatientNoNode.getNodeValue(); - - Node admissTimesNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/item[@root='1.2.156.112635.1.2.1.7']/@extension"); - Integer admissTimes = Integer.valueOf(admissTimesNode.getNodeValue()); - - // 检查报告单号标识 - Node reportFlagNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.32']/@extension"); - String reportFlag = reportFlagNode.getNodeValue(); - //电子申请单编号 - Node eafNoNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.24']/@extension"); - String eafNo = eafNoNode.getNodeValue(); - String serialnum = reportFlag + "@" + eafNo; - - Node assortIdNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); - String assortId = assortIdNode.getNodeValue(); - - Node sysFlagNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); - String sysFlag = sysFlagNode.getNodeValue(); - - Node fileTitleNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查报告类型']/observation/code/@displayName"); - String fileTitle = fileTitleNode.getNodeValue(); - - Node downUrlNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告图像']/report/entry[@displayName='检查报告图像URL地址']/observation/value"); - String downUrl = downUrlNode.getTextContent(); - - - ReportDto reportDto = new ReportDto(); - reportDto.setAdmisstimes(admissTimes); - reportDto.setInpatientNo(inpatientNo); - reportDto.setSerialnum(serialnum); - reportDto.setFileTitle(fileTitle); - reportDto.setDownUrl(downUrl); - reportDto.setAssortId(assortId); - reportDto.setSysFlag(sysFlag); - reportDto.setFileSource("1"); - reportDto.setFilestoragetype("1"); - return reportDto; - } - - /** - * 返回检查报告新增成功消息 - * - * @param msgId 消息id - * @param sender 发送路由 - * @param receiver 接收路由 - * @return 新增成功消息响应 - */ - public String insertSuccess(String msgId, String sender, String receiver) { - String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); - return "\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\t\n" + - " \n" + - "\t\t\n" + - "\t\n" + - "\n"; - } - - /** - * 返回检查报告插入失败响应消息 - * - * @param msgId 消息id - * @param sender 发送路由 - * @param receiver 接收路由 - * @return 检查报告新增失败响应消息 - */ - public String insertFailed(String msgId, String sender, String receiver, String failedMessage) { - String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); - return "\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\t\n" + - " \n" + - "\t\t\n" + - "\t\n" + - "\n"; - } - - /** - * 返回检查报告更新成功响应消息 - * - * @param msgId 消息id - * @param sender 发送路由 - * @param receiver 接收路由 - * @return 更新成功响应消息 - */ - public String updateSuccess(String msgId, String sender, String receiver) { - String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); - return "\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\t\n" + - " \n" + - "\t\t\n" + - "\t\n" + - "\n"; - } - - /** - * 检查报告更新失败响应 - * - * @param msgId 消息id - * @param sender 发送路由 - * @param receiver 接收路由 - * @param failedMessage 失败信息 - * @return 更新失败响应信息 - */ - public String updateFailed(String msgId, String sender, String receiver, String failedMessage) { - String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); - return "\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\n" + - "\t\n" + - "\t\t\n" + - "\t\t\t\n" + - "\t\t\n" + - "\t\t\n" + - " \n" + - "\t\t\n" + - "\t\n" + - "\n"; + return null; } +// @Resource(name = "wsReportResultImpl") +// private IWsResult wsResult; +// @Resource(name = "reportConverter") +// private IConverter converter; +// @Resource +// private CollectService collectService; +// @Resource +// private ITaskOriginalMessageService taskOriginalMessageService; +// @Resource +// private ReportService reportService; +// +// @Override +// public String pushSAReport(String message) { +// log.info("收到手麻消息:{}", message); +// ReportDTO reportDTO = new ReportDTO(); +// long id = 0; +// try { +// id = taskOriginalMessageService.insertTaskOriginalMessage(message, CollectTypeEnum.WS_XML_SA_REPORT); +// reportDTO = (ReportDTO) converter.convert(message, FlagEnum.INSERT); +// medicalRecordService.receive(medicalRecord); +// return wsResult.ok(reportDTO.getParams()); +// } catch (Exception e) { +// log.error(e.getMessage(), e); +// taskOriginalMessageService.updateTaskOriginalMessage(id); +// reportDTO.getParams().put("msg", e.getMessage()); +// return wsResult.fail(reportDTO.getParams()); +// } +// +// +// // 待做 +// log.info("收到手麻消息:{}", saReportMessage); +// String msgId = ""; +// try { +// XmlUtil xmlUtil = XmlUtil.of(saReportMessage); +// Node msgNode = xmlUtil.getNode("/Request/Msg/ID"); +// msgId = msgNode.getTextContent(); +// ReportDto reportDto = getReportDtoByJSXML(xmlUtil); +// verifyReportDto(reportDto); +// reportService.report(reportDto); +// return JSXMLResult.success(msgId); +// } catch (BaseException baseException) { +// log.error(baseException.getMessage(), baseException); +// return JSXMLResult.failed(msgId, baseException.getMessage()); +// } catch (Exception ex) { +// log.error(ex.getMessage(), ex); +// return JSXMLResult.failed(msgId, "系统故障!"); +// } +// } +// +// +// /** +// * 嘉时自定义接收接口使用,从xml工具读取返回文件上报需要的数据 +// * +// * @param xmlUtil xml消息工具封装 +// * @return 文件上报数据 +// */ +// public ReportDto getReportDtoByJSXML(XmlUtil xmlUtil) { +// TableJsonRead jsonRead = new TableJsonRead(); +// JSONObject tableTypeJson = jsonRead.Read("data-config", "js-table-type.json", JSONObject.class); +// String jsReportConfigXml = jsonRead.ReadContent("data-config", "js-report-config.xml"); +// XmlUtil configXmlUtil = XmlUtil.of(jsReportConfigXml); +// +// Node inpatientNoXpathNode = configXmlUtil.getNode("/REPORT/INPATIENT_NO"); +// String inpatientNoXpath = inpatientNoXpathNode.getTextContent(); +// Node inpatientNoNode = xmlUtil.getNode(inpatientNoXpath); +// String inpatientNo = inpatientNoNode.getTextContent(); +// +// Node jzhXpathNode = configXmlUtil.getNode("/REPORT/JZH"); +// String jzhXpath = jzhXpathNode.getTextContent(); +// Node jzhNode = xmlUtil.getNode(jzhXpath); +// String jzh = jzhNode.getTextContent(); +// +// Node admissTimesXpathNode = configXmlUtil.getNode("/REPORT/ADMISS_TIMES"); +// String admissTimesXpath = admissTimesXpathNode.getTextContent(); +// Node admissTimesNode = xmlUtil.getNode(admissTimesXpath); +// Integer admissTimes = Integer.valueOf(admissTimesNode.getTextContent()); +// +// Node serialnumXpathNode = configXmlUtil.getNode("/REPORT/SERIALNUM"); +// String serialnumXpath = serialnumXpathNode.getTextContent(); +// Node serialnumNode = xmlUtil.getNode(serialnumXpath); +// String serialnum = serialnumNode.getTextContent(); +// +// Node fileTitleXpathNode = configXmlUtil.getNode("/REPORT/FILE_TITLE"); +// String fileTitleXpath = fileTitleXpathNode.getTextContent(); +// Node fileTitleNode = xmlUtil.getNode(fileTitleXpath); +// String fileTitle = fileTitleNode.getTextContent(); +// +// Node downUrlXpathNode = configXmlUtil.getNode("/REPORT/DOWNURL"); +// String downUrlXpath = downUrlXpathNode.getTextContent(); +// Node downUrlNode = xmlUtil.getNode(downUrlXpath); +// String downUrl = downUrlNode.getTextContent(); +// +// Node tableTypeXpathNode = configXmlUtil.getNode("/REPORT/TABLE_TYPE"); +// String tableTypeXpath = tableTypeXpathNode.getTextContent(); +// Node tableTypeNode = xmlUtil.getNode(tableTypeXpath); +// String tableType = tableTypeNode.getTextContent(); +// +// +// Node assortIdXpathNode = configXmlUtil.getNode("/REPORT/ASSORT_ID"); +// String assortIdXpath = assortIdXpathNode.getTextContent(); +// String assortId; +// if (Func.isBlank(assortIdXpath)) { +// // 如果没有配置 取value 属性,如果value也未配置 取 tableType 对应的json配置,最终方案默认 other 分段 +// Node assortIdValueNode = assortIdXpathNode.getAttributes().getNamedItem("value"); +// if (Func.isEmpty(assortIdValueNode)) { +// assortId = assortIdValueNode.getNodeValue(); +// } else { +// assortId = tableTypeJson.getString(tableType); +// } +// if (Func.isBlank(assortId)) { +// assortId = tableTypeJson.getString("other"); +// } +// } else { +// Node assortIdNode = xmlUtil.getNode(assortIdXpath); +// assortId = assortIdNode.getTextContent(); +// } +// +// Node sysFlagXpathNode = configXmlUtil.getNode("/REPORT/SYSTEM_FLAG"); +// String sysFlagXpath = sysFlagXpathNode.getTextContent(); +// Node sysFlagNode = xmlUtil.getNode(sysFlagXpath); +// String sysFlag = sysFlagNode.getTextContent(); +// +// Node fileSourceXpathNode = configXmlUtil.getNode("/REPORT/FILESOURCE"); +// String fileSourceXpath = fileSourceXpathNode.getTextContent(); +// String fileSource; +// if (Func.isBlank(fileSourceXpath)) { +// Node fileSourceValueNode = fileSourceXpathNode.getAttributes().getNamedItem("value"); +// if (Func.isEmpty(fileSourceValueNode)) { +// fileSource = null; +// } else { +// fileSource = fileSourceValueNode.getNodeValue(); +// } +// +// } else { +// Node fileSourceNode = xmlUtil.getNode(fileSourceXpath); +// fileSource = fileSourceNode.getTextContent(); +// } +// +// +// Node fileStorageTypeXpathNode = configXmlUtil.getNode("/REPORT/FILE_STORAGE_TYPE"); +// String fileStorageTypeXpath = fileStorageTypeXpathNode.getTextContent(); +// String fileStorageType; +// if (Func.isBlank(fileStorageTypeXpath)) { +// Node filestoragetypeValueNode = fileStorageTypeXpathNode.getAttributes().getNamedItem("value"); +// if (Func.isEmpty(filestoragetypeValueNode)) { +// fileStorageType = "1"; +// } else { +// fileStorageType = filestoragetypeValueNode.getNodeValue(); +// } +// +// } else { +// Node filestoragetypeNode = xmlUtil.getNode(fileStorageTypeXpath); +// fileStorageType = filestoragetypeNode.getTextContent(); +// } +// +// ReportDto reportDto = new ReportDto(); +// reportDto.setAdmisstimes(admissTimes); +// reportDto.setInpatientNo(inpatientNo); +// reportDto.setJzh(jzh); +// reportDto.setSerialnum(serialnum); +// reportDto.setFileTitle(fileTitle); +// reportDto.setDownUrl(downUrl); +// reportDto.setAssortId(assortId); +// reportDto.setSysFlag(sysFlag); +// reportDto.setFileSource(fileSource); +// reportDto.setFilestoragetype(fileStorageType); +// return reportDto; +// } +// +// @Override +// public String pushICUReport(String icuReportMessage) { +// log.info("收到重症消息:{}", icuReportMessage); +// String msgId = ""; +// try { +// XmlUtil xmlUtil = XmlUtil.of(icuReportMessage); +// Node msgNode = xmlUtil.getNode("/Request/Msg/ID"); +// msgId = msgNode.getTextContent(); +// ReportDto reportDto = getReportDtoByJSXML(xmlUtil); +// verifyReportDto(reportDto); +// reportService.report(reportDto); +// return JSXMLResult.success(msgId); +// } catch (BaseException baseException) { +// log.error(baseException.getMessage(), baseException); +// return JSXMLResult.failed(msgId, baseException.getMessage()); +// } catch (Exception ex) { +// log.error(ex.getMessage(), ex); +// return JSXMLResult.failed(msgId, "系统故障!"); +// } +// } +// +// @Override +// public String pushAddInspectionReport(String inspectionReportMessage) { +// log.info("收到检查报告新增消息:{}", inspectionReportMessage); +// String msgId = ""; +// String sender = ""; +// String receiver = ""; +// try { +// XmlUtil xmlUtil = XmlUtil.of(inspectionReportMessage); +// msgId = xmlUtil.getNode("/POOR_HIP1008/id/@extension").getNodeValue(); +// sender = xmlUtil.getNode("/POOR_HIP1008/sender/device/id/item/@extension").getNodeValue(); +// receiver = xmlUtil.getNode("/POOR_HIP1008/receiver/device/id/item/@extension").getNodeValue(); +// +// ReportDto reportDto = getReportDtoByInspectionInsert(xmlUtil); +// verifyReportDto(reportDto); +// reportService.report(reportDto); +// return insertSuccess(msgId, sender, receiver); +// } catch (BaseException baseException) { +// log.error(baseException.getMessage(), baseException); +// return insertFailed(msgId, sender, receiver, baseException.getMessage()); +// } catch (Exception ex) { +// log.error(ex.getMessage(), ex); +// return insertFailed(msgId, sender, receiver, "系统错误!"); +// } +// } +// +// +// @Override +// public String pushUpdateInspectionReport(String inspectionReportMessage) { +// log.info("收到检查报告更新消息{}", inspectionReportMessage); +// String msgId = ""; +// String sender = ""; +// String receiver = ""; +// try { +// XmlUtil xmlUtil = XmlUtil.of(inspectionReportMessage); +// msgId = xmlUtil.getNode("/POOR_HIP1009/id/@extension").getNodeValue(); +// sender = xmlUtil.getNode("/POOR_HIP1009/sender/device/id/item/@extension").getNodeValue(); +// receiver = xmlUtil.getNode("/POOR_HIP1009/receiver/device/id/item/@extension").getNodeValue(); +// +// ReportDto reportDto = getReportDtoByInspectionUpdate(xmlUtil); +// verifyReportDto(reportDto); +// reportService.report(reportDto); +// return updateSuccess(msgId, sender, receiver); +// } catch (BaseException baseException) { +// log.error(baseException.getMessage(), baseException); +// return updateFailed(msgId, sender, receiver, baseException.getMessage()); +// } catch (Exception ex) { +// log.error(ex.getMessage(), ex); +// return updateFailed(msgId, sender, receiver, "系统错误"); +// } +// +// } +// +// /** +// * 验证上报文件的信息 +// * +// * @param reportDto 上报文件的信息 +// * @throws BaseException 验证不通过抛出业务异常 +// */ +// private void verifyReportDto(ReportDto reportDto) throws BaseException { +// +// if (Func.isBlank(reportDto.getInpatientNo())) { +// throw new BaseException("住院号不能为空!"); +// } +// +// if (Func.isEmpty(reportDto.getAdmisstimes()) && Func.isBlank(reportDto.getJzh())) { +// throw new BaseException("当住院号与住院次数都为空时,住院流水号/记账号不能为空!"); +// } +// +// if (Func.isBlank(reportDto.getFileTitle())) { +// throw new BaseException("文件名不能为空!"); +// } +// if (Func.isBlank(reportDto.getDownUrl())) { +// throw new BaseException("文件下载路径不能为空!"); +// } +// } +// +// public ReportDto getReportDtoByInspectionInsert(XmlUtil inspectionInsertXmlUtil) { +// +// Node inpatientNoNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.12']/@extension"); +// String inpatientNo = inpatientNoNode.getNodeValue(); +// +// Node admissTimesNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/item[@root='1.2.156.112635.1.2.1.7']/@extension"); +// Integer admissTimes = Integer.valueOf(admissTimesNode.getNodeValue()); +// +// // 检查报告单号标识 +// Node reportFlagNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.32']/@extension"); +// String reportFlag = reportFlagNode.getNodeValue(); +// //电子申请单编号 +// Node eafNoNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.24']/@extension"); +// String eafNo = eafNoNode.getNodeValue(); +// String serialnum = reportFlag + "@" + eafNo; +// +// Node assortIdNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); +// String assortId = assortIdNode.getNodeValue(); +// +// Node sysFlagNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); +// String sysFlag = sysFlagNode.getNodeValue(); +// +// Node fileTitleNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查报告类型']/observation/code/@displayName"); +// String fileTitle = fileTitleNode.getNodeValue(); +// +// Node downUrlNode = inspectionInsertXmlUtil.getNode("/POOR_HIP1008/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告图像']/report/entry[@displayName='检查报告图像URL地址']/observation/value"); +// String downUrl = downUrlNode.getTextContent(); +// +// ReportDto reportDto = new ReportDto(); +// reportDto.setAdmisstimes(admissTimes); +// reportDto.setInpatientNo(inpatientNo); +// reportDto.setSerialnum(serialnum); +// reportDto.setFileTitle(fileTitle); +// reportDto.setDownUrl(downUrl); +// reportDto.setAssortId(assortId); +// reportDto.setSysFlag(sysFlag); +// reportDto.setFileSource("1"); +// reportDto.setFilestoragetype("1"); +// return reportDto; +// } +// +// public ReportDto getReportDtoByInspectionUpdate(XmlUtil inspectionUpdateXmlUtil) { +// Node inpatientNoNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.12']/@extension"); +// String inpatientNo = inpatientNoNode.getNodeValue(); +// +// Node admissTimesNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/item[@root='1.2.156.112635.1.2.1.7']/@extension"); +// Integer admissTimes = Integer.valueOf(admissTimesNode.getNodeValue()); +// +// // 检查报告单号标识 +// Node reportFlagNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.32']/@extension"); +// String reportFlag = reportFlagNode.getNodeValue(); +// //电子申请单编号 +// Node eafNoNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/recordTarget/patientRole/id[@root='2.16.156.10011.1.24']/@extension"); +// String eafNo = eafNoNode.getNodeValue(); +// String serialnum = reportFlag + "@" + eafNo; +// +// Node assortIdNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); +// String assortId = assortIdNode.getNodeValue(); +// +// Node sysFlagNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查类型']/observation/code/@displayName"); +// String sysFlag = sysFlagNode.getNodeValue(); +// +// Node fileTitleNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告']/section/entry[@displayName='检查报告类型']/observation/code/@displayName"); +// String fileTitle = fileTitleNode.getNodeValue(); +// +// Node downUrlNode = inspectionUpdateXmlUtil.getNode("/POOR_HIP1009/controlActProcess/subject/component/structuredBody/component[@displayName='检查报告图像']/report/entry[@displayName='检查报告图像URL地址']/observation/value"); +// String downUrl = downUrlNode.getTextContent(); +// +// +// ReportDto reportDto = new ReportDto(); +// reportDto.setAdmisstimes(admissTimes); +// reportDto.setInpatientNo(inpatientNo); +// reportDto.setSerialnum(serialnum); +// reportDto.setFileTitle(fileTitle); +// reportDto.setDownUrl(downUrl); +// reportDto.setAssortId(assortId); +// reportDto.setSysFlag(sysFlag); +// reportDto.setFileSource("1"); +// reportDto.setFilestoragetype("1"); +// return reportDto; +// } +// +// /** +// * 返回检查报告新增成功消息 +// * +// * @param msgId 消息id +// * @param sender 发送路由 +// * @param receiver 接收路由 +// * @return 新增成功消息响应 +// */ +// public String insertSuccess(String msgId, String sender, String receiver) { +// String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); +// return "\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\t\n" + +// " \n" + +// "\t\t\n" + +// "\t\n" + +// "\n"; +// } +// +// /** +// * 返回检查报告插入失败响应消息 +// * +// * @param msgId 消息id +// * @param sender 发送路由 +// * @param receiver 接收路由 +// * @return 检查报告新增失败响应消息 +// */ +// public String insertFailed(String msgId, String sender, String receiver, String failedMessage) { +// String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); +// return "\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\t\n" + +// " \n" + +// "\t\t\n" + +// "\t\n" + +// "\n"; +// } +// +// /** +// * 返回检查报告更新成功响应消息 +// * +// * @param msgId 消息id +// * @param sender 发送路由 +// * @param receiver 接收路由 +// * @return 更新成功响应消息 +// */ +// public String updateSuccess(String msgId, String sender, String receiver) { +// String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); +// return "\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\t\n" + +// " \n" + +// "\t\t\n" + +// "\t\n" + +// "\n"; +// } +// +// /** +// * 检查报告更新失败响应 +// * +// * @param msgId 消息id +// * @param sender 发送路由 +// * @param receiver 接收路由 +// * @param failedMessage 失败信息 +// * @return 更新失败响应信息 +// */ +// public String updateFailed(String msgId, String sender, String receiver, String failedMessage) { +// String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); +// return "\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\n" + +// "\t\n" + +// "\t\t\n" + +// "\t\t\t\n" + +// "\t\t\n" + +// "\t\t\n" + +// " \n" + +// "\t\t\n" + +// "\t\n" + +// "\n"; +// } } diff --git a/common-collect/src/main/java/com/docus/server/ws/impl/TaskOriginalMessageServiceImpl.java b/common-collect/src/main/java/com/docus/server/ws/impl/TaskOriginalMessageServiceImpl.java index a2a2123..b1daf37 100644 --- a/common-collect/src/main/java/com/docus/server/ws/impl/TaskOriginalMessageServiceImpl.java +++ b/common-collect/src/main/java/com/docus/server/ws/impl/TaskOriginalMessageServiceImpl.java @@ -2,6 +2,7 @@ package com.docus.server.ws.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.docus.core.util.DateUtil; +import com.docus.core.util.Func; import com.docus.server.collect.infrastructure.dao.CollectTypeEnum; import com.docus.server.collect.infrastructure.dao.StateEnum; import com.docus.server.collect.infrastructure.dao.TaskOriginalMessage; @@ -12,11 +13,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Objects; @Service public class TaskOriginalMessageServiceImpl extends ServiceImpl implements ITaskOriginalMessageService { - @Resource private TaskOriginalMessageConverter converter; @@ -25,21 +24,24 @@ public class TaskOriginalMessageServiceImpl extends ServiceImpldynamic-datasource-spring-boot-starter 3.4.0 + + com.docus + starter-log + 1.0-SNAPSHOT + + + io.netty + netty-all + 4.1.87.Final + @@ -213,4 +223,4 @@ - \ No newline at end of file +