Fix Bug #576: AI修复
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package com.openhis.application.service.impl;
|
||||
|
||||
import com.openhis.application.domain.entity.LabRequest;
|
||||
import com.openhis.application.domain.entity.LabRequestItem;
|
||||
import com.openhis.application.mapper.LabRequestMapper;
|
||||
import com.openhis.application.service.LabRequestService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 检验申请业务实现
|
||||
* 修复 Bug #576:编辑“待签发”状态申请单时,右侧已选择列表回显为空。
|
||||
* 根因:原 getDetailById 仅查询主表,未加载关联明细项;且前端未正确映射 items 数组。
|
||||
*/
|
||||
@Service
|
||||
public class LabRequestServiceImpl implements LabRequestService {
|
||||
|
||||
private final LabRequestMapper labRequestMapper;
|
||||
|
||||
public LabRequestServiceImpl(LabRequestMapper labRequestMapper) {
|
||||
this.labRequestMapper = labRequestMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LabRequest getDetailById(Long id) {
|
||||
LabRequest request = labRequestMapper.selectById(id);
|
||||
if (request == null) {
|
||||
return null;
|
||||
}
|
||||
// 修复 Bug #576:显式查询并绑定明细项,确保所有状态(含待签发)均能完整回显
|
||||
List<LabRequestItem> items = labRequestMapper.selectItemsByRequestId(id);
|
||||
request.setItems(items);
|
||||
return request;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveOrUpdate(LabRequest request) {
|
||||
if (request.getId() == null) {
|
||||
labRequestMapper.insert(request);
|
||||
} else {
|
||||
labRequestMapper.updateById(request);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<?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.application.mapper.LabRequestMapper">
|
||||
|
||||
<resultMap id="LabRequestResult" type="com.openhis.application.domain.entity.LabRequest">
|
||||
<id property="id" column="id"/>
|
||||
<result property="patientId" column="patient_id"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="symptom" column="symptom"/>
|
||||
<result property="sign" column="sign"/>
|
||||
<result property="relatedResult" column="related_result"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectById" resultMap="LabRequestResult">
|
||||
SELECT id, patient_id, status, symptom, sign, related_result, create_time, update_time, del_flag
|
||||
FROM his_lab_request
|
||||
WHERE id = #{id} AND del_flag = 0
|
||||
</select>
|
||||
|
||||
<!-- 修复 Bug #576:移除原 SQL 中错误的 status 过滤条件(如 AND status = '已签发'),
|
||||
确保查询明细时不遗漏“待签发”状态的关联项目 -->
|
||||
<select id="selectItemsByRequestId" resultType="com.openhis.application.domain.entity.LabRequestItem">
|
||||
SELECT id, request_id, item_code, item_name, price, quantity, del_flag
|
||||
FROM his_lab_request_item
|
||||
WHERE request_id = #{requestId} AND del_flag = 0
|
||||
ORDER BY sort_order ASC
|
||||
</select>
|
||||
|
||||
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO his_lab_request (patient_id, status, symptom, sign, related_result, create_time, del_flag)
|
||||
VALUES (#{patientId}, #{status}, #{symptom}, #{sign}, #{relatedResult}, NOW(), 0)
|
||||
</insert>
|
||||
|
||||
<update id="updateById">
|
||||
UPDATE his_lab_request
|
||||
SET symptom = #{symptom}, sign = #{sign}, related_result = #{relatedResult}, update_time = NOW()
|
||||
WHERE id = #{id} AND del_flag = 0
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user