diff --git a/dataConfig/System-Mapping.json b/dataConfig/System-Mapping.json new file mode 100644 index 0000000..0cb2bba --- /dev/null +++ b/dataConfig/System-Mapping.json @@ -0,0 +1,15 @@ +[ + { + "hospital": "emr", + "wzh": "1" + },{ + "hospital": "hl", + "wzh": "3" +},{ + "hospital": "sy", + "wzh": "6" +},{ + "hospital": "hz", + "wzh": "13" +} +] \ No newline at end of file diff --git a/src/main/java/com/docus/server/collection/config/SystemMappingConfig.java b/src/main/java/com/docus/server/collection/config/SystemMappingConfig.java new file mode 100644 index 0000000..afe6d1e --- /dev/null +++ b/src/main/java/com/docus/server/collection/config/SystemMappingConfig.java @@ -0,0 +1,77 @@ +package com.docus.server.collection.config; + +import com.docus.infrastructure.core.utils.TableJsonRead; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * 系统映射配置 + * + * @author wyb + */ +public class SystemMappingConfig { + private static final String CONFIG_FILE_PATH = "dataConfig"; + private static final String CONFIG_FILE_NAME = "System-Mapping.json"; + private static volatile boolean FLUSH; + private static volatile SystemMappingConfig INSTANCE; + private final List systemMappingList; + + @Override + public String toString() { + return "SystemMappingConfig{" + + "systemMappingList=" + systemMappingList + + '}'; + } + + private SystemMappingConfig() { + TableJsonRead jsonRead = new TableJsonRead(); + List list = jsonRead.Read(CONFIG_FILE_PATH, CONFIG_FILE_NAME, ArrayList.class); + this.systemMappingList = list; + } + + public static SystemMappingConfig getInstance() { + if (INSTANCE == null || FLUSH) { + synchronized (SystemMappingConfig.class) { + if (INSTANCE == null || FLUSH) { + INSTANCE = new SystemMappingConfig(); + } + } + } + return INSTANCE; + } + + /** + * 配置文件有更新,适用于不是程序动态改变的配置文件 + */ + public static void flush() { + FLUSH = true; + } + + public List getSystemMappingList() { + return systemMappingList; + } + + public static void main(String[] args) { + SystemMappingConfig instance = getInstance(); + System.out.println(instance); + SystemMappingConfig instance2 = getInstance(); + System.out.println(instance == instance2); + SystemMappingConfig.flush(); + SystemMappingConfig instance3 = getInstance(); + System.out.println(instance3 == instance2); + } + + @Data + public static class SystemMapping { + /** + * 医院系统标识 + */ + private String hospital; + /** + * 无纸化医院标识 + */ + private String wzh; + } +} diff --git a/src/main/java/com/docus/server/collection/controller/MzZyHisController.java b/src/main/java/com/docus/server/collection/controller/MzZyHisController.java index 047c047..84b2198 100644 --- a/src/main/java/com/docus/server/collection/controller/MzZyHisController.java +++ b/src/main/java/com/docus/server/collection/controller/MzZyHisController.java @@ -1,12 +1,14 @@ package com.docus.server.collection.controller; 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.collection.converter.FirstPageCheckoutConverter; import com.docus.server.collection.dto.FirstPageCheckoutInDTO; import com.docus.server.collection.dto.FirstPageCheckoutRequest; import com.docus.server.collection.service.MzZyHisService; +import com.docus.server.collection.util.PersistRequestUtil; import com.docus.server.collection.validator.RequestValidator; import com.docus.server.collection.validator.ValidateResult; import com.docus.server.collection.validator.impl.FirstPageCheckoutRequestValidator; @@ -19,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; @Api("梅州中西HIS相关接口") @Slf4j @@ -30,7 +33,8 @@ public class MzZyHisController { @ApiOperation("首页签出") @PostMapping("/firstPageCheckout") - public CommonResult firstPageCheckout(@RequestBody FirstPageCheckoutRequest firstPageCheckoutRequest) { + public CommonResult firstPageCheckout(@RequestBody FirstPageCheckoutRequest firstPageCheckoutRequest, HttpServletRequest servletRequest) { + String method = servletRequest.getRequestURI().replace("/", "_").replace("\\", "_"); log.info("首页签出接口参数:{}", Func.toJson(firstPageCheckoutRequest)); // 验证数据 RequestValidator validator = new FirstPageCheckoutRequestValidator(firstPageCheckoutRequest); @@ -41,8 +45,17 @@ public class MzZyHisController { // 转换数据,业务处理 FirstPageCheckoutConverter converter = new FirstPageCheckoutConverter(firstPageCheckoutRequest); FirstPageCheckoutInDTO checkoutInDTO = converter.req2dto(); - mzZyHisService.firstPageCheckout(checkoutInDTO); - return CommonResult.success("操作成功!"); + try { + mzZyHisService.firstPageCheckout(checkoutInDTO); + return CommonResult.success("操作成功!"); + } catch (BaseException ex) { + log.error(ex.getMessage(), ex); + return CommonResult.failed(ex.getMessage()); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + PersistRequestUtil.persistRequest(method,Func.toJson(firstPageCheckoutRequest)); + return CommonResult.failed("系统出错啦,请稍后再试!"); + } } } diff --git a/src/main/java/com/docus/server/collection/dto/FirstPageCheckoutInDTO.java b/src/main/java/com/docus/server/collection/dto/FirstPageCheckoutInDTO.java index ec2698d..bb75944 100644 --- a/src/main/java/com/docus/server/collection/dto/FirstPageCheckoutInDTO.java +++ b/src/main/java/com/docus/server/collection/dto/FirstPageCheckoutInDTO.java @@ -19,6 +19,6 @@ public class FirstPageCheckoutInDTO { @ApiModelProperty("同步文件方式:ALL 或者 BY_SYS_ID") private FileSyncMethod syncMethod; - @ApiModelProperty("系统id") + @ApiModelProperty("系统id,当同步文件方式为 BY_SYS_ID 时,此值必传") private List sysId; } diff --git a/src/main/java/com/docus/server/collection/service/impl/MzZyHisServiceImpl.java b/src/main/java/com/docus/server/collection/service/impl/MzZyHisServiceImpl.java index d61b7ee..325cfda 100644 --- a/src/main/java/com/docus/server/collection/service/impl/MzZyHisServiceImpl.java +++ b/src/main/java/com/docus/server/collection/service/impl/MzZyHisServiceImpl.java @@ -14,6 +14,12 @@ public class MzZyHisServiceImpl implements MzZyHisService { @Override public void firstPageCheckout(FirstPageCheckoutInDTO dto) { System.out.println(dto); + throw new RuntimeException(""); + //验证基础数据是否存在 +// if(!false){ +// throw new BaseException("系统未找到患者数据!"); +// +// } // todo 首页签出处理逻辑 } } diff --git a/src/main/java/com/docus/server/collection/util/PersistRequestUtil.java b/src/main/java/com/docus/server/collection/util/PersistRequestUtil.java new file mode 100644 index 0000000..b98aacd --- /dev/null +++ b/src/main/java/com/docus/server/collection/util/PersistRequestUtil.java @@ -0,0 +1,63 @@ +package com.docus.server.collection.util; + +import com.docus.core.util.DateUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; +import java.util.Date; + +/** + * @author wyb + */ +public class PersistRequestUtil { + private final static Logger logger = LoggerFactory.getLogger(PersistRequestUtil.class); + + public static void persistRequest(String method, String content) { + String persistDir = currentPath() + File.separator + "persist"; + FileWriter fileWriter = null; + BufferedWriter bufferedWriter = null; + try { + File persistDirFile = new File(persistDir); + if (!persistDirFile.exists()) { + persistDirFile.mkdirs(); + } + String persistFilePath = persistDir + File.separator + method; + fileWriter = new FileWriter(persistFilePath, true); + bufferedWriter = new BufferedWriter(fileWriter); + content = "[" + DateUtil.formatDateTime(new Date()) + "] " + content + "\n"; + bufferedWriter.write(content); + } catch (Exception ex) { + logger.error(ex.getMessage(), ex); + } finally { + if (bufferedWriter != null) { + try { + bufferedWriter.close(); + } catch (Exception ex) { + } + } + if (fileWriter != null) { + try { + fileWriter.close(); + } catch (Exception ex) { + } + } + } + } + + public static void main(String[] args) { + persistRequest("test","{xxcc}"); + } + public static String currentPath() { + File dir = new File("."); + String currentpath = ""; + + try { + currentpath = dir.getCanonicalPath(); + } catch (IOException var4) { + var4.printStackTrace(); + } + + return currentpath; + } +}