refactor: 延安归并宁夏方言(删除 ya 独立实现)

延安数据库结构已与宁夏完全一致(V_PHYEXAM_* 视图 + P_ADD_* 存储过程):
- YananAdapter 改继承 NxAdapterBase,hmType 归并为 nx
- 删除 YaAdapterBase / YaOrderMapper / YaOrderMapper.xml
- app.yml 去掉 ya 的 mapper 注册

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
2026-09-04 18:59:51 +08:00
co-authored by Claude Code
parent 51b050bd4c
commit aeed30f014
7 changed files with 7 additions and 634 deletions
@@ -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 版)。
@@ -19,7 +19,7 @@ import java.util.Map;
/**
* NX 方言适配器基类(SqlServer)。
*
* 适用医院:ningxia(宁夏宝石花)。
* 适用医院:ningxia(宁夏宝石花)/ yanan(延安,库结构已与宁夏完全一致)
*/
public abstract class NxAdapterBase implements HospitalAdapter {
@@ -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 {
/** 数据库 MapperSolon 按类型注入) */
@Inject
protected YaOrderMapper mapper;
@Override
public String hmType() {
return "ya";
}
@Override
public Result<Boolean> 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<String, Object> 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<String, Object> 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<String, Object> 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<PeStatusVo> getPhyexamStatus(String peIds) {
return mapper.getPhyexamStatus(peIds);
}
@Override
public List<Map<String, Object>> getItemList() {
return mapper.getItemList();
}
@Override
public List<Map<String, Object>> getAllItemList() {
return mapper.getAllItemList();
}
@Override
public List<Map<String, Object>> getPeItemList() {
return mapper.getPeItemList();
}
@Override
public List<Map<String, Object>> getItemInfo(String peItemCode) {
return mapper.getItemInfo(peItemCode);
}
@Override
public List<Map<String, Object>> getEmpItem(String peId) {
return mapper.getEmpItem(peId);
}
@Override
public List<Map<String, Object>> getResult(String peId) {
return mapper.getResult(peId);
}
@Override
public List<ConclusionVo> getConclusionAll(String peId) {
return mapper.getConclusionAll(peId);
}
@Override
public List<SuggestVo> getSuggestAll(String peId) {
return mapper.getSuggestAll(peId);
}
@Override
public PeStatusVo getPeStatusByIdnoAndYear(String idNo, String year) {
return mapper.getPeStatusByIdnoAndYear(idNo, year);
}
@Override
public List<MedicalMiddleResultVo> getResultByIdcardAndYear(String idNo, String year) {
return mapper.getResultByIdcardAndYear(idNo, year);
}
@Override
public List<MedicalMiddleResultVo> getResultByIdcardAndYearAll(String idNo, String year) {
return mapper.getResultByIdcardAndYearAll(idNo, year);
}
@Override
public List<MedicalMiddleResultVo> getResultByPeId(String peId) {
return mapper.getResultByPeId(peId);
}
@Override
public List<MedicalMiddleResultVo> getItemByPeId(String peId) {
return mapper.getItemByPeId(peId);
}
@Override
public List<MedicalMiddleResultVo> getItemByPeIdAll(String peId) {
return mapper.getItemByPeIdAll(peId);
}
@Override
public Map<String, Object> getPeIdAndDateByIdcard(String idNo) {
return mapper.getPeIdAndDateByIdcard(idNo);
}
@Override
public List<Map<String, Object>> getPeIdAndDateByIdcardList(String idNo) {
return mapper.getPeIdAndDateByIdcardList(idNo);
}
@Override
public List<ExamListVo> 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);
}
}
@@ -3,10 +3,13 @@ package com.hospital.front.adapter;
import org.noear.solon.annotation.Component;
/**
* 延安医院适配器(SqlServerya 方言)。
* 延安医院适配器(SqlServernx 方言)。
*
* 延安数据库结构已与宁夏完全一致(V_PHYEXAM_* 视图 + P_ADD_* 存储过程),
* 仅连接配置不同,直接复用 NxAdapterBase。
*/
@Component
public class YananAdapter extends YaAdapterBase {
public class YananAdapter extends NxAdapterBase {
@Override
public String code() {
@@ -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;
/**
* 延安医院 MapperSqlServer 方言)。
* getConclusion/getSuggest 与 All 版 SQL 完全重复,已合并为 All 版。
*/
@Mapper
public interface YaOrderMapper {
/** 健康探测 */
int ping();
/** 提交预约(存储过程) */
void saveOrder(Map<String, Object> map);
/** 取消预约(存储过程) */
void cancelOrder(Map<String, Object> map);
/** 添加/修改单位(存储过程,V1) */
void addUnit(Map<String, Object> map);
/** 体检状态查询(多个 peId 逗号分隔) */
List<PeStatusVo> getPhyexamStatus(@Param("peIds") String peIds);
/** 体检项目查询 */
List<Map<String, Object>> getItemList();
/** 体检指标项及体检组合数据 */
List<Map<String, Object>> getAllItemList();
/** 体检指标项数据 */
List<Map<String, Object>> getPeItemList();
/** 按体检指标项查所属组合 */
List<Map<String, Object>> getItemInfo(@Param("peItemCode") String peItemCode);
/** 员工体检项目 */
List<Map<String, Object>> getEmpItem(@Param("peId") String peId);
/** 按体检编号查体检结果 */
List<Map<String, Object>> getResult(@Param("peId") String peId);
/** 体检结论(列表) */
List<ConclusionVo> getConclusionAll(@Param("peId") String peId);
/** 体检建议(全量) */
List<SuggestVo> getSuggestAll(@Param("peId") String peId);
/** 按身份证号及年份查询体检状态 */
PeStatusVo getPeStatusByIdnoAndYear(@Param("idNo") String idNo, @Param("year") String year);
/** 按身份证号及年份查询体检结果 */
List<MedicalMiddleResultVo> getResultByIdcardAndYear(@Param("idNo") String idNo, @Param("year") String year);
/** 按身份证号及年份查询体检结果(全量) */
List<MedicalMiddleResultVo> getResultByIdcardAndYearAll(@Param("idNo") String idNo, @Param("year") String year);
/** 按体检编号查询体检结果 */
List<MedicalMiddleResultVo> getResultByPeId(@Param("peId") String peId);
/** 按体检编号查询体检项目子表 */
List<MedicalMiddleResultVo> getItemByPeId(@Param("peId") String peId);
/** 按体检编号查询体检项目子表(全量) */
List<MedicalMiddleResultVo> getItemByPeIdAll(@Param("peId") String peId);
/** 按身份证号查询当年 peId 与预约日期 */
Map<String, Object> getPeIdAndDateByIdcard(@Param("idNo") String idNo);
/** 按身份证号查询当年 peId 与预约日期(数组) */
List<Map<String, Object>> getPeIdAndDateByIdcardList(@Param("idNo") String idNo);
/** 按审核日期查询当天体检人员列表(去重) */
List<ExamListVo> getExamListByDate(@Param("auditDate") String auditDate);
}
-2
View File
@@ -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"
@@ -1,354 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hospital.front.mapper.ya.YaOrderMapper">
<!-- 健康探测 -->
<select id="ping" resultType="int">
SELECT 1
</select>
<parameterMap id="pm" type="java.util.Map">
<parameter property="peInfoStr" jdbcType="VARCHAR" mode="IN"></parameter>
<parameter property="peItemStr" jdbcType="VARCHAR" mode="IN"></parameter>
<parameter property="resultCode" jdbcType="VARCHAR" mode="OUT"></parameter>
<parameter property="errorMsg" jdbcType="VARCHAR" mode="OUT"></parameter>
<parameter property="peId" jdbcType="VARCHAR" mode="OUT"></parameter>
</parameterMap>
<insert id="saveOrder" parameterMap="pm" statementType="CALLABLE">
{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}
)}
</insert>
<parameterMap id="cancenlPm" type="java.util.Map">
<parameter property="peId" jdbcType="VARCHAR" mode="IN"></parameter>
<parameter property="name" jdbcType="VARCHAR" mode="IN"></parameter>
<parameter property="idcard" jdbcType="VARCHAR" mode="IN"></parameter>
<parameter property="resultCode" jdbcType="VARCHAR" mode="OUT"></parameter>
<parameter property="errorMsg" jdbcType="VARCHAR" mode="OUT"></parameter>
</parameterMap>
<insert id="cancelOrder" parameterMap="cancenlPm" statementType="CALLABLE">
{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}
)}
</insert>
<parameterMap id="unitPm" type="java.util.Map">
<parameter property="unitCode" jdbcType="VARCHAR" mode="IN"></parameter>
<parameter property="unitName" jdbcType="VARCHAR" mode="IN"></parameter>
<parameter property="resultCode" jdbcType="VARCHAR" mode="OUT"></parameter>
<parameter property="errorMsg" jdbcType="VARCHAR" mode="OUT"></parameter>
</parameterMap>
<insert id="addUnit" parameterMap="unitPm" statementType="CALLABLE">
{call P_ORGINFOUPDATE(
#{unitCode,mode=IN,jdbcType=VARCHAR},
#{unitName,mode=IN,jdbcType=VARCHAR},
#{resultCode,mode=OUT,jdbcType=VARCHAR},
#{errorMsg,mode=OUT,jdbcType=VARCHAR}
)}
</insert>
<select id="getPhyexamStatus" resultType="com.hospital.front.vo.PeStatusVo">
SELECT
t.tjh PE_ID,
t.xm NAME,
t.sfzh ID_NO,
t.dwmc UNIT_NAME,
t.dwbm DEPARTMENT,
(CONVERT(varchar(100), t.yyrq, 20)) PE_PRE_DATE,
(
CASE t.status_sum
WHEN 4 THEN N'终审'
WHEN 3 THEN N'初审'
WHEN 2 THEN N'检中'
WHEN 1 THEN N'报道'
WHEN 0 THEN N'预约'
ELSE N'预约'
END
) PE_STATUS
FROM
( SELECT tjh, xm, sfzh, dwmc, dwbm, yyrq,
( ISNULL(bdzt,0) + ISNULL(jczt,0) + ISNULL(cszt,0) + ISNULL(zszt,0) ) status_sum
FROM V_YGTJZT ) t
WHERE
CHARINDEX( ',' + t.tjh + ',', ',' + #{peIds} + ',' ) >0
</select>
<select id="getItemList" resultType="java.util.Map">
SELECT DISTINCT
tjzhxbm item_assem_code,
tjzhxmc item_assem_name
FROM
V_TJXMZH
</select>
<select id="getAllItemList" resultType="java.util.Map">
SELECT DISTINCT
tjzhxbm ITEM_ASSEM_CODE,
tjzhxmc ITEM_ASSEM_NAME,
tjzbxbm PE_ITEM_CODE,
tjzbxmc PE_ITEM_NAME
FROM
V_TJXMZH
</select>
<select id="getPeItemList" resultType="java.util.Map">
SELECT DISTINCT
tjzbxbm PE_ITEM_CODE,
tjzbxmc PE_ITEM_NAME
FROM
V_TJXMZH
</select>
<select id="getEmpItem" resultType="java.util.Map">
SELECT
TJH PE_ID,
XM NAME,
DWMC UNIT_NAME,
DWBM DEPARTMENT,
TJZHXBM ITEM_ASSEM_CODE,
TJZHXMC ITEM_ASSEM_NAME,
(case when WCZT = '1' then N'完成' when WCZT != '1' then N'未完成' end) FINISHED_SIGN,
CONVERT ( VARCHAR ( 100 ), JCWCSJ, 20 ) PE_DATE
from V_YGYYTJZHX
where TJH = #{peId}
</select>
<select id="getItemInfo" resultType="java.util.Map">
SELECT
tjzhxbm ITEM_ASSEM_CODE,
tjzhxmc ITEM_ASSEM_NAME,
TJZBXBM PE_ITEM_CODE,
TJZBXMC PE_ITEM_NAME
FROM
V_TJXMZH
where tjzhxbm = #{peItemCode}
</select>
<select id="getResult" resultType="java.util.Map">
SELECT
TJH PE_ID ,
XM NAME,
SFZH ID_NO,
DWMC UNIT_NAME,
DWBM PE_DEPT_NAME,
TJZHXBM ITEM_ASSEM_CODE,
TJZHXMC ITEM_ASSEM_NAME,
TJZBXBM PE_ITEM_CODE,
TJZBXMC PE_ITEM_NAME,
TJZBZ PE_RESULT,
TJZBDW UNIT,
CONVERT(varchar(100),shsj,20) PE_QUEUE_DATE,
CONVERT(varchar(100),shsj,20) AUDIT_DATE,
CKFW PRINT_CONTEXT
FROM
V_TJBGJG
WHERE
TJH = #{peId}
and TJZBXBM is not null
</select>
<select id="getConclusionAll" resultType="com.hospital.front.vo.ConclusionVo">
select TJH PE_ID,'' PE_VISIT_ID,
REPLACE(REPLACE(REPLACE(REPLACE(TJJL,CHAR(10),''), ' ', ''),char(9),''),char(13),'') CONCLUSION_TEXT
from V_TJJY
where TJH = #{peId}
and TJJL is not null
</select>
<!--<select id="getTotalConclusion" resultType="java.util.HashMap">
select wm_concat(PE_DEPT_NAME || ':' || REPLACE(REPLACE(REPLACE(to_lob(CONCLUSION_TEXT), chr(13) || chr(10), ''), chr(13), ''), chr(10), '') || '###') CONCLUSION_TEXT
from V_PHYEXAM_DEPT_RESULT
where PE_ID = #{peId}
and CONCLUSION_TEXT is not null
</select>-->
<select id="getSuggestAll" resultType="com.hospital.front.vo.SuggestVo">
select TJH PE_ID,'' PE_VISIT_ID,
REPLACE(REPLACE(REPLACE(REPLACE(TJJL,CHAR(10),''), ' ', ''),char(9),''),char(13),'') REC_CONTENT,
REPLACE(REPLACE(REPLACE(REPLACE(TJJY,CHAR(10),''), ' ', ''),char(9),''),char(13),'') GUIDE_CONTENT
from V_TJJY
where TJH = #{peId}
and TJJL is not null
</select>
<!--<select id="getTotalSuggest" resultType="java.util.HashMap">
select wm_concat(REC_CONTENT || ':' || REPLACE(REPLACE(REPLACE(GUIDE_CONTENT, chr(13) || chr(10), ''), chr(13), ''), chr(10), '') || '###') GUIDE_CONTENT
from V_PHYEXAM_DIAGNOSIS
where PE_ID = #{peId}
and GUIDE_CONTENT is not null
</select>-->
<select id="getPeStatusByIdnoAndYear" resultType="com.hospital.front.vo.PeStatusVo">
SELECT
t.tjh PE_ID,
t.xm NAME,
t.sfzh ID_NO,
t.dwmc UNIT_NAME,
t.dwbm DEPARTMENT,
(CONVERT(varchar(100), t.yyrq, 20)) PE_PRE_DATE,
(
CASE t.status_sum
WHEN 4 THEN N'终审'
WHEN 3 THEN N'初审'
WHEN 2 THEN N'检中'
WHEN 1 THEN N'报道'
WHEN 0 THEN N'预约'
ELSE N'预约'
END
) PE_STATUS
FROM
( SELECT tjh, xm, sfzh, dwmc, dwbm, yyrq,
( ISNULL(bdzt,0) + ISNULL(jczt,0) + ISNULL(cszt,0) + ISNULL(zszt,0) ) status_sum
FROM V_YGTJZT ) t
WHERE t.SFZH = #{idNo}
AND t.yyrq &gt;= CONVERT(DATETIME, #{year} + '-01-01')
AND t.yyrq &lt; DATEADD(YEAR, 1, CONVERT(DATETIME, #{year} + '-01-01'))
</select>
<select id="getResultByIdcardAndYear" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
SELECT
SFZH ID_NO,
XM NAME,
TJH PE_ID,
'' PE_VISIT_ID,
'' UNIT_CODE,
DWMC UNIT_NAME,
CONVERT(varchar(100),max(shsj),20) PE_QUEUE_DATE,
CONVERT(varchar(100),max(shsj),20) AUDIT_DATE
FROM
V_TJBGJG
WHERE
SFZH = #{ idNo }
AND SHSJ &gt;= CONVERT(DATETIME, #{year} + '-01-01')
AND SHSJ &lt; DATEADD(YEAR, 1, CONVERT(DATETIME, #{year} + '-01-01'))
group by SFZH,XM,TJH,DWMC
</select>
<select id="getResultByIdcardAndYearAll" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
SELECT
SFZH ID_NO,
XM NAME,
TJH PE_ID,
'' PE_VISIT_ID,
'' UNIT_CODE,
DWMC UNIT_NAME,
CONVERT(varchar(100),max(shsj),20) PE_QUEUE_DATE,
CONVERT(varchar(100),max(shsj),20) AUDIT_DATE
FROM
V_TJBGJG
WHERE
SFZH = #{ idNo }
AND SHSJ &gt;= CONVERT(DATETIME, #{year} + '-01-01')
AND SHSJ &lt; DATEADD(YEAR, 1, CONVERT(DATETIME, #{year} + '-01-01'))
group by SFZH,XM,TJH,DWMC
</select>
<!--<select id="getResultByAuditDate" resultType="java.util.Map">
select *
from V_PHYEXAM_RESULT
where to_char(AUDIT_DATE,'yyyy-mm-dd')=#{auditDate}
</select>-->
<select id="getItemByPeId" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
SELECT DISTINCT
TJZHXBM ITEM_ASSEM_CODE,
TJZHXMC ITEM_ASSEM_NAME,
TJZBXBM PE_ITEM_CODE,
TJZBXMC PE_ITEM_NAME,
TJZBZ PE_RESULT,
TJZBDW UNIT,
CKFW PRINT_CONTEXT
FROM
V_TJBGJG
WHERE
TJH = #{peId}
and TJZBXBM is not null
</select>
<select id="getItemByPeIdAll" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
SELECT DISTINCT
TJZHXBM ITEM_ASSEM_CODE,
TJZHXMC ITEM_ASSEM_NAME,
TJZBXBM PE_ITEM_CODE,
TJZBXMC PE_ITEM_NAME,
TJZBZ PE_RESULT,
TJZBDW UNIT,
CKFW PRINT_CONTEXT
FROM
V_TJBGJG
WHERE
TJH = #{peId}
and TJZBXBM is not null
</select>
<select id="getPeIdAndDateByIdcard" resultType="java.util.Map">
SELECT
tjh pe_id,
CONVERT ( VARCHAR ( 100 ), JCWCSJ, 23 ) PE_PRE_DATE
FROM
V_YGYYTJZHX
<where>
<if test="idNo != null and idNo != '' ">
and SFZH = #{idNo}
</if>
and JCWCSJ &gt;= CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01')
and JCWCSJ &lt; DATEADD(YEAR, 1, CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01'))
</where>
order by JCWCSJ desc
</select>
<select id="getResultByPeId" resultType="com.hospital.front.vo.MedicalMiddleResultVo">
SELECT
SFZH ID_NO,
XM NAME,
TJH PE_ID,
'' PE_VISIT_ID,
'' UNIT_CODE,
DWMC UNIT_NAME,
CONVERT(varchar(100),max(shsj),20) PE_QUEUE_DATE,
CONVERT(varchar(100),max(shsj),20) AUDIT_DATE
FROM
V_TJBGJG
WHERE
TJH = #{peId}
GROUP BY SFZH,XM,TJH,DWMC
</select>
<select id="getPeIdAndDateByIdcardList" resultType="java.util.Map">
SELECT
distinct
tjh PE_ID,
CONVERT ( VARCHAR ( 100 ), JCWCSJ, 23 ) PE_PRE_DATE
FROM
V_YGYYTJZHX
<where>
<if test="idNo != null and idNo != '' ">
and SFZH = #{idNo}
</if>
and JCWCSJ &gt;= CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01')
and JCWCSJ &lt; DATEADD(YEAR, 1, CONVERT(DATETIME, CONVERT(VARCHAR(4), GETDATE(), 23) + '-01-01'))
</where>
</select>
<!-- 根据audit_date查询当天体检人员列表(去重) -->
<select id="getExamListByDate" resultType="com.hospital.front.vo.ExamListVo">
SELECT DISTINCT TJH AS "peId",
SFZH AS "idNo",
XM AS "name",
CONVERT(VARCHAR(10), shsj, 23) AS "auditDate"
FROM V_TJBGJG
<where>
<choose>
<when test="auditDate != null and auditDate != ''">
CONVERT(VARCHAR(10), shsj, 23) = #{auditDate}
</when>
<otherwise>
CONVERT(VARCHAR(10), shsj, 23) = CONVERT(VARCHAR(10), GETDATE(), 23)
</otherwise>
</choose>
</where>
</select>
</mapper>