From aeed30f01415bf762b0d9e8ad58f48df6af9ed73 Mon Sep 17 00:00:00 2001 From: lianlonggang Date: Fri, 4 Sep 2026 18:59:51 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=BB=B6=E5=AE=89=E5=BD=92?= =?UTF-8?q?=E5=B9=B6=E5=AE=81=E5=A4=8F=E6=96=B9=E8=A8=80=EF=BC=88=E5=88=A0?= =?UTF-8?q?=E9=99=A4=20ya=20=E7=8B=AC=E7=AB=8B=E5=AE=9E=E7=8E=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 延安数据库结构已与宁夏完全一致(V_PHYEXAM_* 视图 + P_ADD_* 存储过程): - YananAdapter 改继承 NxAdapterBase,hmType 归并为 nx - 删除 YaAdapterBase / YaOrderMapper / YaOrderMapper.xml - app.yml 去掉 ya 的 mapper 注册 Co-Authored-By: Claude Code --- .../front/adapter/HospitalAdapter.java | 2 +- .../hospital/front/adapter/NxAdapterBase.java | 2 +- .../hospital/front/adapter/YaAdapterBase.java | 185 --------- .../hospital/front/adapter/YananAdapter.java | 7 +- .../front/mapper/ya/YaOrderMapper.java | 89 ----- src/main/resources/app.yml | 2 - .../front/mapper/ya/YaOrderMapper.xml | 354 ------------------ 7 files changed, 7 insertions(+), 634 deletions(-) delete mode 100644 src/main/java/com/hospital/front/adapter/YaAdapterBase.java delete mode 100644 src/main/java/com/hospital/front/mapper/ya/YaOrderMapper.java delete mode 100644 src/main/resources/com/hospital/front/mapper/ya/YaOrderMapper.xml diff --git a/src/main/java/com/hospital/front/adapter/HospitalAdapter.java b/src/main/java/com/hospital/front/adapter/HospitalAdapter.java index 7ee953b..3071475 100644 --- a/src/main/java/com/hospital/front/adapter/HospitalAdapter.java +++ b/src/main/java/com/hospital/front/adapter/HospitalAdapter.java @@ -14,7 +14,7 @@ import java.util.List; import java.util.Map; /** - * 医院适配器接口(各医院方言实现:bsm/nx/ya)。 + * 医院适配器接口(各医院方言实现:bsm/nx,延安复用 nx)。 * * getConclusion/getSuggest 与其 All 版 SQL 完全重复,已合并为 All 版 * (对外接口路径 /getConclusion、/getSuggest 保留,内部走 All 版)。 diff --git a/src/main/java/com/hospital/front/adapter/NxAdapterBase.java b/src/main/java/com/hospital/front/adapter/NxAdapterBase.java index 7a7bcc3..73348ca 100644 --- a/src/main/java/com/hospital/front/adapter/NxAdapterBase.java +++ b/src/main/java/com/hospital/front/adapter/NxAdapterBase.java @@ -19,7 +19,7 @@ import java.util.Map; /** * NX 方言适配器基类(SqlServer)。 * - * 适用医院:ningxia(宁夏宝石花)。 + * 适用医院:ningxia(宁夏宝石花)/ yanan(延安,库结构已与宁夏完全一致)。 */ public abstract class NxAdapterBase implements HospitalAdapter { diff --git a/src/main/java/com/hospital/front/adapter/YaAdapterBase.java b/src/main/java/com/hospital/front/adapter/YaAdapterBase.java deleted file mode 100644 index f4f2c1d..0000000 --- a/src/main/java/com/hospital/front/adapter/YaAdapterBase.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.hospital.front.adapter; - -import com.hospital.front.vo.ConclusionVo; -import com.hospital.front.vo.ExamListVo; -import com.hospital.front.vo.MedicalMiddleResultVo; -import com.hospital.front.vo.PeStatusVo; -import com.hospital.front.vo.SuggestVo; - -import com.hospital.front.dto.ProcResult; -import com.hospital.front.dto.Result; -import com.hospital.front.mapper.ya.YaOrderMapper; -import com.hospital.front.vo.UnitVo; -import org.noear.solon.annotation.Inject; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * YA 方言适配器基类(SqlServer)。 - * - * 适用医院:yanan(延安)。 - */ -public abstract class YaAdapterBase implements HospitalAdapter { - - /** 数据库 Mapper(Solon 按类型注入) */ - @Inject - protected YaOrderMapper mapper; - - @Override - public String hmType() { - return "ya"; - } - - @Override - public Result healthCheck() { - try { - return Result.success(mapper.ping() == 1); - } catch (Exception e) { - return Result.error("数据库连接失败:" + e.getMessage()); - } - } - - @Override - public ProcResult saveOrder(String peInfoStr, String peItemStr) { - Map map = new HashMap<>(); - map.put("peInfoStr", peInfoStr); - map.put("peItemStr", peItemStr); - mapper.saveOrder(map); - return new ProcResult( - str(map.get("resultCode")), - str(map.get("errorMsg")), - str(map.get("peId")) - ); - } - - @Override - public ProcResult cancelOrder(String peId, String name, String idcard) { - Map map = new HashMap<>(); - map.put("peId", peId); - map.put("name", name); - map.put("idcard", idcard); - mapper.cancelOrder(map); - return new ProcResult( - str(map.get("resultCode")), - str(map.get("errorMsg")), - null - ); - } - - @Override - public ProcResult addUnit(UnitVo unit, boolean useV2) { - // 延安医院仅有 V1 存储过程(对齐旧项目 YaOrderMapper),useV2 忽略统一走 V1 - Map map = new HashMap<>(); - map.put("unitCode", unit.getUnitCode()); - map.put("unitName", unit.getUnitName()); - map.put("parentUnitCode", unit.getParentUnitCode()); - map.put("address", unit.getAddress()); - map.put("connecter1", unit.getConnecter1()); - map.put("phone1", unit.getPhone1()); - map.put("connecter2", unit.getConnecter2()); - map.put("phone2", unit.getPhone2()); - mapper.addUnit(map); - return new ProcResult( - str(map.get("resultCode")), - str(map.get("errorMsg")), - null - ); - } - - @Override - public List getPhyexamStatus(String peIds) { - return mapper.getPhyexamStatus(peIds); - } - - @Override - public List> getItemList() { - return mapper.getItemList(); - } - - @Override - public List> getAllItemList() { - return mapper.getAllItemList(); - } - - @Override - public List> getPeItemList() { - return mapper.getPeItemList(); - } - - @Override - public List> getItemInfo(String peItemCode) { - return mapper.getItemInfo(peItemCode); - } - - @Override - public List> getEmpItem(String peId) { - return mapper.getEmpItem(peId); - } - - @Override - public List> getResult(String peId) { - return mapper.getResult(peId); - } - - @Override - public List getConclusionAll(String peId) { - return mapper.getConclusionAll(peId); - } - - @Override - public List getSuggestAll(String peId) { - return mapper.getSuggestAll(peId); - } - - @Override - public PeStatusVo getPeStatusByIdnoAndYear(String idNo, String year) { - return mapper.getPeStatusByIdnoAndYear(idNo, year); - } - - @Override - public List getResultByIdcardAndYear(String idNo, String year) { - return mapper.getResultByIdcardAndYear(idNo, year); - } - - @Override - public List getResultByIdcardAndYearAll(String idNo, String year) { - return mapper.getResultByIdcardAndYearAll(idNo, year); - } - - @Override - public List getResultByPeId(String peId) { - return mapper.getResultByPeId(peId); - } - - @Override - public List getItemByPeId(String peId) { - return mapper.getItemByPeId(peId); - } - - @Override - public List getItemByPeIdAll(String peId) { - return mapper.getItemByPeIdAll(peId); - } - - @Override - public Map getPeIdAndDateByIdcard(String idNo) { - return mapper.getPeIdAndDateByIdcard(idNo); - } - - @Override - public List> getPeIdAndDateByIdcardList(String idNo) { - return mapper.getPeIdAndDateByIdcardList(idNo); - } - - @Override - public List getExamListByDate(String auditDate) { - return mapper.getExamListByDate(auditDate); - } - - /** 等价于 Kotlin 的 map[key]?.toString():值为 null 时返回 null,否则转字符串 */ - private static String str(Object value) { - return value == null ? null : String.valueOf(value); - } -} diff --git a/src/main/java/com/hospital/front/adapter/YananAdapter.java b/src/main/java/com/hospital/front/adapter/YananAdapter.java index dac78c1..8d78a20 100644 --- a/src/main/java/com/hospital/front/adapter/YananAdapter.java +++ b/src/main/java/com/hospital/front/adapter/YananAdapter.java @@ -3,10 +3,13 @@ package com.hospital.front.adapter; import org.noear.solon.annotation.Component; /** - * 延安医院适配器(SqlServer,ya 方言)。 + * 延安医院适配器(SqlServer,nx 方言)。 + * + * 延安数据库结构已与宁夏完全一致(V_PHYEXAM_* 视图 + P_ADD_* 存储过程), + * 仅连接配置不同,直接复用 NxAdapterBase。 */ @Component -public class YananAdapter extends YaAdapterBase { +public class YananAdapter extends NxAdapterBase { @Override public String code() { diff --git a/src/main/java/com/hospital/front/mapper/ya/YaOrderMapper.java b/src/main/java/com/hospital/front/mapper/ya/YaOrderMapper.java deleted file mode 100644 index cbbbbba..0000000 --- a/src/main/java/com/hospital/front/mapper/ya/YaOrderMapper.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.hospital.front.mapper.ya; - -import com.hospital.front.vo.ConclusionVo; -import com.hospital.front.vo.ExamListVo; -import com.hospital.front.vo.MedicalMiddleResultVo; -import com.hospital.front.vo.PeStatusVo; -import com.hospital.front.vo.SuggestVo; - -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.List; -import java.util.Map; - -/** - * 延安医院 Mapper(SqlServer 方言)。 - * getConclusion/getSuggest 与 All 版 SQL 完全重复,已合并为 All 版。 - */ -@Mapper -public interface YaOrderMapper { - - /** 健康探测 */ - int ping(); - - /** 提交预约(存储过程) */ - void saveOrder(Map map); - - /** 取消预约(存储过程) */ - void cancelOrder(Map map); - - /** 添加/修改单位(存储过程,V1) */ - void addUnit(Map map); - - /** 体检状态查询(多个 peId 逗号分隔) */ - List getPhyexamStatus(@Param("peIds") String peIds); - - /** 体检项目查询 */ - List> getItemList(); - - /** 体检指标项及体检组合数据 */ - List> getAllItemList(); - - /** 体检指标项数据 */ - List> getPeItemList(); - - /** 按体检指标项查所属组合 */ - List> getItemInfo(@Param("peItemCode") String peItemCode); - - /** 员工体检项目 */ - List> getEmpItem(@Param("peId") String peId); - - /** 按体检编号查体检结果 */ - List> getResult(@Param("peId") String peId); - - /** 体检结论(列表) */ - List getConclusionAll(@Param("peId") String peId); - - /** 体检建议(全量) */ - List getSuggestAll(@Param("peId") String peId); - - /** 按身份证号及年份查询体检状态 */ - PeStatusVo getPeStatusByIdnoAndYear(@Param("idNo") String idNo, @Param("year") String year); - - /** 按身份证号及年份查询体检结果 */ - List getResultByIdcardAndYear(@Param("idNo") String idNo, @Param("year") String year); - - /** 按身份证号及年份查询体检结果(全量) */ - List getResultByIdcardAndYearAll(@Param("idNo") String idNo, @Param("year") String year); - - /** 按体检编号查询体检结果 */ - List getResultByPeId(@Param("peId") String peId); - - - /** 按体检编号查询体检项目子表 */ - List getItemByPeId(@Param("peId") String peId); - - /** 按体检编号查询体检项目子表(全量) */ - List getItemByPeIdAll(@Param("peId") String peId); - - - /** 按身份证号查询当年 peId 与预约日期 */ - Map getPeIdAndDateByIdcard(@Param("idNo") String idNo); - - /** 按身份证号查询当年 peId 与预约日期(数组) */ - List> getPeIdAndDateByIdcardList(@Param("idNo") String idNo); - - /** 按审核日期查询当天体检人员列表(去重) */ - List getExamListByDate(@Param("auditDate") String auditDate); -} diff --git a/src/main/resources/app.yml b/src/main/resources/app.yml index 6289d62..a577051 100644 --- a/src/main/resources/app.yml +++ b/src/main/resources/app.yml @@ -56,10 +56,8 @@ mybatis.db1: mappers: - "com.hospital.front.mapper.bsm" - "com.hospital.front.mapper.nx" - - "com.hospital.front.mapper.ya" - "com/hospital/front/mapper/bsm/BsmOrderMapper.xml" - "com/hospital/front/mapper/nx/NxOrderMapper.xml" - - "com/hospital/front/mapper/ya/YaOrderMapper.xml" configuration: mapUnderscoreToCamelCase: true logImpl: "org.apache.ibatis.logging.slf4j.Slf4jImpl" diff --git a/src/main/resources/com/hospital/front/mapper/ya/YaOrderMapper.xml b/src/main/resources/com/hospital/front/mapper/ya/YaOrderMapper.xml deleted file mode 100644 index eba5372..0000000 --- a/src/main/resources/com/hospital/front/mapper/ya/YaOrderMapper.xml +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - - - - - - - - - {call P_OrderRegister_YARMYY( - #{peInfoStr,mode=IN,jdbcType=VARCHAR}, - #{peItemStr,mode=IN,jdbcType=VARCHAR}, - #{resultCode,mode=OUT,jdbcType=VARCHAR}, - #{errorMsg,mode=OUT,jdbcType=VARCHAR}, - #{peId,mode=OUT,jdbcType=VARCHAR} - )} - - - - - - - - - - - {call P_CANCELORDER( - #{peId,mode=IN,jdbcType=VARCHAR}, - #{name,mode=IN,jdbcType=VARCHAR}, - #{idcard,mode=IN,jdbcType=VARCHAR}, - #{resultCode,mode=OUT,jdbcType=VARCHAR}, - #{errorMsg,mode=OUT,jdbcType=VARCHAR} - )} - - - - - - - - - - - {call P_ORGINFOUPDATE( - #{unitCode,mode=IN,jdbcType=VARCHAR}, - #{unitName,mode=IN,jdbcType=VARCHAR}, - #{resultCode,mode=OUT,jdbcType=VARCHAR}, - #{errorMsg,mode=OUT,jdbcType=VARCHAR} - )} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file