segment2.0
beeajax 2 years ago
parent fdec1b9eda
commit 9420b2fc97

@ -1,11 +1,11 @@
package com.docus.server; package com.docus.server;
import com.docus.log.EnableTrackGroup;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.retry.annotation.EnableRetry; import org.springframework.retry.annotation.EnableRetry;
import org.springframework.scheduling.annotation.EnableAsync;
@Slf4j @Slf4j
@ -14,7 +14,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
//@MapperScan("com.docus.server") //@MapperScan("com.docus.server")
@SpringBootApplication(scanBasePackages = {"com.docus"}) @SpringBootApplication(scanBasePackages = {"com.docus"})
@EnableRetry @EnableRetry
@EnableAsync @EnableTrackGroup
public class AppRunBootstrap { public class AppRunBootstrap {
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"); System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");

@ -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<String, Object> params) {
return null;
}
@Override
public String fail(String message) {
return message;
}
@Override
public String ok(String message) {
return message;
}
}

@ -1,17 +1,17 @@
package com.docus.server.collect.basic.http; 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.docus.server.record.pojo.dto.TBasicDTO;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Component;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@Service @Component("httpTBasicCollectorImpl")
public class HttpTBasicCollectServiceImpl implements IHttpTBasicCollectService { public class HttpTBasicCollectorImpl implements IHttpCollector<TBasicDTO> {
@Override @Override
public List<TBasicDTO> getTBasics(Date startDate, Date endDate, long pageNum, long pageSize) { public List<TBasicDTO> get(Date startDate, Date endDate, long pageNum, long pageSize) {
TBasicDTO deptDTO = new TBasicDTO(); TBasicDTO deptDTO = new TBasicDTO();
TBasicDTO deptDTO1 = new TBasicDTO(); TBasicDTO deptDTO1 = new TBasicDTO();

@ -13,19 +13,19 @@ import org.w3c.dom.Node;
public class TBasicConverter implements IConverter<TBasicDTO> { public class TBasicConverter implements IConverter<TBasicDTO> {
@Override @Override
public TBasicDTO convert(String message, FlagEnum flagEnum) { public TBasicDTO convert(String message, String methodName) {
XmlUtil xml = XmlUtil.of(message); XmlUtil xml = XmlUtil.of(message);
//id-消息流水号 //id-消息流水号
String serialId = null; String serialId = null;
Node serialIdNode = FlagEnum.INSERT.equals(flagEnum) ? Node serialIdNode = FlagEnum.INSERT.equals(methodName) ?
xml.getNode("/PRPA_HIP0032/id/@extension") : xml.getNode("/PRPA_HIP0033/id/@extension"); xml.getNode("/PRPA_HIP0032/id/@extension") : xml.getNode("/PRPA_HIP0033/id/@extension");
if (Func.isNotEmpty(serialIdNode)) { if (Func.isNotEmpty(serialIdNode)) {
serialId = serialIdNode.getNodeValue(); serialId = serialIdNode.getNodeValue();
} }
//接受方 //接受方
String receive = null; String receive = null;
Node receiveNode = FlagEnum.INSERT.equals(flagEnum) ? Node receiveNode = FlagEnum.INSERT.equals(methodName) ?
xml.getNode("/PRPA_HIP0032/receiver/device/id/item/@extension") : xml.getNode("/PRPA_HIP0033/receiver/device/id/item/@extension"); xml.getNode("/PRPA_HIP0032/receiver/device/id/item/@extension") : xml.getNode("/PRPA_HIP0033/receiver/device/id/item/@extension");
if (Func.isNotEmpty(receiveNode)) { if (Func.isNotEmpty(receiveNode)) {
receive = receiveNode.getNodeValue(); receive = receiveNode.getNodeValue();
} }
@ -183,9 +183,9 @@ public class TBasicConverter implements IConverter<TBasicDTO> {
dto.setSdryIndex(sdryIndex); dto.setSdryIndex(sdryIndex);
dto.setParams(ParamsUtils.addParam("serialId", dto.getSerialId()) dto.setParams(ParamsUtils.addParam("serialId", dto.getSerialId())
.addParam("receive", dto.getReceive()) .addParam("receive", dto.getReceive())
.addParam("send", dto.getSend()) .addParam("send", dto.getSend())
.param()); .param());
return dto; return dto;
} }
} }

@ -1,17 +1,18 @@
package com.docus.server.collect.dept.http; 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.docus.server.sys.common.pojo.dto.DeptDTO;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Component;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@Service @Component("httpDeptCollectorImpl")
public class HttpDeptCollectServiceImpl implements IHttpDeptCollectService { public class HttpDeptCollectorImpl implements IHttpCollector<DeptDTO> {
@Override @Override
public List<DeptDTO> getDepts(Date startDate, Date endDate, long pageNum, long pageSize) { public List<DeptDTO> get(Date startDate, Date endDate, long pageNum, long pageSize) {
DeptDTO deptDTO = new DeptDTO(); DeptDTO deptDTO = new DeptDTO();
deptDTO.setAuthorId("1"); deptDTO.setAuthorId("1");
deptDTO.setAuthorName("admin"); deptDTO.setAuthorName("admin");

@ -1,7 +1,6 @@
package com.docus.server.collect.dept.ws; package com.docus.server.collect.dept.ws;
import com.docus.core.util.XmlUtil; 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.sys.common.pojo.dto.DeptDTO;
import com.docus.server.tool.ParamsUtils; import com.docus.server.tool.ParamsUtils;
import com.docus.server.ws.convert.IConverter; import com.docus.server.ws.convert.IConverter;
@ -12,7 +11,7 @@ import org.w3c.dom.Node;
public class PowerDeptConverter implements IConverter { public class PowerDeptConverter implements IConverter {
@Override @Override
public DeptDTO convert(String message, FlagEnum flagEnum) { public DeptDTO convert(String message,String methodName) {
//TODO 根据协议进行解析。 //TODO 根据协议进行解析。
XmlUtil xmlParseUtil = XmlUtil.of(message); XmlUtil xmlParseUtil = XmlUtil.of(message);
Node msgIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/id/@extension"); Node msgIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/id/@extension");

@ -119,7 +119,7 @@ public class ParseServiceImpl implements IParseService {
"\t\t\t<id extension=\"" + deptDto.getMessageId() + "\"/>\n" + "\t\t\t<id extension=\"" + deptDto.getMessageId() + "\"/>\n" +
"\t\t</targetMessage>\n" + "\t\t</targetMessage>\n" +
"\t\t<acknowledgementDetail>\n" + "\t\t<acknowledgementDetail>\n" +
"\t\t\t<text value=\"" + deptDto.getErrorMsg() + "\"/>\n" + "\t\t\t<text value=\"" + deptDto.getParams() + "\"/>\n" +
"\t\t</acknowledgementDetail>\n" + "\t\t</acknowledgementDetail>\n" +
"\t</acknowledgement>\n" + "\t</acknowledgement>\n" +
"</RCMR_IN000030UV01>\n"; "</RCMR_IN000030UV01>\n";

@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject;
import com.docus.core.util.Func; import com.docus.core.util.Func;
import com.docus.core.util.XmlUtil; import com.docus.core.util.XmlUtil;
import com.docus.infrastructure.core.exception.BaseException; 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.collect.infrastructure.pojo.dto.ReportDTO;
import com.docus.server.tool.ParamsUtils; import com.docus.server.tool.ParamsUtils;
import com.docus.server.tool.TableJsonRead; import com.docus.server.tool.TableJsonRead;
@ -16,7 +15,7 @@ import org.w3c.dom.Node;
public class ReportConverter implements IConverter<ReportDTO> { public class ReportConverter implements IConverter<ReportDTO> {
@Override @Override
public ReportDTO convert(String message, FlagEnum flagEnum) { public ReportDTO convert(String message, String methodName) {
//TODO 根据协议进行解析。 //TODO 根据协议进行解析。
XmlUtil xmlUtil = XmlUtil.of(message); XmlUtil xmlUtil = XmlUtil.of(message);
Node msgNode = xmlUtil.getNode("/Request/Msg/ID"); Node msgNode = xmlUtil.getNode("/Request/Msg/ID");

@ -15,6 +15,6 @@ public class WsReportResultImpl implements IWsResult {
@Override @Override
public String fail(Map<String, Object> params) { public String fail(Map<String, Object> params) {
return null;
} }
} }

@ -1,17 +1,17 @@
package com.docus.server.collect.user.http; 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.docus.server.sys.common.pojo.dto.UserDTO;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Component;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@Service @Component("httpUserCollectorImpl")
public class HttpUserCollectServiceImpl implements IHttpUserCollectService { public class HttpUserCollectorImpl implements IHttpCollector<UserDTO> {
@Override @Override
public List<UserDTO> getUsers(Date startDate, Date endDate, long pageNum, long pageSize) { public List<UserDTO> get(Date startDate, Date endDate, long pageNum, long pageSize) {
UserDTO deptDTO = new UserDTO(); UserDTO deptDTO = new UserDTO();
deptDTO.setAuthorId("1"); deptDTO.setAuthorId("1");
deptDTO.setAuthorName("admin"); deptDTO.setAuthorName("admin");

@ -1,44 +1,61 @@
package com.docus.server.collect.user.ws; 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.sys.common.pojo.dto.UserDTO;
import com.docus.server.tool.ParamsUtils;
import com.docus.server.ws.convert.IConverter; import com.docus.server.ws.convert.IConverter;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.w3c.dom.Node;
import java.util.UUID;
@Component("powerUserConverter") @Component("powerUserConverter")
public class PowerUserConverter implements IConverter<UserDTO> { public class PowerUserConverter implements IConverter<UserDTO> {
@Override @Override
public UserDTO convert(String message, FlagEnum flagEnum) { public UserDTO convert(String message, String methodName) {
XmlUtil xmlParseUtil = XmlUtil.of(message); // XmlUtil xmlParseUtil = XmlUtil.of(message);
Node msgIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/id/@extension"); // Node msgIdNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/id/@extension");
Node receiverNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/receiver/device/id/item/@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 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 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 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 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 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 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"); // 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 userDTO = new UserDTO();
userDTO.setDeptId(deptCodeNode.getNodeValue()); userDTO.setDeptId("1");
userDTO.setReceiver(receiverNode.getNodeValue()); userDTO.setReceiver("2");
userDTO.setOperateType(operateTypeNode.getNodeValue()); userDTO.setOperateType("3");
userDTO.setUserName(employeeCodeNode.getNodeValue()); userDTO.setUserName("4");
userDTO.setName(employeeNameNode.getNodeValue()); userDTO.setName("5");
userDTO.setPosition(positionNode.getNodeValue()); userDTO.setPosition("6");
userDTO.setAuthorId(authorIdNode.getNodeValue()); userDTO.setAuthorId("7");
userDTO.setMessageId(msgIdNode.getNodeValue()); userDTO.setMessageId(UUID.randomUUID().toString());
userDTO.setAuthorName(authorNameNode.getNodeValue()); userDTO.setAuthorName("9");
userDTO.setRoleId(0L); userDTO.setRoleId(0L);
userDTO.setParams(ParamsUtils.addParam("msg", "操作成功!") // userDTO.setParams(ParamsUtils.addParam("msg", "操作成功!")
.addParam("msgId", userDTO.getMessageId()) // .addParam("msgId", userDTO.getMessageId())
.addParam("receiver", userDTO.getReceiver()) // .addParam("receiver", userDTO.getReceiver())
.param()); // .param());
return userDTO; return userDTO;
} }

@ -16,74 +16,74 @@ public class WsUserResultImpl implements IWsResult {
public String ok(Map<String, Object> params) { public String ok(Map<String, Object> params) {
String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI);
return "<MCCI_IN000002UV01 ITSVersion=\"XML_1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:hl7-org:v3\" xsi:schemaLocation=\"urn:hl7-org:v3\n" + return "<MCCI_IN000002UV01 ITSVersion=\"XML_1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:hl7-org:v3\" xsi:schemaLocation=\"urn:hl7-org:v3\n" +
"file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/MCCI\n" + "file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/MCCI\n" +
"_IN000002UV01.xsd\">\n" + "_IN000002UV01.xsd\">\n" +
"\t<id extension=\"" + IdUtil.standardUUID() + "\"/>\n" + "\t<id extension=\"" + IdUtil.standardUUID() + "\"/>\n" +
"\t<creationTime value=\"" + createTime + "\"/>\n" + "\t<creationTime value=\"" + createTime + "\"/>\n" +
"\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"MCCI_IN000002UV01\"/>\n" + "\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"MCCI_IN000002UV01\"/>\n" +
"\t<processingCode code=\"P\"/>\n" + "\t<processingCode code=\"P\"/>\n" +
"\t<processingModeCode/>\n" + "\t<processingModeCode/>\n" +
"\t<acceptAckCode code=\"AL\"/>\n" + "\t<acceptAckCode code=\"AL\"/>\n" +
"\t<receiver typeCode=\"RCV\">\n" + "\t<receiver typeCode=\"RCV\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" + "\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" + "\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"MDM\"/>\n" + "\t\t\t\t<item extension=\"MDM\"/>\n" +
"\t\t\t</id>\n" + "\t\t\t</id>\n" +
"\t\t</device>\n" + "\t\t</device>\n" +
"\t</receiver>\n" + "\t</receiver>\n" +
"\t<sender typeCode=\"SND\">\n" + "\t<sender typeCode=\"SND\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" + "\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" + "\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"" + params.get("receiver") + "\"/>\n" + "\t\t\t\t<item extension=\"" + params.get("receiver") + "\"/>\n" +
"\t\t\t</id>\n" + "\t\t\t</id>\n" +
"\t\t</device>\n" + "\t\t</device>\n" +
"\t</sender>\n" + "\t</sender>\n" +
"\t<acknowledgement typeCode=\"AA\">\n" + "\t<acknowledgement typeCode=\"AA\">\n" +
"\t\t<targetMessage>\n" + "\t\t<targetMessage>\n" +
"\t\t\t<id extension=\"" + params.get("msgId") + "\"/>\n" + "\t\t\t<id extension=\"" + params.get("messageId") + "\"/>\n" +
"\t\t</targetMessage>\n" + "\t\t</targetMessage>\n" +
"\t\t<acknowledgementDetail>\n" + "\t\t<acknowledgementDetail>\n" +
"\t\t\t<text value=\"" + params.get("msg") + "\"/>\n" + "\t\t\t<text value=\"" + params.get("msg") + "\"/>\n" +
"\t\t</acknowledgementDetail>\n" + "\t\t</acknowledgementDetail>\n" +
"\t</acknowledgement>\n" + "\t</acknowledgement>\n" +
"</MCCI_IN000002UV01>"; "</MCCI_IN000002UV01>";
} }
@Override @Override
public String fail(Map<String, Object> params) { public String fail(Map<String, Object> params) {
String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI);
return "<RCMR_IN000030UV01 ITSVersion=\"XML_1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:hl7-org:v3\" xsi:schemaLocation=\"urn:hl7-org:v3\n" + return "<RCMR_IN000030UV01 ITSVersion=\"XML_1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"urn:hl7-org:v3\" xsi:schemaLocation=\"urn:hl7-org:v3\n" +
"file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/RCMR\n" + "file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/RCMR\n" +
"_IN000030UV01.xsd\">\n" + "_IN000030UV01.xsd\">\n" +
"\n" + "\n" +
"\t<id extension=\"" + IdUtil.standardUUID() + "\"/>\n" + "\t<id extension=\"" + IdUtil.standardUUID() + "\"/>\n" +
"\t<creationTime value=\"" + createTime + "\"/>\n" + "\t<creationTime value=\"" + createTime + "\"/>\n" +
"\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"RCMR_IN000030UV01\"/>\n" + "\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"RCMR_IN000030UV01\"/>\n" +
"\t<processingCode code=\"P\"/>\n" + "\t<processingCode code=\"P\"/>\n" +
"\t<processingModeCode/>\n" + "\t<processingModeCode/>\n" +
"\t<acceptAckCode code=\"AL\"/>\n" + "\t<acceptAckCode code=\"AL\"/>\n" +
"\t<receiver typeCode=\"RCV\">\n" + "\t<receiver typeCode=\"RCV\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" + "\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" + "\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"MDM\"/>\n" + "\t\t\t\t<item extension=\"MDM\"/>\n" +
"\t\t\t</id>\n" + "\t\t\t</id>\n" +
"\t\t</device>\n" + "\t\t</device>\n" +
"\t</receiver>\n" + "\t</receiver>\n" +
"\t<sender typeCode=\"SND\">\n" + "\t<sender typeCode=\"SND\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" + "\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" + "\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"" + params.get("receiver") + "\"/>\n" + "\t\t\t\t<item extension=\"" + params.get("receiver") + "\"/>\n" +
"\t\t\t</id>\n" + "\t\t\t</id>\n" +
"\t\t</device>\n" + "\t\t</device>\n" +
"\t</sender>\n" + "\t</sender>\n" +
"\t<acknowledgement typeCode=\"AE\">\n" + "\t<acknowledgement typeCode=\"AE\">\n" +
"\t\t<targetMessage>\n" + "\t\t<targetMessage>\n" +
"\t\t\t<id extension=\"" + params.get("msgId") + "\"/>\n" + "\t\t\t<id extension=\"" + params.get("messageId") + "\"/>\n" +
"\t\t</targetMessage>\n" + "\t\t</targetMessage>\n" +
"\t\t<acknowledgementDetail>\n" + "\t\t<acknowledgementDetail>\n" +
"\t\t\t<text value=\"" + params.get("msg") + "\"/>\n" + "\t\t\t<text value=\"" + params.get("msg") + "\"/>\n" +
"\t\t</acknowledgementDetail>\n" + "\t\t</acknowledgementDetail>\n" +
"\t</acknowledgement>\n" + "\t</acknowledgement>\n" +
"</RCMR_IN000030UV01>\n"; "</RCMR_IN000030UV01>\n";
} }
} }

@ -12,21 +12,21 @@ spring:
datasource: datasource:
master: 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 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 username: root
password: docus702 password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
his: 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 url: jdbc:log4jdbc:mysql://db.docus.cn:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: docus username: root
password: docus702 password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
redis: redis:
host: redis.docus.cn host: redis.docus.cn
password: JSdocus@702 # password: JSdocus@702
cloud: cloud:
nacos: nacos:
discovery: discovery:
@ -42,7 +42,9 @@ spring:
docus: docus:
dbtype: mysql dbtype: mysql
user:
# 用户默认密码
defpwd: fd29cd53ec12616e5f36b77d4afffbff
mybatis-plus: mybatis-plus:
configuration: configuration:
map-underscore-to-camel-case: true map-underscore-to-camel-case: true
@ -52,14 +54,14 @@ mybatis-plus:
db-config: db-config:
field-strategy: NOT_EMPTY field-strategy: NOT_EMPTY
db-type: MYSQL 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: xxl:
job: job:
accessToken: accessToken:
admin: admin:
addresses: http://job.docus.cn:8180/xxl-job-admin addresses: http://job.docus.cn:8180/xxl-job-admin
executor: executor:
appname: docus-inspection appname: xxl-job-executor-test
address: address:
ip: ip:
port: 17781 port: 17781

@ -4,13 +4,13 @@ import com.docus.server.collect.infrastructure.enums.IIntegerEnum;
public enum CollectTypeEnum implements IIntegerEnum { public enum CollectTypeEnum implements IIntegerEnum {
WS_XML_DEPT(0, "ws同步的科室数据"), WEBSERVICE_XML_DEPT(0, "WEBSERVICE_XML_DEPT"),
WS_XML_USER(1, "ws同步的用户数据"), WEBSERVICE_XML_USER(1, "WEBSERVICE_XML_USER"),
WS_XML_BASIC(2, "ws同步的病患数据"), WEBSERVICE_XML_BASIC(2, "WEBSERVICE_XML_BASIC"),
WS_XML_SA_REPORT(2, "ws同步的手麻报告数据"), WEBSERVICE_XML_REPORT(3, "WEBSERVICE_XML_REPORT"),
WS_XML_ICU_REPORT(2, "ws同步的重症报告数据"), WEBSERVICE_XML_ICU_REPORT(4, "WEBSERVICE_XML_ICU_REPORT"),
WS_XML_INSERT_INSPECTION_REPORT(2, "ws同步的新增检查报告数据"), WEBSERVICE_XML_INSERT_INSPECTION_REPORT(5, "WEBSERVICE_XML_INSERT_INSPECTION_REPORT"),
WS_XML_UPDATE_INSPECTION_REPORT(2, "ws同步的更新检查报告数据"); WEBSERVICE_XML_UPDATE_INSPECTION_REPORT(6, "WEBSERVICE_XML_UPDATE_INSPECTION_REPORT");
private Integer value; private Integer value;
private String display; private String display;

@ -29,7 +29,7 @@ public class TaskOriginalMessage implements Serializable {
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
@TableId(value = "id", type = IdType.ASSIGN_UUID) @TableId(value = "id", type = IdType.ASSIGN_UUID)
private long id; private Long id;
@ApiModelProperty(value = "采集名字") @ApiModelProperty(value = "采集名字")
@TableField("name") @TableField("name")
@ -39,6 +39,10 @@ public class TaskOriginalMessage implements Serializable {
@TableField("collect_type") @TableField("collect_type")
private CollectTypeEnum collectType; private CollectTypeEnum collectType;
@ApiModelProperty(value = "原始报文转对象json")
@TableField("json_str")
private Object jsonStr;
@ApiModelProperty(value = "原始报文") @ApiModelProperty(value = "原始报文")
@TableField("source") @TableField("source")
private String source; private String source;

@ -20,4 +20,13 @@ public interface IIntegerEnum extends IEnum {
} }
throw new IllegalArgumentException("No. enum value 。" + value + "of " + enumType.getCanonicalName()); throw new IllegalArgumentException("No. enum value 。" + value + "of " + enumType.getCanonicalName());
} }
static <T extends IIntegerEnum> T fromDisplay(Class<T> 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());
}
} }

@ -15,14 +15,9 @@ import java.util.List;
public abstract class AbstractTBasicCollectJob { public abstract class AbstractTBasicCollectJob {
@Autowired @Autowired
private final ITBasicService basicService; private ITBasicService basicService;
@Resource @Resource
private final ITaskConfigService taskConfigService; private ITaskConfigService taskConfigService;
protected AbstractTBasicCollectJob(ITBasicService deptService, ITaskConfigService taskConfigService) {
this.basicService = deptService;
this.taskConfigService = taskConfigService;
}
/** /**
* *
@ -67,10 +62,10 @@ public abstract class AbstractTBasicCollectJob {
int pageNum = 1; int pageNum = 1;
for (; true; pageNum++) { for (; true; pageNum++) {
basics = this.getTBasics( basics = this.getTBasics(
periodTime.getPeriodStartDate(), periodTime.getPeriodStartDate(),
periodTime.getPeriodEndDate(), periodTime.getPeriodEndDate(),
pageNum, pageNum,
taskConfig.getPageSize() taskConfig.getPageSize()
); );
if (Func.isEmpty(basics)) { if (Func.isEmpty(basics)) {
break; break;

@ -1,9 +1,7 @@
package com.docus.server.collect.job.basic; package com.docus.server.collect.job.basic;
import com.docus.server.collect.service.IHttpTBasicCollectService; import com.docus.server.collect.service.IHttpCollector;
import com.docus.server.collect.service.ITaskConfigService;
import com.docus.server.record.pojo.dto.TBasicDTO; import com.docus.server.record.pojo.dto.TBasicDTO;
import com.docus.server.record.service.ITBasicService;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -15,13 +13,8 @@ import java.util.List;
@Component @Component
public class TBasicHttpCollectJob extends AbstractTBasicCollectJob { public class TBasicHttpCollectJob extends AbstractTBasicCollectJob {
@Resource @Resource(name = "httpTBasicCollectorImpl")
private final IHttpTBasicCollectService iHttpTBasicCollectService; private IHttpCollector collector;
public TBasicHttpCollectJob(ITBasicService deptService, ITaskConfigService taskConfigService, IHttpTBasicCollectService iHttpTBasicCollectService) {
super(deptService, taskConfigService);
this.iHttpTBasicCollectService = iHttpTBasicCollectService;
}
/** /**
* xxl jobhandler * 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);
} }
} }

@ -1,9 +1,7 @@
package com.docus.server.collect.job.basic; 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.his.service.IHisService;
import com.docus.server.record.pojo.dto.TBasicDTO; import com.docus.server.record.pojo.dto.TBasicDTO;
import com.docus.server.record.service.ITBasicService;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -14,12 +12,7 @@ import java.util.List;
@Component @Component
public class TBasicViewCollectJob extends AbstractTBasicCollectJob { public class TBasicViewCollectJob extends AbstractTBasicCollectJob {
@Resource @Resource
private final IHisService hisService; private IHisService hisService;
protected TBasicViewCollectJob(ITBasicService deptService, ITaskConfigService taskConfigService, IHisService hisService) {
super(deptService, taskConfigService);
this.hisService = hisService;
}
/** /**
* xxl jobhandler * xxl jobhandler

@ -7,22 +7,16 @@ import com.docus.server.sys.common.pojo.dto.DeptDTO;
import com.docus.server.sys.service.IPowerDeptService; import com.docus.server.sys.service.IPowerDeptService;
import com.docus.server.tool.PeriodTime; import com.docus.server.tool.PeriodTime;
import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.context.XxlJobHelper;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
public abstract class AbstractDeptCollectJob { public abstract class AbstractDeptCollectJob {
@Autowired
private final IPowerDeptService deptService;
@Resource @Resource
private final ITaskConfigService taskConfigService; private IPowerDeptService deptService;
@Resource
protected AbstractDeptCollectJob(IPowerDeptService deptService, ITaskConfigService taskConfigService) { private ITaskConfigService taskConfigService;
this.deptService = deptService;
this.taskConfigService = taskConfigService;
}
/** /**
* *
@ -67,10 +61,10 @@ public abstract class AbstractDeptCollectJob {
int pageNum = 1; int pageNum = 1;
for (; true; pageNum++) { for (; true; pageNum++) {
depts = this.getDepts( depts = this.getDepts(
periodTime.getPeriodStartDate(), periodTime.getPeriodStartDate(),
periodTime.getPeriodEndDate(), periodTime.getPeriodEndDate(),
pageNum, pageNum,
taskConfig.getPageSize() taskConfig.getPageSize()
); );
if (Func.isEmpty(depts)) { if (Func.isEmpty(depts)) {
break; break;

@ -1,9 +1,7 @@
package com.docus.server.collect.job.dept; package com.docus.server.collect.job.dept;
import com.docus.server.collect.service.IHttpDeptCollectService; import com.docus.server.collect.service.IHttpCollector;
import com.docus.server.collect.service.ITaskConfigService;
import com.docus.server.sys.common.pojo.dto.DeptDTO; 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 com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -15,13 +13,8 @@ import java.util.List;
@Component @Component
public class DeptHttpCollectJob extends AbstractDeptCollectJob { public class DeptHttpCollectJob extends AbstractDeptCollectJob {
@Resource @Resource(name = "httpDeptCollectorImpl")
private final IHttpDeptCollectService httpDeptCollectService; private IHttpCollector collector;
public DeptHttpCollectJob(IPowerDeptService deptService, ITaskConfigService taskConfigService, IHttpDeptCollectService httpDeptCollectService) {
super(deptService, taskConfigService);
this.httpDeptCollectService = httpDeptCollectService;
}
/** /**
* xxl jobhandler * 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);
} }
} }

@ -1,9 +1,7 @@
package com.docus.server.collect.job.dept; 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.his.service.IHisService;
import com.docus.server.sys.common.pojo.dto.DeptDTO; 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 com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -14,12 +12,7 @@ import java.util.List;
@Component @Component
public class DeptViewCollectJob extends AbstractDeptCollectJob { public class DeptViewCollectJob extends AbstractDeptCollectJob {
@Resource @Resource
private final IHisService hisService; private IHisService hisService;
protected DeptViewCollectJob(IPowerDeptService deptService, ITaskConfigService taskConfigService, IHisService hisService) {
super(deptService, taskConfigService);
this.hisService = hisService;
}
/** /**
* xxl jobhandler * xxl jobhandler

@ -19,11 +19,6 @@ public abstract class AbstractUserCollectJob {
@Resource @Resource
private ITaskConfigService taskConfigService; 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; int pageNum = 1;
for (; true; pageNum++) { for (; true; pageNum++) {
users = this.getUsers( users = this.getUsers(
periodTime.getPeriodStartDate(), periodTime.getPeriodStartDate(),
periodTime.getPeriodEndDate(), periodTime.getPeriodEndDate(),
pageNum, pageNum,
taskConfig.getPageSize() taskConfig.getPageSize()
); );
if (Func.isEmpty(users)) { if (Func.isEmpty(users)) {
break; break;

@ -1,9 +1,7 @@
package com.docus.server.collect.job.user; package com.docus.server.collect.job.user;
import com.docus.server.collect.service.IHttpUserCollectService; import com.docus.server.collect.service.IHttpCollector;
import com.docus.server.collect.service.ITaskConfigService;
import com.docus.server.sys.common.pojo.dto.UserDTO; 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 com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -15,13 +13,8 @@ import java.util.List;
@Component @Component
public class UserHttpCollectJob extends AbstractUserCollectJob { public class UserHttpCollectJob extends AbstractUserCollectJob {
@Resource @Resource(name = "httpUserCollectorImpl")
private final IHttpUserCollectService httpUserCollectService; private IHttpCollector collector;
public UserHttpCollectJob(IPowerUserService userService, ITaskConfigService taskConfigService, IHttpUserCollectService httpDeptCollectService) {
super(userService, taskConfigService);
this.httpUserCollectService = httpDeptCollectService;
}
/** /**
* xxl jobhandler * xxl jobhandler
@ -43,6 +36,6 @@ public class UserHttpCollectJob extends AbstractUserCollectJob {
@Override @Override
public List<UserDTO> getUsers(Date startDate, Date endDate, long pazeNum, long pageSize) { public List<UserDTO> getUsers(Date startDate, Date endDate, long pazeNum, long pageSize) {
//需要根据不同医院去解析不同的内容。使用接口实现的方式。 //需要根据不同医院去解析不同的内容。使用接口实现的方式。
return httpUserCollectService.getUsers(startDate, endDate, pazeNum, pageSize); return collector.get(startDate, endDate, pazeNum, pageSize);
} }
} }

@ -1,9 +1,7 @@
package com.docus.server.collect.job.user; 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.his.service.IHisService;
import com.docus.server.sys.common.pojo.dto.UserDTO; 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 com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -14,17 +12,12 @@ import java.util.List;
@Component @Component
public class UserViewCollectJob extends AbstractUserCollectJob { public class UserViewCollectJob extends AbstractUserCollectJob {
@Resource @Resource
private final IHisService hisService; private IHisService hisService;
protected UserViewCollectJob(IPowerUserService deptService, ITaskConfigService taskConfigService, IHisService hisService) {
super(deptService, taskConfigService);
this.hisService = hisService;
}
/** /**
* xxl jobhandler * xxl jobhandler
*/ */
@XxlJob("startAllDeptViewCollect") @XxlJob("startAllUserViewCollect")
public void startAllDeptViewCollect() { public void startAllDeptViewCollect() {
super.startCollectAll(getJobParam()); super.startCollectAll(getJobParam());
} }
@ -33,7 +26,7 @@ public class UserViewCollectJob extends AbstractUserCollectJob {
/** /**
* xxl jobhandler * xxl jobhandler
*/ */
@XxlJob("startIncDeptViewCollect") @XxlJob("startIncUserViewCollect")
public void startIncDeptViewCollect() { public void startIncDeptViewCollect() {
super.startCollectIncrement(getJobParam()); super.startCollectIncrement(getJobParam());
} }

@ -22,23 +22,22 @@ public class CollectService extends BaseCollectService {
/** /**
* 3 * 3
*/ */
@Async @Async("recordMessage")
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5)) @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5))
public void toInsertOrUpdateDept(DeptDTO deptDTO) { public void toInsertOrUpdateDept(DeptDTO deptDTO) {
//异步写入归档系统,失败自动重试。 //异步写入归档系统,失败自动重试。
if (checkType(deptDTO.getOperateType(), delType)) { if (checkType(deptDTO.getOperateType(), delType)) {
deptService.delDeptByDeptCode(deptDTO.getDeptCode()); deptService.delDeptByDeptCode(deptDTO.getDeptCode());
} else { } else {
deptService.saveOrUpdatePowerDept(deptDTO); deptService.saveOrUpdatePowerDept(deptDTO);
} }
} }
@Async // @Async("recordMessage")
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5)) // @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5))
public void toInsertOrUpdateUser(UserDTO userDTO) { public void toInsertOrUpdateUser(UserDTO userDTO) {
// 判断操作类型 // 判断操作类型
if (checkType(userDTO.getOperateType(), delType)) { if (super.checkType(userDTO.getOperateType(), delType)) {
userService.delUserByUserName(userDTO.getUserName()); userService.delUserByUserName(userDTO.getUserName());
} else { } else {
userService.saveOrUpdatePowerUser(userDTO); userService.saveOrUpdatePowerUser(userDTO);

@ -0,0 +1,11 @@
package com.docus.server.collect.service;
import java.util.Date;
import java.util.List;
public interface IHttpCollector<T> {
/**
*
*/
List<T> get(Date startDate, Date endDate, long pageNum, long pageSize);
}

@ -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<DeptDTO> getDepts(Date startDate, Date endDate, long pageNum, long pageSize);
}

@ -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<TBasicDTO> getTBasics(Date startDate, Date endDate, long pageNum, long pageSize);
}

@ -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<UserDTO> getUsers(Date startDate, Date endDate, long pageNum, long pageSize);
}

@ -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> T getBean(Class<T> requiredType) throws BeansException {
return applicationContext.getBean(requiredType);
}
/**
* bean
*
* @param type
* @return Map<bean, bean>
*/
public static <T> Map<String, T> getBeansOfType(Class<T> type) throws BeansException {
return applicationContext.getBeansOfType(type);
}
public static Object invokeMethod(Class<?> requiredType, String methodName, Object[] params) {
Object service = getBean(requiredType);
Class<? extends Object>[] 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);
}
/**
* beanspring bean
*
* @param serviceName
* @param methodName
* @param params
* @return
*/
public static Object invokeMethod(String serviceName, String methodName, Object[] params) {
Object service = getBean(serviceName);
Class<? extends Object>[] 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);
}
}

@ -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<String, Object> 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);
}
}

@ -1,11 +1,11 @@
package com.docus.server.ws; package com.docus.server.ws;
import com.docus.server.collect.infrastructure.dao.CollectTypeEnum; import com.docus.server.collect.infrastructure.dao.CollectTypeEnum;
import com.docus.server.collect.infrastructure.dao.StateEnum;
public interface ITaskOriginalMessageService { public interface ITaskOriginalMessageService {
long insertTaskOriginalMessage(String xml, CollectTypeEnum collectType); Long insertTaskOriginalMessage(Object json, String xml, CollectTypeEnum collectType);
void updateTaskOriginalMessage(long id);
void updateTaskOriginalMessage(Long id, Object json, StateEnum stateEnum);
} }

@ -1,52 +1,45 @@
package com.docus.server.ws; 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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class WsCollect { public class WsCollect {
@Autowired // @Autowired
private IMedicalRecordService medicalRecordService; // private IMedicalRecordService medicalRecordService;
@Autowired // @Autowired
private IParseService parseService; // private IParseService parseService;
@Autowired // @Autowired
private CollectService collectService; // private CollectService collectService;
@Autowired // @Autowired
private IWsResult wsResult; // private IWsResult wsResult;
@Autowired // @Autowired
private IPowerDeptService powerDeptService; // private IPowerDeptService powerDeptService;
//
//接收xml。并且下载病案。 // //接收xml。并且下载病案。
public String receiveHandNumbness(String handNumbness) { // public String receiveHandNumbness(String handNumbness) {
log.info("收到手麻消息:{}", handNumbness); // log.info("收到手麻消息:{}", handNumbness);
try { // try {
MedicalRecord medicalRecord = parseService.parseHandNumbness(handNumbness); // MedicalRecord medicalRecord = parseService.parseHandNumbness(handNumbness);
medicalRecordService.receive(medicalRecord); // medicalRecordService.receive(medicalRecord);
return wsResult.ok(medicalRecord.getParams()); // return wsResult.ok(medicalRecord.getParams());
} catch (Exception e) { // } catch (Exception e) {
return wsResult.fail(e.getMessage()); // return wsResult.fail(e.getMessage());
} // }
} // }
//
public String receiveDept(String deptXml) { // public String receiveDept(String deptXml) {
log.info("收到科室消息:{}", deptXml); // log.info("收到科室消息:{}", deptXml);
try { // try {
DeptDTO dept = parseService.parseDeptXml(deptXml); // DeptDTO dept = parseService.parseDeptXml(deptXml);
//
//此处需要存储原xml内容。 // //此处需要存储原xml内容。
collectService.receiveDept(dept); // collectService.receiveDept(dept);
return wsResult.ok(dept.getParams()); // return wsResult.ok(dept.getParams());
} catch (Exception e) { // } catch (Exception e) {
return wsResult.fail(e.getMessage(), dept.getParams()); // return wsResult.fail(e.getMessage(), dept.getParams());
} // }
} // }
} }

@ -1,9 +1,7 @@
package com.docus.server.ws.convert; package com.docus.server.ws.convert;
import com.docus.server.collect.infrastructure.dao.FlagEnum;
public interface IConverter<T> { public interface IConverter<T> {
T convert(String message, FlagEnum flagEnum); T convert(String message, String methodName);
} }

@ -14,11 +14,12 @@ public class TaskOriginalMessageConverter {
@Resource @Resource
private IdService idService; private IdService idService;
public TaskOriginalMessage toConvertTaskOriginalMessageDO(String xml, CollectTypeEnum collectType) { public TaskOriginalMessage toConvertTaskOriginalMessageDO(Object json, String xml, CollectTypeEnum collectType) {
TaskOriginalMessage taskOriginalMessage = new TaskOriginalMessage(); TaskOriginalMessage taskOriginalMessage = new TaskOriginalMessage();
taskOriginalMessage.setId(idService.getDateSeq()); taskOriginalMessage.setId(idService.getDateSeq());
taskOriginalMessage.setName(collectType.name()); taskOriginalMessage.setName(collectType.name());
taskOriginalMessage.setCollectType(collectType); taskOriginalMessage.setCollectType(collectType);
taskOriginalMessage.setJsonStr(json);
taskOriginalMessage.setSource(xml); taskOriginalMessage.setSource(xml);
taskOriginalMessage.setState(StateEnum.OK); taskOriginalMessage.setState(StateEnum.OK);
taskOriginalMessage.setCreateTime(DateUtil.now()); taskOriginalMessage.setCreateTime(DateUtil.now());

@ -1,6 +1,7 @@
package com.docus.server.ws.impl; package com.docus.server.ws.impl;
import com.docus.core.util.Func; 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.CollectTypeEnum;
import com.docus.server.collect.infrastructure.dao.FlagEnum; import com.docus.server.collect.infrastructure.dao.FlagEnum;
import com.docus.server.record.pojo.dto.TBasicDTO; import com.docus.server.record.pojo.dto.TBasicDTO;
@ -47,13 +48,13 @@ public class BasicServiceImpl implements IBasicService {
TBasicDTO tBasicDTO = new TBasicDTO(); TBasicDTO tBasicDTO = new TBasicDTO();
long id = 0; long id = 0;
try { try {
id = taskOriginalMessageService.insertTaskOriginalMessage(message, CollectTypeEnum.WS_XML_BASIC); tBasicDTO = (TBasicDTO) converter.convert(message, FlagEnum.INSERT.name());
tBasicDTO = (TBasicDTO) converter.convert(message, FlagEnum.INSERT); id = taskOriginalMessageService.insertTaskOriginalMessage(JSON.toJSON(tBasicDTO), message, CollectTypeEnum.WEBSERVICE_XML_BASIC);
tBasicService.insertTBasic(tBasicDTO); tBasicService.insertTBasic(tBasicDTO);
return wsResult.ok(tBasicDTO.getParams()); return wsResult.ok(tBasicDTO.getParams());
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
taskOriginalMessageService.updateTaskOriginalMessage(id); // taskOriginalMessageService.updateTaskOriginalMessage(id);
tBasicDTO.getParams().put("msg", e.getMessage()); tBasicDTO.getParams().put("msg", e.getMessage());
return wsResult.fail(tBasicDTO.getParams()); return wsResult.fail(tBasicDTO.getParams());
} }
@ -70,13 +71,13 @@ public class BasicServiceImpl implements IBasicService {
TBasicDTO tBasicDTO = new TBasicDTO(); TBasicDTO tBasicDTO = new TBasicDTO();
long id = 0; long id = 0;
try { try {
id = taskOriginalMessageService.insertTaskOriginalMessage(message, CollectTypeEnum.WS_XML_BASIC); tBasicDTO = (TBasicDTO) converter.convert(message, FlagEnum.UPDATE.name());
tBasicDTO = (TBasicDTO) converter.convert(message, FlagEnum.UPDATE); id = taskOriginalMessageService.insertTaskOriginalMessage(JSON.toJSON(tBasicDTO), message, CollectTypeEnum.WEBSERVICE_XML_BASIC);
tBasicService.updateTBasic(tBasicDTO); tBasicService.updateTBasic(tBasicDTO);
return wsResult.ok(tBasicDTO.getParams()); return wsResult.ok(tBasicDTO.getParams());
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
taskOriginalMessageService.updateTaskOriginalMessage(id); // taskOriginalMessageService.updateTaskOriginalMessage(id);
tBasicDTO.getParams().put("msg", e.getMessage()); tBasicDTO.getParams().put("msg", e.getMessage());
return wsResult.fail(tBasicDTO.getParams()); return wsResult.fail(tBasicDTO.getParams());
} }
@ -84,9 +85,9 @@ public class BasicServiceImpl implements IBasicService {
private String toFail() { private String toFail() {
return wsResult.fail(ParamsUtils.addParam("serialId", null) return wsResult.fail(ParamsUtils.addParam("serialId", null)
.addParam("msg", "参数为空") .addParam("msg", "参数为空")
.addParam("receive", null) .addParam("receive", null)
.addParam("send", null).param()); .addParam("send", null).param());
} }
} }

@ -1,5 +1,6 @@
package com.docus.server.ws.impl; 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.CollectTypeEnum;
import com.docus.server.collect.infrastructure.dao.FlagEnum; import com.docus.server.collect.infrastructure.dao.FlagEnum;
import com.docus.server.collect.service.CollectService; import com.docus.server.collect.service.CollectService;
@ -34,17 +35,17 @@ public class DeptServerImpl implements IDeptServer {
log.info("新增/修改科室数据:{}", message); log.info("新增/修改科室数据:{}", message);
DeptDTO deptDTO = new DeptDTO(); DeptDTO deptDTO = new DeptDTO();
long id = 0; Long id = null;
try { try {
//此处需要存储原xml内容。 //此处需要存储原xml内容。
id = taskOriginalMessageService.insertTaskOriginalMessage(message, CollectTypeEnum.WS_XML_DEPT); deptDTO = (DeptDTO) converter.convert(message, FlagEnum.INSERT.name());
deptDTO = (DeptDTO) converter.convert(message, FlagEnum.INSERT); id = taskOriginalMessageService.insertTaskOriginalMessage(JSON.toJSON(deptDTO), message, CollectTypeEnum.WEBSERVICE_XML_DEPT);
collectService.toInsertOrUpdateDept(deptDTO); collectService.toInsertOrUpdateDept(deptDTO);
return wsResult.ok(deptDTO.getParams()); return wsResult.ok(deptDTO.getParams());
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
taskOriginalMessageService.updateTaskOriginalMessage(id); // taskOriginalMessageService.updateTaskOriginalMessage(id);
deptDTO.getParams().put("msg", e.getMessage()); deptDTO.getParams().put("msg", e.getMessage());
return wsResult.fail(deptDTO.getParams()); return wsResult.fail(deptDTO.getParams());
} }

@ -2,6 +2,7 @@ package com.docus.server.ws.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.docus.core.util.DateUtil; 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.CollectTypeEnum;
import com.docus.server.collect.infrastructure.dao.StateEnum; import com.docus.server.collect.infrastructure.dao.StateEnum;
import com.docus.server.collect.infrastructure.dao.TaskOriginalMessage; import com.docus.server.collect.infrastructure.dao.TaskOriginalMessage;
@ -12,11 +13,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Objects;
@Service @Service
public class TaskOriginalMessageServiceImpl extends ServiceImpl<TaskOriginalMessageMapper, TaskOriginalMessage> implements ITaskOriginalMessageService { public class TaskOriginalMessageServiceImpl extends ServiceImpl<TaskOriginalMessageMapper, TaskOriginalMessage> implements ITaskOriginalMessageService {
@Resource @Resource
private TaskOriginalMessageConverter converter; private TaskOriginalMessageConverter converter;
@ -25,21 +24,24 @@ public class TaskOriginalMessageServiceImpl extends ServiceImpl<TaskOriginalMess
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public long insertTaskOriginalMessage(String xml, CollectTypeEnum collectType) { public Long insertTaskOriginalMessage(Object json, String xml, CollectTypeEnum collectType) {
TaskOriginalMessage taskOriginalMessage = converter.toConvertTaskOriginalMessageDO(xml, collectType); TaskOriginalMessage taskOriginalMessage = converter.toConvertTaskOriginalMessageDO(json, xml, collectType);
super.save(taskOriginalMessage); super.save(taskOriginalMessage);
return taskOriginalMessage.getId(); return taskOriginalMessage.getId();
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void updateTaskOriginalMessage(long id) { public void updateTaskOriginalMessage(Long id, Object json, StateEnum stateEnum) {
if (null == id) {
return;
}
TaskOriginalMessage taskOriginalMessage = super.getById(id); TaskOriginalMessage taskOriginalMessage = super.getById(id);
if (Objects.nonNull(taskOriginalMessage)) { if (Func.isNotEmpty(taskOriginalMessage)) {
taskOriginalMessage.setJsonStr(json);
taskOriginalMessage.setUpdateTime(DateUtil.now()); taskOriginalMessage.setUpdateTime(DateUtil.now());
taskOriginalMessage.setState(StateEnum.FAIL); taskOriginalMessage.setState(stateEnum);
super.updateById(taskOriginalMessage); super.updateById(taskOriginalMessage);
} }
} }
} }

@ -1,13 +1,11 @@
package com.docus.server.ws.impl; package com.docus.server.ws.impl;
import com.docus.server.collect.infrastructure.dao.CollectTypeEnum; import com.docus.core.util.json.JSON;
import com.docus.server.collect.infrastructure.dao.FlagEnum; import com.docus.log.annotation.TrackGroup;
import com.docus.server.collect.service.CollectService; import com.docus.server.collect.service.CollectService;
import com.docus.server.sys.common.pojo.dto.UserDTO; import com.docus.server.sys.common.pojo.dto.UserDTO;
import com.docus.server.ws.ITaskOriginalMessageService; import com.docus.server.visitor.VisitorProcessor;
import com.docus.server.ws.IUserServer; import com.docus.server.ws.IUserServer;
import com.docus.server.ws.IWsResult;
import com.docus.server.ws.convert.IConverter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -20,33 +18,43 @@ import javax.annotation.Resource;
@Service @Service
@Slf4j @Slf4j
public class UserServerImpl implements IUserServer { public class UserServerImpl implements IUserServer {
@Resource(name = "wsUserResultImpl") // @Resource(name = "wsUserResultImpl")
private IWsResult wsResult; // private IWsResult wsResult;
@Resource(name = "powerUserConverter") // @Resource(name = "powerUserConverter")
private IConverter converter; // private IConverter converter;
@Resource @Resource
private CollectService collectService; private CollectService collectService;
@Resource private UserDTO userDTO;
private ITaskOriginalMessageService taskOriginalMessageService;
// @Resource
// private ITaskOriginalMessageService taskOriginalMessageService;
@Override @Override
@TrackGroup(group = "WEBSERVICE_XML_USER",
beanNames = {"powerUserConverter", "wsUserResultImpl"}, processor = VisitorProcessor.class)
public String userModify(String message) { public String userModify(String message) {
log.info("新增/修改用户数据:{}", message); log.debug("新增/修改用户数据:{}", message);
// UserDTO userDTO = (UserDTO) converter.convert(message, FlagEnum.INSERT);
collectService.toInsertOrUpdateUser(userDTO);
// return JSON.toJSON(userDTO);
// UserDTO userDTO = new UserDTO();
// long id = 0;
// try {
UserDTO userDTO = new UserDTO(); // UserDTO userDTO = (UserDTO) converter.convert(message, FlagEnum.INSERT);
long id = 0; // id = taskOriginalMessageService.insertTaskOriginalMessage(JSON.toJSON(userDTO), message, CollectTypeEnum.WEBSERVICE_XML_USER);
// collectService.toInsertOrUpdateUser(userDTO);
// return wsResult.ok(userDTO.getParams());
// return JSON.toJSON(userDTO);
// } catch (Exception e) {
// userDTO.getParams().put("msg", e.getMessage());
// taskOriginalMessageService.updateTaskOriginalMessage(id);
// return wsResult.fail(userDTO.getParams());
// }
return null;
}
try { public void setProperty(String json) {
id = taskOriginalMessageService.insertTaskOriginalMessage(message, CollectTypeEnum.WS_XML_USER); this.userDTO = JSON.fromJSON(json, UserDTO.class);
userDTO = (UserDTO) converter.convert(message, FlagEnum.INSERT);
collectService.toInsertOrUpdateUser(userDTO);
return wsResult.ok(userDTO.getParams());
} catch (Exception e) {
log.error(e.getMessage(), e);
taskOriginalMessageService.updateTaskOriginalMessage(id);
userDTO.getParams().put("msg", e.getMessage());
return wsResult.fail(userDTO.getParams());
}
} }
} }

@ -26,15 +26,25 @@ public class WebServiceServer implements IWebServiceServer {
@Resource @Resource
private WsCollect wsCollect; private WsCollect wsCollect;
// @Override
// public String receiveHandNumbness(String handNumbness) {
// return wsCollect.receiveHandNumbness(handNumbness);
// }
//
//
// @Override
// public String receiveDept(String deptXml) {
// return wsCollect.receiveDept(deptXml);
// }
@Override @Override
public String receiveHandNumbness(String handNumbness) { public String receiveHandNumbness(String handNumbness) {
return wsCollect.receiveHandNumbness(handNumbness); return null;
} }
@Override @Override
public String receiveDept(String deptXml) { public String receiveDept(String deptXml) {
return wsCollect.receiveDept(deptXml); return null;
} }
@Override @Override

@ -50,7 +50,6 @@ public class UserDTO {
*/ */
private String authorName; private String authorName;
/** /**
* ID * ID
*/ */

@ -198,6 +198,16 @@
<artifactId>dynamic-datasource-spring-boot-starter</artifactId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.4.0</version> <version>3.4.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.docus</groupId>
<artifactId>starter-log</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.87.Final</version>
</dependency>
</dependencies> </dependencies>
<profiles> <profiles>

Loading…
Cancel
Save