From da9c63579a9b9ee9fd029bab7e368e9fa68d5af6 Mon Sep 17 00:00:00 2001 From: beeajax <1105173470@qq.com> Date: Sun, 4 Jun 2023 00:34:25 +0800 Subject: [PATCH] aop --- .../collect/basic/ws/TBasicConverter.java | 372 ++++++++++-------- .../collect/basic/ws/WsBasicResultImpl.java | 62 +-- .../collect/dept/ws/PowerDeptConverter.java | 58 +-- .../collect/dept/ws/WsDeptResultImpl.java | 2 +- .../collect/service/CollectService.java | 17 +- .../server/visitor/VisitorProcessor.java | 5 +- .../server/ws/impl/BasicServiceImpl.java | 84 ++-- .../docus/server/ws/impl/DeptServerImpl.java | 46 +-- .../docus/server/ws/impl/UserServerImpl.java | 39 +- .../server/record/service/ITBasicService.java | 4 +- .../main/resources/mapper/TBasicMapper.xml | 4 +- 11 files changed, 342 insertions(+), 351 deletions(-) diff --git a/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/TBasicConverter.java b/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/TBasicConverter.java index fb44d8b..5c2ba5a 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/TBasicConverter.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/TBasicConverter.java @@ -1,191 +1,213 @@ package com.docus.server.collect.basic.ws; -import com.docus.core.util.Func; -import com.docus.core.util.XmlUtil; -import com.docus.server.collect.infrastructure.dao.FlagEnum; +import com.docus.core.util.DateUtil; import com.docus.server.record.pojo.dto.TBasicDTO; -import com.docus.server.tool.ParamsUtils; import com.docus.server.ws.convert.IConverter; import org.springframework.stereotype.Component; -import org.w3c.dom.Node; @Component("tBasicConverter") public class TBasicConverter implements IConverter { @Override public TBasicDTO convert(String message, String methodName) { - XmlUtil xml = XmlUtil.of(message); - //id-消息流水号 - String serialId = null; - 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(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(); - } - //发送方 - String send = null; - Node sendNode = xml.getNode("/PRPA_HIP0032/sender/device/id/item/@extension"); - if (Func.isNotEmpty(sendNode)) { - send = sendNode.getNodeValue(); - } - //住院流水号 - String jzh = null; - Node jzhNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/item/@extension"); - if (Func.isNotEmpty(jzhNode)) { - jzh = jzhNode.getNodeValue(); - } - //住院号标识 - String inpatientNo = null; - Node inpatientNoNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/id/item/@extension"); - if (Func.isNotEmpty(inpatientNoNode)) { - inpatientNo = inpatientNoNode.getNodeValue(); - } - //住院次数[] - String admissTimes = null; - Node admissTimesNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/lengthOfStayQuantity[@unit='次']/@value"); - if (Func.isNotEmpty(admissTimesNode)) { - admissTimes = admissTimesNode.getNodeValue(); - } - //姓名 - String name = null; - Node nameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/name/item/part/@value"); - if (Func.isNotEmpty(nameNode)) { - name = nameNode.getNodeValue(); - } - //入院日期时间 - String admissDate = null; - Node admissDateNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/effectiveTime/low/@value"); - if (Func.isNotEmpty(admissDateNode)) { - admissDate = admissDateNode.getNodeValue(); - } - //出院日期时间 - String disDate = null; - Node disDateNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/effectiveTime/high/@value"); - if (Func.isNotEmpty(disDateNode)) { - disDate = disDateNode.getNodeValue(); - } - //入院诊断科室名称[] - String admissDeptName = null; - Node admissDeptNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='入院诊断']/section/entry[@displayName='入院诊断-西医条目']/observation/performer/assignedEntity/representedOrganization/name"); - if (Func.isNotEmpty(admissDeptNameNode)) { - admissDeptNameNode.getTextContent(); - } - //出院诊断科室名称[] - String disDeptName = null; - Node disDeptNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='出院诊断']/section/entry[@displayName='出院诊断-西医条目']/observation/performer/assignedEntity/representedOrganization/name"); - if (Func.isNotEmpty(disDeptNameNode)) { - disDeptName = disDeptNameNode.getTextContent(); - } - //主治医师[] - String attendingName = null; - Node attendingNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/authenticator[@displayName='主治医师']/assignedEntity/assignedPerson/name"); - if (Func.isNotEmpty(attendingNameNode)) { - attendingName = attendingNameNode.getTextContent(); - } - //年龄 - String age = null; - Node ageNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/age[@unit='岁']/@value"); - if (Func.isNotEmpty(ageNode)) { - age = ageNode.getNodeValue(); - } - //性别 - String sex = null; - Node sexNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/administrativeGenderCode/@code"); - if (Func.isNotEmpty(sexNode)) { - sex = sexNode.getNodeValue(); - } - //身份证号 - String idCard = null; - Node idCardNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/id/item/@extension"); - if (Func.isNotEmpty(idCardNode)) { - idCard = idCardNode.getNodeValue(); - } - //出院科室 - String disDept = null; - Node disDeptCardNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/id/@extension"); - if (Func.isNotEmpty(disDeptCardNode)) { - disDept = disDeptCardNode.getNodeValue(); - } - //性别名称 - String sexName = null; - Node sexNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/administrativeGenderCode/@displayName"); - if (Func.isNotEmpty(sexNameNode)) { - sexName = sexNameNode.getNodeValue(); - } - //床位号 - String bedNum = null; - Node bedNumNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/id/@extension"); - if (Func.isNotEmpty(bedNumNode)) { - bedNum = bedNumNode.getNodeValue(); - } - //住院天数数[] - String admissDays = null; - Node admissDaysNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/lengthOfStayQuantity[@unit='天']/@value"); - if (Func.isNotEmpty(admissDaysNode)) { - admissDays = admissDaysNode.getNodeValue(); - } - //是否死亡[] - String isDead = null; - Node isDeadNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='出院诊断']/section/entry[@displayName='出院情况']/observation/value"); - if (Func.isNotEmpty(isDeadNode)) { - isDead = isDeadNode.getTextContent(); - } - //病区编号 - String wardCode = null; - Node wardCodeNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/id/@extension"); - if (Func.isNotEmpty(wardCodeNode)) { - wardCode = wardCodeNode.getNodeValue(); - } - //病区名称 - String wardName = null; - Node wardNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/name"); - if (Func.isNotEmpty(wardNameNode)) { - wardName = wardNameNode.getTextContent(); - } - //顺德人医第三方索引 - String sdryIndex = null; - Node sdryIndexNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/id/item/@extension"); - if (Func.isNotEmpty(sdryIndexNode)) { - sdryIndex = sdryIndexNode.getNodeValue(); - } +// XmlUtil xml = XmlUtil.of(message); +// //id-消息流水号 +// String serialId = null; +// 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(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(); +// } +// //发送方 +// String send = null; +// Node sendNode = xml.getNode("/PRPA_HIP0032/sender/device/id/item/@extension"); +// if (Func.isNotEmpty(sendNode)) { +// send = sendNode.getNodeValue(); +// } +// //住院流水号 +// String jzh = null; +// Node jzhNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/item/@extension"); +// if (Func.isNotEmpty(jzhNode)) { +// jzh = jzhNode.getNodeValue(); +// } +// //住院号标识 +// String inpatientNo = null; +// Node inpatientNoNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/id/item/@extension"); +// if (Func.isNotEmpty(inpatientNoNode)) { +// inpatientNo = inpatientNoNode.getNodeValue(); +// } +// //住院次数[] +// String admissTimes = null; +// Node admissTimesNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/lengthOfStayQuantity[@unit='次']/@value"); +// if (Func.isNotEmpty(admissTimesNode)) { +// admissTimes = admissTimesNode.getNodeValue(); +// } +// //姓名 +// String name = null; +// Node nameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/name/item/part/@value"); +// if (Func.isNotEmpty(nameNode)) { +// name = nameNode.getNodeValue(); +// } +// //入院日期时间 +// String admissDate = null; +// Node admissDateNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/effectiveTime/low/@value"); +// if (Func.isNotEmpty(admissDateNode)) { +// admissDate = admissDateNode.getNodeValue(); +// } +// //出院日期时间 +// String disDate = null; +// Node disDateNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/effectiveTime/high/@value"); +// if (Func.isNotEmpty(disDateNode)) { +// disDate = disDateNode.getNodeValue(); +// } +// //入院诊断科室名称[] +// String admissDeptName = null; +// Node admissDeptNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='入院诊断']/section/entry[@displayName='入院诊断-西医条目']/observation/performer/assignedEntity/representedOrganization/name"); +// if (Func.isNotEmpty(admissDeptNameNode)) { +// admissDeptNameNode.getTextContent(); +// } +// //出院诊断科室名称[] +// String disDeptName = null; +// Node disDeptNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='出院诊断']/section/entry[@displayName='出院诊断-西医条目']/observation/performer/assignedEntity/representedOrganization/name"); +// if (Func.isNotEmpty(disDeptNameNode)) { +// disDeptName = disDeptNameNode.getTextContent(); +// } +// //主治医师[] +// String attendingName = null; +// Node attendingNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/authenticator[@displayName='主治医师']/assignedEntity/assignedPerson/name"); +// if (Func.isNotEmpty(attendingNameNode)) { +// attendingName = attendingNameNode.getTextContent(); +// } +// //年龄 +// String age = null; +// Node ageNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/age[@unit='岁']/@value"); +// if (Func.isNotEmpty(ageNode)) { +// age = ageNode.getNodeValue(); +// } +// //性别 +// String sex = null; +// Node sexNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/administrativeGenderCode/@code"); +// if (Func.isNotEmpty(sexNode)) { +// sex = sexNode.getNodeValue(); +// } +// //身份证号 +// String idCard = null; +// Node idCardNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/id/item/@extension"); +// if (Func.isNotEmpty(idCardNode)) { +// idCard = idCardNode.getNodeValue(); +// } +// //出院科室 +// String disDept = null; +// Node disDeptCardNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/id/@extension"); +// if (Func.isNotEmpty(disDeptCardNode)) { +// disDept = disDeptCardNode.getNodeValue(); +// } +// //性别名称 +// String sexName = null; +// Node sexNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/patientPerson/administrativeGenderCode/@displayName"); +// if (Func.isNotEmpty(sexNameNode)) { +// sexName = sexNameNode.getNodeValue(); +// } +// //床位号 +// String bedNum = null; +// Node bedNumNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/id/@extension"); +// if (Func.isNotEmpty(bedNumNode)) { +// bedNum = bedNumNode.getNodeValue(); +// } +// //住院天数数[] +// String admissDays = null; +// Node admissDaysNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/lengthOfStayQuantity[@unit='天']/@value"); +// if (Func.isNotEmpty(admissDaysNode)) { +// admissDays = admissDaysNode.getNodeValue(); +// } +// //是否死亡[] +// String isDead = null; +// Node isDeadNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/component[@displayName='出院诊断']/section/entry[@displayName='出院情况']/observation/value"); +// if (Func.isNotEmpty(isDeadNode)) { +// isDead = isDeadNode.getTextContent(); +// } +// //病区编号 +// String wardCode = null; +// Node wardCodeNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/id/@extension"); +// if (Func.isNotEmpty(wardCodeNode)) { +// wardCode = wardCodeNode.getNodeValue(); +// } +// //病区名称 +// String wardName = null; +// Node wardNameNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/componentOf/encompassingEncounter/location/healthCareFacility/serviceProviderOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/asOrganizationPartOf/wholeOrganization/name"); +// if (Func.isNotEmpty(wardNameNode)) { +// wardName = wardNameNode.getTextContent(); +// } +// //顺德人医第三方索引 +// String sdryIndex = null; +// Node sdryIndexNode = xml.getNode("/PRPA_HIP0032/controlActProcess/subject/encounterEvent/subject/patient/id/item/@extension"); +// if (Func.isNotEmpty(sdryIndexNode)) { +// sdryIndex = sdryIndexNode.getNodeValue(); +// } +// +// //设置dto +// TBasicDTO dto = new TBasicDTO(); +// dto.setSerialId(serialId); +// dto.setSend(send); +// dto.setReceive(receive); +// dto.setInpatientNo(inpatientNo); +// dto.setName(name); +// dto.setJzh(jzh); +// dto.setAdmissDeptName(admissDeptName); +// dto.setDisDeptName(disDeptName); +// dto.setAdmissDate(admissDate); +// dto.setDisDate(disDate); +// dto.setAdmissTimes(admissTimes); +// dto.setAttendingName(attendingName); +// dto.setAge(age); +// dto.setSex(sex); +// dto.setIdCard(idCard); +// dto.setDisDept(disDept); +// dto.setSexName(sexName); +// dto.setBedNum(bedNum); +// dto.setIsDead(isDead); +// dto.setAdmissDays(admissDays); +// dto.setWardCode(wardCode); +// dto.setWardName(wardName); +// dto.setSdryIndex(sdryIndex); +// +// dto.setParams(ParamsUtils.addParam("serialId", dto.getSerialId()) +// .addParam("receive", dto.getReceive()) +// .addParam("send", dto.getSend()) +// .param()); - //设置dto - TBasicDTO dto = new TBasicDTO(); - dto.setSerialId(serialId); - dto.setSend(send); - dto.setReceive(receive); - dto.setInpatientNo(inpatientNo); - dto.setName(name); - dto.setJzh(jzh); - dto.setAdmissDeptName(admissDeptName); - dto.setDisDeptName(disDeptName); - dto.setAdmissDate(admissDate); - dto.setDisDate(disDate); - dto.setAdmissTimes(admissTimes); - dto.setAttendingName(attendingName); - dto.setAge(age); - dto.setSex(sex); - dto.setIdCard(idCard); - dto.setDisDept(disDept); - dto.setSexName(sexName); - dto.setBedNum(bedNum); - dto.setIsDead(isDead); - dto.setAdmissDays(admissDays); - dto.setWardCode(wardCode); - dto.setWardName(wardName); - dto.setSdryIndex(sdryIndex); - dto.setParams(ParamsUtils.addParam("serialId", dto.getSerialId()) - .addParam("receive", dto.getReceive()) - .addParam("send", dto.getSend()) - .param()); + TBasicDTO dto = new TBasicDTO(); + dto.setSerialId("1212"); + dto.setSend("1"); + dto.setReceive("1"); + dto.setInpatientNo("334"); + dto.setName("1"); + dto.setJzh("565"); + dto.setAdmissDeptName("1"); + dto.setDisDeptName("1"); + dto.setAdmissDate(DateUtil.formatDateTime(DateUtil.now())); + dto.setDisDate(DateUtil.formatDateTime(DateUtil.now())); + dto.setAdmissTimes("3"); + dto.setAttendingName("1"); + dto.setAge("1"); + dto.setSex("1"); + dto.setIdCard("1"); + dto.setDisDept("1"); + dto.setSexName("1"); + dto.setBedNum("1"); + dto.setIsDead("1"); + dto.setAdmissDays("1"); + dto.setWardCode("1"); + dto.setWardName("1"); + dto.setSdryIndex("1"); return dto; } } diff --git a/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/WsBasicResultImpl.java b/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/WsBasicResultImpl.java index 854ff0d..e8ac195 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/WsBasicResultImpl.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/basic/ws/WsBasicResultImpl.java @@ -14,42 +14,42 @@ public class WsBasicResultImpl implements IWsResult { @Override public String ok(Map params) { - return null; + return "hello"; } @Override public String fail(Map params) { String createTime = Func.format(new Date(), DateUtil.PATTERN_DATETIME_MINI); return " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - " \n" + - "\n"; + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "\n"; } } diff --git a/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/PowerDeptConverter.java b/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/PowerDeptConverter.java index a40a2fc..329d767 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/PowerDeptConverter.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/PowerDeptConverter.java @@ -1,42 +1,52 @@ package com.docus.server.collect.dept.ws; -import com.docus.core.util.XmlUtil; import com.docus.server.sys.common.pojo.dto.DeptDTO; -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("powerDeptConverter") public class PowerDeptConverter implements IConverter { @Override - public DeptDTO convert(String message,String methodName) { + public DeptDTO convert(String message, String methodName) { //TODO: 根据协议进行解析。 - 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 deptCodeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/DEPT_CODE/@value"); - Node deptNameNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/DEPT_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"); +// 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 deptCodeNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/DEPT_CODE/@value"); +// Node deptNameNode = xmlParseUtil.getNode("/PRVS_IN000002UV01/controlActProcess/subject/registrationRequest/subject1/valueSet/valueSetItems/DEPT_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"); +// +// DeptDTO deptDto = new DeptDTO(); +// deptDto.setMessageId(msgIdNode.getNodeValue()); +// deptDto.setReceiver(receiverNode.getNodeValue()); +// deptDto.setOperateType(operateTypeNode.getNodeValue()); +// deptDto.setDeptCode(deptCodeNode.getNodeValue()); +// deptDto.setDeptName(deptNameNode.getNodeValue()); +// deptDto.setAuthorId(authorIdNode.getNodeValue()); +// deptDto.setAuthorName(authorNameNode.getNodeValue()); +// deptDto.setSource(message);//原始xml报文 +// +// deptDto.setParams(ParamsUtils.addParam("msg", "操作成功!") +// .addParam("msgId", deptDto.getMessageId()) +// .addParam("receiver", deptDto.getReceiver()) +// .param()); + DeptDTO deptDto = new DeptDTO(); - deptDto.setMessageId(msgIdNode.getNodeValue()); - deptDto.setReceiver(receiverNode.getNodeValue()); - deptDto.setOperateType(operateTypeNode.getNodeValue()); - deptDto.setDeptCode(deptCodeNode.getNodeValue()); - deptDto.setDeptName(deptNameNode.getNodeValue()); - deptDto.setAuthorId(authorIdNode.getNodeValue()); - deptDto.setAuthorName(authorNameNode.getNodeValue()); + deptDto.setMessageId(UUID.randomUUID().toString()); + deptDto.setReceiver("1"); + deptDto.setOperateType("2"); + deptDto.setDeptCode("3"); + deptDto.setDeptName("4"); + deptDto.setAuthorId("5"); + deptDto.setAuthorName("6"); deptDto.setSource(message);//原始xml报文 - deptDto.setParams(ParamsUtils.addParam("msg", "操作成功!") - .addParam("msgId", deptDto.getMessageId()) - .addParam("receiver", deptDto.getReceiver()) - .param()); - return deptDto; } } diff --git a/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/WsDeptResultImpl.java b/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/WsDeptResultImpl.java index 825791e..fdac60c 100644 --- a/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/WsDeptResultImpl.java +++ b/collect-sdry/src/main/java/com/docus/server/collect/dept/ws/WsDeptResultImpl.java @@ -40,7 +40,7 @@ public class WsDeptResultImpl implements IWsResult { "\t\n" + "\t\n" + "\t\t\n" + - "\t\t\t\n" + + "\t\t\t\n" + "\t\t\n" + "\t\t\n" + "\t\t\t\n" + diff --git a/common-collect/src/main/java/com/docus/server/collect/service/CollectService.java b/common-collect/src/main/java/com/docus/server/collect/service/CollectService.java index 9fc2aee..571f43f 100644 --- a/common-collect/src/main/java/com/docus/server/collect/service/CollectService.java +++ b/common-collect/src/main/java/com/docus/server/collect/service/CollectService.java @@ -5,10 +5,8 @@ import com.docus.server.sys.common.pojo.dto.UserDTO; import com.docus.server.sys.service.IPowerDeptService; import com.docus.server.sys.service.IPowerUserService; import com.docus.server.ws.impl.BaseCollectService; -import org.springframework.retry.annotation.Backoff; -import org.springframework.retry.annotation.Retryable; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -22,9 +20,10 @@ public class CollectService extends BaseCollectService { /** * 默认3次重试 */ - @Async("recordMessage") - @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5)) - public void toInsertOrUpdateDept(DeptDTO deptDTO) { + /*@Async("recordMessage") + @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5))*/ + @Transactional + public void insertOrUpdateDept(DeptDTO deptDTO) { //异步写入归档系统,失败自动重试。 if (checkType(deptDTO.getOperateType(), delType)) { deptService.delDeptByDeptCode(deptDTO.getDeptCode()); @@ -33,15 +32,13 @@ public class CollectService extends BaseCollectService { } } - // @Async("recordMessage") -// @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5)) - public void toInsertOrUpdateUser(UserDTO userDTO) { + @Transactional + public void insertOrUpdateUser(UserDTO userDTO) { // 判断操作类型 if (super.checkType(userDTO.getOperateType(), delType)) { userService.delUserByUserName(userDTO.getUserName()); } else { userService.saveOrUpdatePowerUser(userDTO); } - } } diff --git a/common-collect/src/main/java/com/docus/server/visitor/VisitorProcessor.java b/common-collect/src/main/java/com/docus/server/visitor/VisitorProcessor.java index e0cb599..56ce9da 100644 --- a/common-collect/src/main/java/com/docus/server/visitor/VisitorProcessor.java +++ b/common-collect/src/main/java/com/docus/server/visitor/VisitorProcessor.java @@ -40,8 +40,11 @@ public class VisitorProcessor extends AbstractProcessor { @Override public Object beforeProcess(TrackContext context) { log.debug("=== AOP 前置通知 ==="); - String message = (String) context.getArgs()[0]; initBeans(context.getBeanNames()); + String message = (String) context.getArgs()[0]; + if (Func.isEmpty(message)) { + throw new RuntimeException("参数为空"); + } Object dto = converter.convert(message, context.getMethodName()); String jsonStr = JSON.toJSON(dto); SpringUtils.invokeMethod(context.getClassType(), "setProperty", new Object[]{jsonStr}); diff --git a/common-collect/src/main/java/com/docus/server/ws/impl/BasicServiceImpl.java b/common-collect/src/main/java/com/docus/server/ws/impl/BasicServiceImpl.java index 246052c..c01e0a0 100644 --- a/common-collect/src/main/java/com/docus/server/ws/impl/BasicServiceImpl.java +++ b/common-collect/src/main/java/com/docus/server/ws/impl/BasicServiceImpl.java @@ -1,20 +1,16 @@ 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.log.annotation.TrackGroup; import com.docus.server.record.pojo.dto.TBasicDTO; import com.docus.server.record.service.ITBasicService; -import com.docus.server.tool.ParamsUtils; +import com.docus.server.visitor.VisitorProcessor; import com.docus.server.ws.IBasicService; -import com.docus.server.ws.ITaskOriginalMessageService; -import com.docus.server.ws.IWsResult; -import com.docus.server.ws.convert.IConverter; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.concurrent.atomic.AtomicReference; /** * @BelongsProject: docus-webservice-sdry @@ -27,67 +23,45 @@ import javax.annotation.Resource; @Service @Slf4j public class BasicServiceImpl implements IBasicService { - @Resource(name = "wsDeptResultImpl") - private IWsResult wsResult; - @Resource(name = "tBasicConverter") - private IConverter converter; @Resource private ITBasicService tBasicService; - @Resource - private ITaskOriginalMessageService taskOriginalMessageService; + private AtomicReference atomicReference = new AtomicReference<>(); + /** + * @param message 原始报文 + * @see com.docus.server.ws.convert.IConverter 通用转化器 + * @see com.docus.server.ws.IWsResult 通用返回结果 + * @see VisitorProcessor 通用处理器,aop环绕统一处理 + */ @Override + @TrackGroup(group = "WEBSERVICE_XML_BASIC", + beanNames = {"tBasicConverter", "wsBasicResultImpl"}, processor = VisitorProcessor.class) public String setTBasic(String message) { log.info("新增基础数据:{}", message); - - if (Func.isEmpty(message)) { - return toFail(); - } - - //此处需要存储原xml内容。 - TBasicDTO tBasicDTO = new TBasicDTO(); - long id = 0; - try { - 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); - tBasicDTO.getParams().put("msg", e.getMessage()); - return wsResult.fail(tBasicDTO.getParams()); - } + tBasicService.insertTBasic(getTBasicDTO()); + return null; } + /** + * @param message 原始报文 + * @see com.docus.server.ws.convert.IConverter 通用转化器 + * @see com.docus.server.ws.IWsResult 通用返回结果 + * @see VisitorProcessor 通用处理器,aop环绕统一处理 + */ @Override + @TrackGroup(group = "WEBSERVICE_XML_BASIC", + beanNames = {"tBasicConverter", "wsBasicResultImpl"}, processor = VisitorProcessor.class) public String updateTBasic(String message) { - log.info("修改基础数据:{}", message); - - if (Func.isEmpty(message)) { - return toFail(); - } + tBasicService.updateTBasic(getTBasicDTO()); + return null; + } - TBasicDTO tBasicDTO = new TBasicDTO(); - long id = 0; - try { - 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); - tBasicDTO.getParams().put("msg", e.getMessage()); - return wsResult.fail(tBasicDTO.getParams()); - } + public void setProperty(String json) { + this.atomicReference.set(JSON.fromJSON(json, TBasicDTO.class)); } - private String toFail() { - return wsResult.fail(ParamsUtils.addParam("serialId", null) - .addParam("msg", "参数为空") - .addParam("receive", null) - .addParam("send", null).param()); + public TBasicDTO getTBasicDTO() { + return atomicReference.get(); } } diff --git a/common-collect/src/main/java/com/docus/server/ws/impl/DeptServerImpl.java b/common-collect/src/main/java/com/docus/server/ws/impl/DeptServerImpl.java index d27a858..e39851c 100644 --- a/common-collect/src/main/java/com/docus/server/ws/impl/DeptServerImpl.java +++ b/common-collect/src/main/java/com/docus/server/ws/impl/DeptServerImpl.java @@ -1,18 +1,16 @@ 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.log.annotation.TrackGroup; import com.docus.server.collect.service.CollectService; import com.docus.server.sys.common.pojo.dto.DeptDTO; +import com.docus.server.visitor.VisitorProcessor; import com.docus.server.ws.IDeptServer; -import com.docus.server.ws.ITaskOriginalMessageService; -import com.docus.server.ws.IWsResult; -import com.docus.server.ws.convert.IConverter; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.concurrent.atomic.AtomicReference; /** * @author wen yongbin @@ -21,34 +19,32 @@ import javax.annotation.Resource; @Service @Slf4j public class DeptServerImpl implements IDeptServer { - @Resource(name = "wsBasicResultImpl") - private IWsResult wsResult; - @Resource(name = "powerDeptConverter") - private IConverter converter; @Resource private CollectService collectService; - @Resource - private ITaskOriginalMessageService taskOriginalMessageService; + private AtomicReference atomicReference = new AtomicReference<>(); + /** + * @param message 原始报文 + * @see com.docus.server.ws.convert.IConverter 通用转化器 + * @see com.docus.server.ws.IWsResult 通用返回结果 + * @see VisitorProcessor 通用处理器,aop环绕统一处理 + */ @Override + @TrackGroup(group = "WEBSERVICE_XML_DEPT", + beanNames = {"powerDeptConverter", "wsDeptResultImpl"}, processor = VisitorProcessor.class) public String deptModify(String message) { log.info("新增/修改科室数据:{}", message); + collectService.insertOrUpdateDept(getDeptDTO()); + return null; + } - DeptDTO deptDTO = new DeptDTO(); - Long id = null; + public void setProperty(String json) { + DeptDTO deptDTO = JSON.fromJSON(json, DeptDTO.class); + this.atomicReference.set(deptDTO); + } - try { - //此处需要存储原xml内容。 - 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); - deptDTO.getParams().put("msg", e.getMessage()); - return wsResult.fail(deptDTO.getParams()); - } + public DeptDTO getDeptDTO() { + return this.atomicReference.get(); } } diff --git a/common-collect/src/main/java/com/docus/server/ws/impl/UserServerImpl.java b/common-collect/src/main/java/com/docus/server/ws/impl/UserServerImpl.java index 5857f22..ef233af 100644 --- a/common-collect/src/main/java/com/docus/server/ws/impl/UserServerImpl.java +++ b/common-collect/src/main/java/com/docus/server/ws/impl/UserServerImpl.java @@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.concurrent.atomic.AtomicReference; /** * @author wen yongbin @@ -18,43 +19,31 @@ import javax.annotation.Resource; @Service @Slf4j public class UserServerImpl implements IUserServer { - // @Resource(name = "wsUserResultImpl") -// private IWsResult wsResult; -// @Resource(name = "powerUserConverter") -// private IConverter converter; @Resource private CollectService collectService; - private UserDTO userDTO; + private AtomicReference atomicReference = new AtomicReference<>(); - // @Resource -// private ITaskOriginalMessageService taskOriginalMessageService; + /** + * @param message 原始报文 + * @see com.docus.server.ws.convert.IConverter 通用转化器 + * @see com.docus.server.ws.IWsResult 通用返回结果 + * @see VisitorProcessor 通用处理器,aop环绕统一处理 + */ @Override @TrackGroup(group = "WEBSERVICE_XML_USER", beanNames = {"powerUserConverter", "wsUserResultImpl"}, processor = VisitorProcessor.class) public String userModify(String 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 = (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()); -// } + collectService.insertOrUpdateUser(getUserDTO()); return null; } public void setProperty(String json) { - this.userDTO = JSON.fromJSON(json, UserDTO.class); + this.atomicReference.set(JSON.fromJSON(json, UserDTO.class)); + } + + public UserDTO getUserDTO() { + return atomicReference.get(); } } diff --git a/docus-medical-record/src/main/java/com/docus/server/record/service/ITBasicService.java b/docus-medical-record/src/main/java/com/docus/server/record/service/ITBasicService.java index 222d734..7a0d84e 100644 --- a/docus-medical-record/src/main/java/com/docus/server/record/service/ITBasicService.java +++ b/docus-medical-record/src/main/java/com/docus/server/record/service/ITBasicService.java @@ -12,7 +12,7 @@ public interface ITBasicService { * @param dto * @throws Exception */ - void insertTBasic(TBasicDTO dto) throws Exception; + void insertTBasic(TBasicDTO dto); /** * 更新 @@ -20,7 +20,7 @@ public interface ITBasicService { * @param dto * @throws Exception */ - void updateTBasic(TBasicDTO dto) throws Exception; + void updateTBasic(TBasicDTO dto); /** * 批量新增 diff --git a/docus-medical-record/src/main/resources/mapper/TBasicMapper.xml b/docus-medical-record/src/main/resources/mapper/TBasicMapper.xml index 2855787..b9379d0 100644 --- a/docus-medical-record/src/main/resources/mapper/TBasicMapper.xml +++ b/docus-medical-record/src/main/resources/mapper/TBasicMapper.xml @@ -96,11 +96,11 @@