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

@ -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");

@ -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;
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<TBasicDTO> {
@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 deptDTO1 = new TBasicDTO();

@ -13,19 +13,19 @@ import org.w3c.dom.Node;
public class TBasicConverter implements IConverter<TBasicDTO> {
@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<TBasicDTO> {
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;
}
}

@ -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<DeptDTO> {
@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.setAuthorId("1");
deptDTO.setAuthorName("admin");

@ -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");

@ -119,7 +119,7 @@ public class ParseServiceImpl implements IParseService {
"\t\t\t<id extension=\"" + deptDto.getMessageId() + "\"/>\n" +
"\t\t</targetMessage>\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</acknowledgement>\n" +
"</RCMR_IN000030UV01>\n";

@ -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<ReportDTO> {
@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");

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

@ -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<UserDTO> {
@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();
deptDTO.setAuthorId("1");
deptDTO.setAuthorName("admin");

@ -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<UserDTO> {
@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;
}

@ -16,74 +16,74 @@ public class WsUserResultImpl implements IWsResult {
public String ok(Map<String, Object> params) {
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" +
"file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/MCCI\n" +
"_IN000002UV01.xsd\">\n" +
"\t<id extension=\"" + IdUtil.standardUUID() + "\"/>\n" +
"\t<creationTime value=\"" + createTime + "\"/>\n" +
"\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"MCCI_IN000002UV01\"/>\n" +
"\t<processingCode code=\"P\"/>\n" +
"\t<processingModeCode/>\n" +
"\t<acceptAckCode code=\"AL\"/>\n" +
"\t<receiver typeCode=\"RCV\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"MDM\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</receiver>\n" +
"\t<sender typeCode=\"SND\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"" + params.get("receiver") + "\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</sender>\n" +
"\t<acknowledgement typeCode=\"AA\">\n" +
"\t\t<targetMessage>\n" +
"\t\t\t<id extension=\"" + params.get("msgId") + "\"/>\n" +
"\t\t</targetMessage>\n" +
"\t\t<acknowledgementDetail>\n" +
"\t\t\t<text value=\"" + params.get("msg") + "\"/>\n" +
"\t\t</acknowledgementDetail>\n" +
"\t</acknowledgement>\n" +
"</MCCI_IN000002UV01>";
"file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/MCCI\n" +
"_IN000002UV01.xsd\">\n" +
"\t<id extension=\"" + IdUtil.standardUUID() + "\"/>\n" +
"\t<creationTime value=\"" + createTime + "\"/>\n" +
"\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"MCCI_IN000002UV01\"/>\n" +
"\t<processingCode code=\"P\"/>\n" +
"\t<processingModeCode/>\n" +
"\t<acceptAckCode code=\"AL\"/>\n" +
"\t<receiver typeCode=\"RCV\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"MDM\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</receiver>\n" +
"\t<sender typeCode=\"SND\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"" + params.get("receiver") + "\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</sender>\n" +
"\t<acknowledgement typeCode=\"AA\">\n" +
"\t\t<targetMessage>\n" +
"\t\t\t<id extension=\"" + params.get("messageId") + "\"/>\n" +
"\t\t</targetMessage>\n" +
"\t\t<acknowledgementDetail>\n" +
"\t\t\t<text value=\"" + params.get("msg") + "\"/>\n" +
"\t\t</acknowledgementDetail>\n" +
"\t</acknowledgement>\n" +
"</MCCI_IN000002UV01>";
}
@Override
public String fail(Map<String, Object> params) {
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" +
"file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/RCMR\n" +
"_IN000030UV01.xsd\">\n" +
"\n" +
"\t<id extension=\"" + IdUtil.standardUUID() + "\"/>\n" +
"\t<creationTime value=\"" + createTime + "\"/>\n" +
"\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"RCMR_IN000030UV01\"/>\n" +
"\t<processingCode code=\"P\"/>\n" +
"\t<processingModeCode/>\n" +
"\t<acceptAckCode code=\"AL\"/>\n" +
"\t<receiver typeCode=\"RCV\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"MDM\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</receiver>\n" +
"\t<sender typeCode=\"SND\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"" + params.get("receiver") + "\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</sender>\n" +
"\t<acknowledgement typeCode=\"AE\">\n" +
"\t\t<targetMessage>\n" +
"\t\t\t<id extension=\"" + params.get("msgId") + "\"/>\n" +
"\t\t</targetMessage>\n" +
"\t\t<acknowledgementDetail>\n" +
"\t\t\t<text value=\"" + params.get("msg") + "\"/>\n" +
"\t\t</acknowledgementDetail>\n" +
"\t</acknowledgement>\n" +
"</RCMR_IN000030UV01>\n";
"file:///E:/hl7/HL7/v3ballot_fullsite_2011MAY/v3ballot/html/processable/multicacheschemas/RCMR\n" +
"_IN000030UV01.xsd\">\n" +
"\n" +
"\t<id extension=\"" + IdUtil.standardUUID() + "\"/>\n" +
"\t<creationTime value=\"" + createTime + "\"/>\n" +
"\t<interactionId root=\"2.16.840.1.113883.1.6\" extension=\"RCMR_IN000030UV01\"/>\n" +
"\t<processingCode code=\"P\"/>\n" +
"\t<processingModeCode/>\n" +
"\t<acceptAckCode code=\"AL\"/>\n" +
"\t<receiver typeCode=\"RCV\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"MDM\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</receiver>\n" +
"\t<sender typeCode=\"SND\">\n" +
"\t\t<device classCode=\"DEV\" determinerCode=\"INSTANCE\">\n" +
"\t\t\t<id>\n" +
"\t\t\t\t<item extension=\"" + params.get("receiver") + "\"/>\n" +
"\t\t\t</id>\n" +
"\t\t</device>\n" +
"\t</sender>\n" +
"\t<acknowledgement typeCode=\"AE\">\n" +
"\t\t<targetMessage>\n" +
"\t\t\t<id extension=\"" + params.get("messageId") + "\"/>\n" +
"\t\t</targetMessage>\n" +
"\t\t<acknowledgementDetail>\n" +
"\t\t\t<text value=\"" + params.get("msg") + "\"/>\n" +
"\t\t</acknowledgementDetail>\n" +
"\t</acknowledgement>\n" +
"</RCMR_IN000030UV01>\n";
}
}

@ -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)
# connName: 10.222.23.131(1414)

@ -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;

@ -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;

@ -20,4 +20,13 @@ public interface IIntegerEnum extends IEnum {
}
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 {
@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;

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

@ -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

@ -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;

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

@ -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

@ -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;

@ -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<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;
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());
}

@ -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);

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

@ -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());
// }
// }
}

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

@ -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());

@ -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());
}
}

@ -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());
}

@ -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<TaskOriginalMessageMapper, TaskOriginalMessage> implements ITaskOriginalMessageService {
@Resource
private TaskOriginalMessageConverter converter;
@ -25,21 +24,24 @@ public class TaskOriginalMessageServiceImpl extends ServiceImpl<TaskOriginalMess
*/
@Transactional(rollbackFor = Exception.class)
@Override
public long insertTaskOriginalMessage(String xml, CollectTypeEnum collectType) {
TaskOriginalMessage taskOriginalMessage = converter.toConvertTaskOriginalMessageDO(xml, collectType);
public Long insertTaskOriginalMessage(Object json, String xml, CollectTypeEnum collectType) {
TaskOriginalMessage taskOriginalMessage = converter.toConvertTaskOriginalMessageDO(json, xml, collectType);
super.save(taskOriginalMessage);
return taskOriginalMessage.getId();
}
@Transactional(rollbackFor = Exception.class)
@Override
public void updateTaskOriginalMessage(long id) {
public void updateTaskOriginalMessage(Long id, Object json, StateEnum stateEnum) {
if (null == id) {
return;
}
TaskOriginalMessage taskOriginalMessage = super.getById(id);
if (Objects.nonNull(taskOriginalMessage)) {
if (Func.isNotEmpty(taskOriginalMessage)) {
taskOriginalMessage.setJsonStr(json);
taskOriginalMessage.setUpdateTime(DateUtil.now());
taskOriginalMessage.setState(StateEnum.FAIL);
taskOriginalMessage.setState(stateEnum);
super.updateById(taskOriginalMessage);
}
}
}

@ -1,13 +1,11 @@
package com.docus.server.ws.impl;
import com.docus.server.collect.infrastructure.dao.CollectTypeEnum;
import com.docus.server.collect.infrastructure.dao.FlagEnum;
import com.docus.core.util.json.JSON;
import com.docus.log.annotation.TrackGroup;
import com.docus.server.collect.service.CollectService;
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.IWsResult;
import com.docus.server.ws.convert.IConverter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -20,33 +18,43 @@ import javax.annotation.Resource;
@Service
@Slf4j
public class UserServerImpl implements IUserServer {
@Resource(name = "wsUserResultImpl")
private IWsResult wsResult;
@Resource(name = "powerUserConverter")
private IConverter converter;
// @Resource(name = "wsUserResultImpl")
// private IWsResult wsResult;
// @Resource(name = "powerUserConverter")
// private IConverter converter;
@Resource
private CollectService collectService;
@Resource
private ITaskOriginalMessageService taskOriginalMessageService;
private UserDTO userDTO;
// @Resource
// private ITaskOriginalMessageService taskOriginalMessageService;
@Override
@TrackGroup(group = "WEBSERVICE_XML_USER",
beanNames = {"powerUserConverter", "wsUserResultImpl"}, processor = VisitorProcessor.class)
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();
long id = 0;
// UserDTO userDTO = (UserDTO) converter.convert(message, FlagEnum.INSERT);
// 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 {
id = taskOriginalMessageService.insertTaskOriginalMessage(message, CollectTypeEnum.WS_XML_USER);
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());
}
public void setProperty(String json) {
this.userDTO = JSON.fromJSON(json, UserDTO.class);
}
}

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

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

@ -198,6 +198,16 @@
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.4.0</version>
</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>
<profiles>
@ -213,4 +223,4 @@
</profiles>
</project>
</project>

Loading…
Cancel
Save