feat(doctorstation): 优化医生工作站处方列表功能
- 调整诊疗定义表结构,添加序号和服务范围字段 - 修改费用项目查询逻辑,使用INNER JOIN替代LEFT JOIN并优化排序 - 增加批处理批次大小从500到1000,提升查询性能 - 修复处方类型筛选中的诊疗和耗材顺序错误 - 优化处方行数据重置逻辑,避免残留数据问题 - 移除不必要的README标题元素
This commit is contained in:
@@ -191,8 +191,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
// 费用定价子表信息 - 使用分批处理避免大量参数问题
|
||||
List<AdvicePriceDto> childCharge = new ArrayList<>();
|
||||
if (chargeItemDefinitionIdList != null && !chargeItemDefinitionIdList.isEmpty()) {
|
||||
// 分批处理,每批最多500个ID
|
||||
int batchSize = 500;
|
||||
// 分批处理,每批最多1000个ID,增加批次大小以减少查询次数
|
||||
int batchSize = 1000;
|
||||
for (int i = 0; i < chargeItemDefinitionIdList.size(); i += batchSize) {
|
||||
int endIndex = Math.min(i + batchSize, chargeItemDefinitionIdList.size());
|
||||
List<Long> batch = chargeItemDefinitionIdList.subList(i, endIndex);
|
||||
|
||||
@@ -395,20 +395,18 @@
|
||||
T1.condition_value,
|
||||
T1.condition_code,
|
||||
T1.amount AS price
|
||||
FROM
|
||||
adm_charge_item_def_detail AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2 ON T2.ID = T1.definition_id
|
||||
AND T2.delete_flag = '0'
|
||||
WHERE
|
||||
T1.delete_flag = '0'
|
||||
AND T1.condition_code = #{conditionCode}
|
||||
FROM adm_charge_item_def_detail AS T1
|
||||
INNER JOIN adm_charge_item_definition AS T2 ON T2.ID = T1.definition_id
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T2.delete_flag = '0'
|
||||
AND T1.condition_code = #{conditionCode}
|
||||
<if test="chargeItemDefinitionIdList != null and !chargeItemDefinitionIdList.isEmpty()">
|
||||
AND T1.definition_id IN
|
||||
<foreach collection="chargeItemDefinitionIdList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
ORDER BY T1.priority DESC
|
||||
ORDER BY T1.priority DESC, T1.definition_id
|
||||
</select>
|
||||
|
||||
<select id="getMainCharge" resultType="com.openhis.web.doctorstation.dto.AdvicePriceDto">
|
||||
|
||||
Reference in New Issue
Block a user