diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/ProductDetailAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/ProductDetailAppServiceImpl.java index f33d5886..8444356f 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/ProductDetailAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/inventorymanage/appservice/impl/ProductDetailAppServiceImpl.java @@ -173,29 +173,47 @@ public class ProductDetailAppServiceImpl extends ServiceImpl @@ -247,22 +246,22 @@ LEFT JOIN adm_charge_item_definition acid ON wii.item_id = acid.instance_id AND acid.delete_flag = '0' - LEFT JOIN adm_charge_item_def_detail acidd - ON acid.id = acidd.definition_id - AND acidd.condition_value = wii.lot_number - AND acidd.delete_flag = '0' - LEFT JOIN adm_location al - ON wii.location_id = al.id - AND al.delete_flag = '0' - LEFT JOIN adm_location al2 - ON wii.location_store_id = al2.id - AND al2.delete_flag = '0' - LEFT JOIN adm_supplier as2 - ON wii.supplier_id = as2.id - AND as2.delete_flag = '0' - WHERE wii.item_table = #{medMedicationDefinition} - AND acidd.condition_code = #{lotNumberCost} - AND wii.delete_flag = '0' +LEFT JOIN adm_charge_item_def_detail acidd + ON acid.id = acidd.definition_id + AND acidd.condition_code = #{lotNumberCost} + AND acidd.condition_value = wii.lot_number + AND acidd.delete_flag = '0' + LEFT JOIN adm_location al + ON wii.location_id = al.id + AND al.delete_flag = '0' + LEFT JOIN adm_location al2 + ON wii.location_store_id = al2.id + AND al2.delete_flag = '0' + LEFT JOIN adm_supplier as2 + ON wii.supplier_id = as2.id + AND as2.delete_flag = '0' + WHERE wii.item_table = #{medMedicationDefinition} + AND wii.delete_flag = '0' UNION SELECT wii.id AS inventory_id, wii.production_date, @@ -318,9 +317,8 @@ LEFT JOIN adm_supplier as2 ON wii.supplier_id = as2.id AND as2.delete_flag = '0' - WHERE wii.item_table = #{admDeviceDefinition} - AND acidd.condition_code = #{lotNumberCost} - AND wii.delete_flag = '0') AS ii +WHERE wii.item_table = #{admDeviceDefinition} + AND wii.delete_flag = '0') AS ii LEFT JOIN sys_dict_data sdd ON ii.unit_code = sdd.dict_value AND sdd.dict_type = 'unit_code' LEFT JOIN sys_dict_data sdd2 ON ii.min_unit_code = sdd2.dict_value AND sdd2.dict_type = 'unit_code' diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/annotation/Dict.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/annotation/Dict.java index acc89138..1d5b0200 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/annotation/Dict.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/annotation/Dict.java @@ -11,4 +11,5 @@ public @interface Dict { String dictCode(); // 字典类型字段 String dictText() default ""; // 回显字段,默认为空 String dictTable() default ""; // 表名,默认为空 + String deleteFlag() default ""; // 删除标记字段名,默认为空(不过滤) } diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/aspectj/DictAspect.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/aspectj/DictAspect.java index 074343d7..4ee026fb 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/aspectj/DictAspect.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/aspectj/DictAspect.java @@ -95,8 +95,9 @@ public class DictAspect { String dictCode = dictAnnotation.dictCode(); String dictText = dictAnnotation.dictText(); String dictTable = dictAnnotation.dictTable(); + String deleteFlag = dictAnnotation.deleteFlag(); // 查询字典值 - String dictLabel = queryDictLabel(dictTable, dictCode, dictText, fieldValue.toString()); + String dictLabel = queryDictLabel(dictTable, dictCode, dictText, deleteFlag, fieldValue.toString()); if (dictLabel != null) { try { // 动态生成 _dictText 字段名 @@ -115,7 +116,7 @@ public class DictAspect { } } - private String queryDictLabel(String dictTable, String dictCode, String dictText, String dictValue) { + private String queryDictLabel(String dictTable, String dictCode, String dictText, String deleteFlag, String dictValue) { if (!StringUtils.hasText(dictTable)) { // 场景 1:默认字典走DictUtils缓存(dictTable 为空时) return DictUtils.getDictLabel(dictCode, dictValue); @@ -126,7 +127,15 @@ public class DictAspect { // 如果 dictText 为空,回退到字典缓存查询 return DictUtils.getDictLabel(dictCode, dictValue); } - String sql = String.format("SELECT %s FROM %s WHERE %s::varchar = ? LIMIT 1", dictText, dictTable, dictCode); + // 构建SQL,支持 delete_flag 过滤 + StringBuilder sqlBuilder = new StringBuilder(); + sqlBuilder.append(String.format("SELECT %s FROM %s WHERE %s::varchar = ?", dictText, dictTable, dictCode)); + // 如果指定了 deleteFlag 字段名,添加过滤条件 + if (StringUtils.hasText(deleteFlag)) { + sqlBuilder.append(String.format(" AND %s = '0'", deleteFlag)); + } + sqlBuilder.append(" LIMIT 1"); + String sql = sqlBuilder.toString(); try { return jdbcTemplate.queryForObject(sql, String.class, dictValue); } catch (DataAccessException e) { diff --git a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/portal.vue b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/portal.vue new file mode 100644 index 00000000..48b5a2c2 --- /dev/null +++ b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/portal.vue @@ -0,0 +1,157 @@ + + + + + \ No newline at end of file