diff --git a/data-config/collect-task-config.json b/data-config/collect-task-config.json index fc722f4..4ea4c6a 100644 --- a/data-config/collect-task-config.json +++ b/data-config/collect-task-config.json @@ -1,10 +1,9 @@ [{ "method": "WS_RECORD_SUBMIT", "collectorIds": ["2", "3", "4", "5", "6", "8"] - }, { "method": "WS_NURS_SUBMIT", "collectorIds": ["1"] } -] \ No newline at end of file +] diff --git a/data-config/message-forward-config.json b/data-config/message-forward-config.json index fff8adb..4ea0e48 100644 --- a/data-config/message-forward-config.json +++ b/data-config/message-forward-config.json @@ -1,13 +1,8 @@ [ { "method": "WS_RECORD_SUBMIT", - "urls": ["http://127.0.0.1:9314/hospital/zqFirstRy/wsRecordSubmit/do"], + "urls": ["http://127.0.0.1:9314/hospital/gznk/wsRecordSubmit/do"], "errorResult": "0成功", "messageDataType": 1 - } , { - "method": "WS_NURS_SUBMIT", - "urls": ["http://127.0.0.1:9314/hospital/zqFirstRy/wsNurseSubmit/do"], - "errorResult": "1系统内部错误!", - "messageDataType": 1 } -] \ No newline at end of file +] diff --git a/src/main/java/com/docus/server/message/busservice/NkBusinessService.java b/src/main/java/com/docus/server/message/busservice/NkBusinessService.java new file mode 100644 index 0000000..b3eebc4 --- /dev/null +++ b/src/main/java/com/docus/server/message/busservice/NkBusinessService.java @@ -0,0 +1,17 @@ +package com.docus.server.message.busservice; + +import com.docus.server.message.dto.Message; +import com.docus.server.message.dto.MessageResponse; + + +public interface NkBusinessService { + /** + * 广州脑科电子病历提交信息 + * + * @param message 信息 + * @return 消息处理结果 + */ + MessageResponse recordSubmitHandle(Message message); + + +} diff --git a/src/main/java/com/docus/server/message/busservice/impl/NkBusinessServiceImpl.java b/src/main/java/com/docus/server/message/busservice/impl/NkBusinessServiceImpl.java new file mode 100644 index 0000000..9ed867e --- /dev/null +++ b/src/main/java/com/docus/server/message/busservice/impl/NkBusinessServiceImpl.java @@ -0,0 +1,208 @@ +package com.docus.server.message.busservice.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import com.docus.core.util.DateUtil; +import com.docus.core.util.Func; +import com.docus.infrastructure.core.exception.BaseException; +import com.docus.infrastructure.web.api.CommonResult; +import com.docus.infrastructure.web.api.ResultCode; +import com.docus.server.message.busservice.NkBusinessService; +import com.docus.server.message.config.CollectTaskConfig; +import com.docus.server.message.converters.NkWsRecordSubmitMessageConvert; +import com.docus.server.message.converters.ZqWsRecordSubmitMessageConvert; +import com.docus.server.message.dto.*; +import com.docus.server.message.entity.CqcPushConfig; +import com.docus.server.message.entity.TBasic; +import com.docus.server.message.feign.dto.CompensateTasRequest; +import com.docus.server.message.feign.service.CollectTaskService; +import com.docus.server.message.feign.vo.ArchiveAndRecallPushVo; +import com.docus.server.message.mapper.CqcPushConfigMapper; +import com.docus.server.message.mapper.TBasicMapper; +import com.docus.server.message.validate.NkRecordSubmitValidate; +import lombok.extern.slf4j.Slf4j; +import org.apache.cxf.endpoint.Client; +import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; +import org.apache.ibatis.mapping.ParameterMode; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.xml.namespace.QName; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @BelongsProject: docus-unified-message + * @BelongsPackage: com.docus.server.message.busservice.impl + * @Author: chierhao + * @CreateTime: 2024-03-20 08:57 + * @Description: TODO + * @Version: 1.0 + */ +@Slf4j +@Service +public class NkBusinessServiceImpl implements NkBusinessService { + + @Resource + private TBasicMapper tBasicMapper; + + @Autowired + private CqcPushConfigMapper cqcPushConfigMapper; + + @Resource + private CollectTaskService collectTaskService; + @Override + public MessageResponse recordSubmitHandle(Message message) { + try { + CollectTaskConfig.TaskConfig taskConfig = CollectTaskConfig.getTaskConfig("WS_RECORD_SUBMIT"); + if (taskConfig == null || Func.isEmpty(taskConfig.getCollectorIds())) { + throw new RuntimeException("任务配置未配置采集器id,WS_RECORD_SUBMIT"); + } + NkRecordSubmitDTO dto = NkWsRecordSubmitMessageConvert.convert(message.getMessage()); + NkRecordSubmitValidate.verifyRecordSubmitDTO(dto); + TbasicQrPreciseCondition condition = NkWsRecordSubmitMessageConvert.convert(dto); + List patientIds = tBasicMapper.getGznkPatientIdByPreciseConditions(condition); + verifyPatientIds(patientIds); + + String submitDate = dto.getSubmitDate(); + tBasicMapper.insertOrUpdateDoctorSubmitTime(patientIds.get(0), Func.parseDate(submitDate, DateUtil.PATTERN_DATETIME)); + + compensateTask("电子病历提交",patientIds, taskConfig.getCollectorIds()); + tBasicMapper.updateEmrSubmitState(patientIds.get(0), 1); + + //归档推送 + pushWebService(patientIds.get(0),dto); + return new MessageResponse(ResultCode.SUCCESS.getCode(), success()); + } catch (BaseException baseException) { + log.error(baseException.getMessage(), baseException); + // 业务异常,不希望重试,直接消息返回错误 + MessageResponse response = new MessageResponse(ResultCode.FAILED.getCode(), fail(baseException.getMessage())); + response.setRetry(0); + return response; + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + // 不可知的错误,希望重试 + MessageResponse response = new MessageResponse(ResultCode.FAILED.getCode(), fail("系统错误")); + response.setRetry(1); + return response; + } + } + private void verifyPatientIds(List patientIds) { + if (Func.isEmpty(patientIds)) { + throw new BaseException("系统无此患者!"); + } + if (patientIds.size() > 1) { + throw new BaseException("系统中患者有多个,无法确认!"); + } + } + + private void compensateTask(String source,List patientIds, List collectorIds) { + log.info("{},补偿任务 patientIds:{} collectId:{}",source, patientIds, collectorIds); + CompensateTasRequest dto = new CompensateTasRequest(); + dto.setPatientIds(patientIds); + dto.setCollectorIds(collectorIds); + dto.setPriority(3); + CommonResult result = collectTaskService.compensateTask(dto); + log.info("{},补偿任务结果:{}", source,Func.toJson(result)); + } + + @Async + public void pushWebService(String patientId,NkRecordSubmitDTO dto){ + CqcPushConfig config = cqcPushConfigMapper.getCqcPushConfigByBusinessType("14"); + if(Func.isEmpty(config)){ + return; + } + + TBasic tBasicInfo = tBasicMapper.getTBasicInfo(patientId); + ArchiveAndRecallPushVo vo=new ArchiveAndRecallPushVo(); + vo.setInpatientNo(tBasicInfo.getInpatientNo()); + vo.setAdmissTimes(tBasicInfo.getAdmissTimes()); + vo.setName(tBasicInfo.getName()); + vo.setExternalId(tBasicInfo.getExternalId()); + vo.setAdmissDate(tBasicInfo.getAdmissDate()); + vo.setDisDate(tBasicInfo.getDisDate()); + vo.setDisDept(tBasicInfo.getDisDept()); + vo.setDisDeptName(tBasicInfo.getDisDeptName()); + vo.setArchiveTime(dto.getSubmitDate()); + vo.setControlUserName(dto.getSubmitNo()); + vo.setControlName(dto.getSubmitName()); + vo.setIsArchive(1); + + String wsParam = NkWsRecordSubmitMessageConvert.getPushXml(vo); + //请求地址 + String wsUrl = config.getUrl(); + //命名空间 + String namespance = config.getNamespace(); + // 推送方法名 + String wsMethod = config.getMethod(); + //参数 + String parameterListStr = config.getParameterList(); + parameterListStr=String.format(parameterListStr,JSON.toJSONString(wsParam)); + + List> parameterList=new ArrayList<>(); + + parameterList=JSON.parseObject(parameterListStr,new TypeReference>>() {}); + + List parameters = parameterList.stream().map(e -> e.get("parameter")).collect(Collectors.toList()); + log.info("推送入参: parameterList:{}",JSON.toJSONString(parameterList)); + + + //回调值 + String result = ""; + for(int i=0;i<3;i++){ + try { + Thread.sleep(i*5*100); + } catch (InterruptedException e) { + log.error(e.getMessage(),e); + } + result = requestFunctionWebServiceCXF(wsUrl, namespance, wsMethod, parameters); + + log.info("得到的结果:" + result); + if (result.contains("成功") || result.contains("success")) { + break; + } + } + log.info("召回归档推送 vo:"+ JSON.toJSONString(vo)+" result: "+result); + } + + public String requestFunctionWebServiceCXF(String url, String namespace, String method, List params) { + String result; + try { + //创建动态客户端工厂 创建客户端 + JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); + Client client = dcf.createClient(url); + //命名空间和方法 + QName name = new QName(namespace, method); + Object[] opAddEntryArgs; + opAddEntryArgs = params.toArray(); + Object[] objects = client.invoke(name, opAddEntryArgs); + result = objects[0].toString(); + } catch (Exception e) { + log.error(e.getMessage(),e); + result = e.getMessage(); + } + return result; + } + + private String success() { + return "" + + "" + + "0" + + "成功" + + "" + + ""; + } + + private String fail(String message) { + return "" + + "" + + "1" + + "" + message + "" + + "" + + ""; + } +} diff --git a/src/main/java/com/docus/server/message/controller/GznkHospitalController.java b/src/main/java/com/docus/server/message/controller/GznkHospitalController.java new file mode 100644 index 0000000..b87ab39 --- /dev/null +++ b/src/main/java/com/docus/server/message/controller/GznkHospitalController.java @@ -0,0 +1,35 @@ +package com.docus.server.message.controller; + +import com.docus.server.message.busservice.NkBusinessService; +import com.docus.server.message.busservice.SdBusinessService; +import com.docus.server.message.dto.Message; +import com.docus.server.message.dto.MessageResponse; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author WYBDEV + */ +@Api("广州脑科医院") +@RestController +@Slf4j +@RequestMapping("/hospital/gznk") +public class GznkHospitalController { + + @Autowired + private NkBusinessService nkBusinessService; + + @PostMapping("/wsRecordSubmit/do") + @ApiOperation("广州脑科电子病例提交消息接收") + public MessageResponse wsRecordSubmit(@RequestBody Message message) { + log.info("广州脑科电子病例提交消息接收:{}", message); + return nkBusinessService.recordSubmitHandle(message); + } + + +} diff --git a/src/main/java/com/docus/server/message/converters/NkWsRecordSubmitMessageConvert.java b/src/main/java/com/docus/server/message/converters/NkWsRecordSubmitMessageConvert.java new file mode 100644 index 0000000..81517aa --- /dev/null +++ b/src/main/java/com/docus/server/message/converters/NkWsRecordSubmitMessageConvert.java @@ -0,0 +1,138 @@ +package com.docus.server.message.converters; + +import com.docus.core.util.DateUtil; +import com.docus.core.util.Func; +import com.docus.infrastructure.core.exception.BaseException; +import com.docus.server.message.dto.NkRecordSubmitDTO; +import com.docus.server.message.dto.TbasicQrPreciseCondition; +import com.docus.server.message.feign.vo.ArchiveAndRecallPushVo; +import com.docus.server.message.util.XmlUtil; +import org.w3c.dom.Node; + +import java.util.Date; +import java.util.UUID; + +public class NkWsRecordSubmitMessageConvert { + public static NkRecordSubmitDTO convert(String str) { + String jzh = null; + String inpatientNo = null; + String name = null; + Integer admissTimes = null; + String submitNo=null; + String submitName=null; + String submitDate = null; + + XmlUtil xmlUtil = XmlUtil.of(str); + try { + // 住院流水号 + Node inHospNoNode = xmlUtil.getNode("/Request/Msg/INHOSP_NO"); + jzh = inHospNoNode.getTextContent(); + } catch (Exception ex) { + throw new BaseException("解析 住院流水号 出错!"); + } + + try { + // 住院号 + Node inHospIndexNoNode = xmlUtil.getNode("/Request/Msg/INHOSP_INDEX_NO"); + inpatientNo = inHospIndexNoNode.getTextContent(); + } catch (Exception ex) { + throw new BaseException("解析 住院号 出错!"); + } + try { + // 住院次数 + Node visitNoNode = xmlUtil.getNode("/Request/Msg/VISIT_NO"); + String admissTimesStr = visitNoNode.getTextContent(); + if (Func.isNotBlank(admissTimesStr)) { + admissTimes = Integer.parseInt(admissTimesStr.trim()); + } + } catch (Exception ex) { + throw new BaseException("解析 住院次数 出错!"); + } + try { + // 患者姓名 + Node nameNode = xmlUtil.getNode("/Request/Msg/NAME"); + name = nameNode.getTextContent(); + } catch (Exception ex) { + throw new BaseException("解析 姓名 出错!"); + } + try { + // 提交人工号 + Node submitNoNode = xmlUtil.getNode("/Request/Msg/SUBMIT_NO"); + submitNo = submitNoNode.getTextContent(); + } catch (Exception ex) { + throw new BaseException("解析 提交人工号 出错!"); + } + try { + // 提交人姓名 + Node submitNameNode = xmlUtil.getNode("/Request/Msg/SUBMIT_NAME"); + submitName = submitNameNode.getTextContent(); + } catch (Exception ex) { + throw new BaseException("解析 提交人姓名 出错!"); + } + + try { + // 提交时间 + Node submitTimeNode = xmlUtil.getNode("/Request/Msg/SUBMIT_TIME"); + String submitTime = submitTimeNode.getTextContent(); + Date submitDateTime = Func.parseDate(submitTime.trim(), DateUtil.PATTERN_DATETIME); + submitDate = Func.formatDateTime(submitDateTime); + } catch (Exception ex) { + throw new BaseException("解析 提交时间 出错!"); + } + + NkRecordSubmitDTO recordSubmitDTO = new NkRecordSubmitDTO(); + recordSubmitDTO.setJzh(jzh); + recordSubmitDTO.setInpatientNo(inpatientNo); + recordSubmitDTO.setAdmissTimes(admissTimes); + recordSubmitDTO.setName(name); + recordSubmitDTO.setSubmitNo(submitNo); + recordSubmitDTO.setSubmitName(submitName); + recordSubmitDTO.setSubmitDate(submitDate); + return recordSubmitDTO; + } + + public static TbasicQrPreciseCondition convert(NkRecordSubmitDTO dto) { + if (dto == null) { + return null; + } + TbasicQrPreciseCondition condition = new TbasicQrPreciseCondition(); + + condition.setInpatientNo(dto.getInpatientNo()); + condition.setAdmissTimes(dto.getAdmissTimes()); + condition.setName(dto.getName()); + return condition; + } + public static String getPushXml(ArchiveAndRecallPushVo vo) { + String result = "\n" + + "\t\n" + + "\t"+ UUID.randomUUID()+"\n" + + "\t\n" + + "\t"+vo.getInpatientNo()+"\n" + + "\t\n" + + "\t"+vo.getAdmissTimes()+"\n" + + "\t\n" + + "\t"+vo.getName()+"\n" + + "\t\n" + + "\t"+vo.getExternalId()+"\n" + + "\t\n" + + "\t"+ DateUtil.format(vo.getAdmissDate(),DateUtil.PATTERN_DATETIME)+"\n" + + "\t\n" + + "\t"+DateUtil.format(vo.getDisDate(),DateUtil.PATTERN_DATETIME)+"\n" + + "\t\n" + + "\t"+vo.getArchiveTime()+"\n" + + "\t\n" + + "\t\n" + + "\t\n" + + "\t"+vo.getDisDept()+"\n" + + "\t\n" + + "\t"+vo.getDisDeptName()+"\n" + + "\t\n" + + "\t"+vo.getControlUserName()+"\n" + + "\t\n" + + "\t"+vo.getControlName()+"\n" + + "\t\n" + + "\t"+vo.getIsArchive()+"\n" + + ""; + return result; + } +} diff --git a/src/main/java/com/docus/server/message/dto/NkRecordSubmitDTO.java b/src/main/java/com/docus/server/message/dto/NkRecordSubmitDTO.java new file mode 100644 index 0000000..31e85aa --- /dev/null +++ b/src/main/java/com/docus/server/message/dto/NkRecordSubmitDTO.java @@ -0,0 +1,44 @@ +package com.docus.server.message.dto; + +import lombok.Data; + +import java.util.Date; + +/** + * 广州脑科电子病历提交信息 + * + * @author ceh + */ +@Data +public class NkRecordSubmitDTO { + /** + * 住院流水号/记账号 + */ + private String jzh; + /** + * 住院号 + */ + private String inpatientNo; + /** + * 住院次数 + */ + private Integer admissTimes; + /** + * 患者姓名 + */ + private String name; + /** + * 提交人工号 + */ + private String submitNo; + /** + * 提交人姓名 + */ + private String submitName; + /** + * 提交时间 yyyy-MM-dd HH:mm:ss + */ + private String submitDate; + + +} diff --git a/src/main/java/com/docus/server/message/entity/CqcPushConfig.java b/src/main/java/com/docus/server/message/entity/CqcPushConfig.java new file mode 100644 index 0000000..3f2c635 --- /dev/null +++ b/src/main/java/com/docus/server/message/entity/CqcPushConfig.java @@ -0,0 +1,67 @@ +package com.docus.server.message.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 推送配置表 + *

+ * + * @author jiashi + * @since 2023-02-14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="CqcPushConfig对象", description="推送配置表") +public class CqcPushConfig implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "ID") + @TableId(value = "id", type = IdType.ID_WORKER_STR) + private Long id; + + @ApiModelProperty(value = "业务类型(1退回医生,2退回护理,3退回手麻,4退回重症,5召回推送,6归档推送,7病案室纸质签收推送,8电子病例解档,9护理解档,10电子病历归档,11护理归档)") + private String businessType; + + @ApiModelProperty(value = "协议类型(1webservice,2http)") + private String protocolType; + + @ApiModelProperty(value = "命名空间") + private String namespace; + + @ApiModelProperty(value = "接口地址") + private String url; + + @ApiModelProperty(value = "方法名") + private String method; + + @ApiModelProperty(value = "是否启用(0否,1是)") + private Integer effective; + + @ApiModelProperty(value = "标题") + private String title; + + @ApiModelProperty(value = "创建人") + private String createUser; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "修改人") + private String updateUser; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + + @ApiModelProperty(value = "参数json") + private String parameterList; +} diff --git a/src/main/java/com/docus/server/message/entity/TBasic.java b/src/main/java/com/docus/server/message/entity/TBasic.java index abdbf98..1762136 100644 --- a/src/main/java/com/docus/server/message/entity/TBasic.java +++ b/src/main/java/com/docus/server/message/entity/TBasic.java @@ -154,5 +154,6 @@ public class TBasic implements Serializable { @ApiModelProperty(value = "记账号") private String jzh; - + @ApiModelProperty(value = "住院就诊流水号(外部id)") + private String externalId; } diff --git a/src/main/java/com/docus/server/message/feign/vo/ArchiveAndRecallPushVo.java b/src/main/java/com/docus/server/message/feign/vo/ArchiveAndRecallPushVo.java new file mode 100644 index 0000000..d2cc839 --- /dev/null +++ b/src/main/java/com/docus/server/message/feign/vo/ArchiveAndRecallPushVo.java @@ -0,0 +1,60 @@ +package com.docus.server.message.feign.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @BelongsProject: docus_medicalrecord_starter + * @BelongsPackage: com.docus.services.clinicqualitycontrol.dto + * @Author: chierhao + * @CreateTime: 2023-02-14 14:56 + * @Description: TODO + * @Version: 1.0 + */ +@Data +@ApiModel("退回推送Vo") +public class ArchiveAndRecallPushVo { + + @ApiModelProperty(value = "病案主键") + private String patientId; + + @ApiModelProperty(value = "住院号(病案号)") + private String inpatientNo; + + @ApiModelProperty(value = "住院次数") + private Integer admissTimes; + + @ApiModelProperty(value = "住院就诊流水号(外部id)") + private String externalId; + + @ApiModelProperty(value = "姓名") + private String name; + + @ApiModelProperty(value = "入院时间") + private Date admissDate; + + @ApiModelProperty(value = "出院时间") + private Date disDate; + + @ApiModelProperty(value = "归档时间") + private String archiveTime; + + @ApiModelProperty(value = "出院科室代码") + private String disDept; + + @ApiModelProperty(value = "出院科室") + private String disDeptName; + + @ApiModelProperty(value = "操作人工号") + private String controlUserName; + + @ApiModelProperty(value = "操作人") + private String controlName; + + @ApiModelProperty(value = "解档\\归档状态( 未归档状态\\归档状态) ") + private Integer isArchive; + +} diff --git a/src/main/java/com/docus/server/message/mapper/CqcPushConfigMapper.java b/src/main/java/com/docus/server/message/mapper/CqcPushConfigMapper.java new file mode 100644 index 0000000..10c43be --- /dev/null +++ b/src/main/java/com/docus/server/message/mapper/CqcPushConfigMapper.java @@ -0,0 +1,19 @@ +package com.docus.server.message.mapper; +import com.docus.server.message.entity.CqcPushConfig; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface CqcPushConfigMapper { + + /** + * @description 根据业务类型查询推送配置 + * @author chierhao + * @date 2023-02-14 13:59 + * @param businessType + * @return: com.docus.services.clinicqualitycontrol.entity.CqcPushConfig + */ + CqcPushConfig getCqcPushConfigByBusinessType(@Param("businessType") String businessType); + + +} diff --git a/src/main/java/com/docus/server/message/mapper/TBasicMapper.java b/src/main/java/com/docus/server/message/mapper/TBasicMapper.java index d895d15..8f96af3 100644 --- a/src/main/java/com/docus/server/message/mapper/TBasicMapper.java +++ b/src/main/java/com/docus/server/message/mapper/TBasicMapper.java @@ -16,6 +16,10 @@ public interface TBasicMapper { List getPatientIdByPreciseConditions(@Param("condition")TbasicQrPreciseCondition condition); + /* + * 广州脑科查询主键 + */ + List getGznkPatientIdByPreciseConditions(@Param("condition")TbasicQrPreciseCondition condition); /** * 更新医生提交时间 @@ -151,4 +155,6 @@ public interface TBasicMapper { * @return 病案主键 */ String getPatientIdBySdRyIndex(@Param("sdRyIndex")String sdRyIndex); + + } diff --git a/src/main/java/com/docus/server/message/validate/NkRecordSubmitValidate.java b/src/main/java/com/docus/server/message/validate/NkRecordSubmitValidate.java new file mode 100644 index 0000000..c16bf43 --- /dev/null +++ b/src/main/java/com/docus/server/message/validate/NkRecordSubmitValidate.java @@ -0,0 +1,28 @@ +package com.docus.server.message.validate; + +import com.docus.core.util.Func; +import com.docus.infrastructure.core.exception.BaseException; +import com.docus.server.message.dto.NkRecordSubmitDTO; +import com.docus.server.message.dto.ZqRecordSubmitDTO; + +public class NkRecordSubmitValidate { + public static void verifyRecordSubmitDTO(NkRecordSubmitDTO recordSubmitDto) throws BaseException{ + String jzh = recordSubmitDto.getJzh(); + String inpatientNo = recordSubmitDto.getInpatientNo(); + String name = recordSubmitDto.getName(); + String submitDate = recordSubmitDto.getSubmitDate(); + String submitNo = recordSubmitDto.getSubmitNo(); + String submitName = recordSubmitDto.getSubmitName(); + if (Func.isBlank(jzh) + && Func.isBlank(inpatientNo) + && Func.isBlank(name)) { + throw new BaseException("住院流水号、住院号、患者姓名 不可全部为空!"); + } + if (Func.isBlank(submitDate)) { + throw new BaseException("提交时间不能为空!"); + } + if(Func.isBlank(submitNo)||Func.isBlank(submitName)){ + throw new BaseException("提交人工号和姓名不能为空!"); + } + } +} diff --git a/src/main/resources/mapper/CqcPushConfigMapper.xml b/src/main/resources/mapper/CqcPushConfigMapper.xml new file mode 100644 index 0000000..61f27b7 --- /dev/null +++ b/src/main/resources/mapper/CqcPushConfigMapper.xml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml index c8ecaf5..98fa785 100644 --- a/src/main/resources/mapper/TBasicMapper.xml +++ b/src/main/resources/mapper/TBasicMapper.xml @@ -75,6 +75,24 @@ + +