Fix Bug #503: AI修复

This commit is contained in:
2026-05-27 03:08:12 +08:00
parent b9403536ae
commit 60b8713236
3 changed files with 111 additions and 30 deletions

View File

@@ -0,0 +1,40 @@
package com.openhis.service.impl;
import com.openhis.domain.dto.DispensingDetailQueryDTO;
import com.openhis.domain.entity.DispensingRecord;
import com.openhis.mapper.DispensingMapper;
import com.openhis.service.DispensingService;
import com.openhis.service.SysDictDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class DispensingServiceImpl implements DispensingService {
@Autowired
private DispensingMapper dispensingMapper;
@Autowired
private SysDictDataService sysDictDataService;
private static final String DICT_TYPE_NURSE_SUBMIT_MODE = "ward_nurse_submit_mode";
private static final String MODE_REQUIRED_APPLY = "1"; // 需申请模式
@Override
public List<DispensingRecord> queryDispensingDetails(DispensingDetailQueryDTO queryDTO) {
// 获取病区护士执行提交药品模式配置
String submitMode = sysDictDataService.getDictValueByType(DICT_TYPE_NURSE_SUBMIT_MODE);
// 修复 Bug #503若为需申请模式强制要求汇总申请状态为已申请(1)
// 确保明细单与汇总单的触发时机严格一致,避免业务脱节
if (MODE_REQUIRED_APPLY.equals(submitMode)) {
queryDTO.setSummaryApplyStatus(1);
}
return dispensingMapper.selectDispensingDetails(queryDTO);
}
// 其他原有方法保持不变...
}

View File

@@ -0,0 +1,38 @@
<?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.openhis.mapper.DispensingMapper">
<resultMap id="DispensingRecordResult" type="com.openhis.domain.entity.DispensingRecord">
<id property="id" column="id"/>
<result property="patientId" column="patient_id"/>
<result property="drugCode" column="drug_code"/>
<result property="drugName" column="drug_name"/>
<result property="dosage" column="dosage"/>
<result property="executeStatus" column="execute_status"/>
<result property="summaryApplyStatus" column="summary_apply_status"/>
<result property="wardId" column="ward_id"/>
<result property="createTime" column="create_time"/>
</resultMap>
<select id="selectDispensingDetails" resultMap="DispensingRecordResult">
SELECT
id, patient_id, drug_code, drug_name, dosage,
execute_status, summary_apply_status, ward_id, create_time
FROM his_dispensing_record
<where>
<if test="wardId != null">
AND ward_id = #{wardId}
</if>
<if test="executeStatus != null">
AND execute_status = #{executeStatus}
</if>
<!-- 修复 Bug #503动态追加汇总申请状态过滤条件 -->
<if test="summaryApplyStatus != null">
AND summary_apply_status = #{summaryApplyStatus}
</if>
AND del_flag = 0
</where>
ORDER BY create_time DESC
</select>
</mapper>