Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -177,28 +177,9 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
List<
|
||||
AdviceInventoryDto> inventoryList =
|
||||
adviceInventory.stream()
|
||||
<<<<<<< HEAD
|
||||
.filter(e -> baseDto.getAdviceDefinitionId().equals(e.getItemId())
|
||||
&& baseDto.getAdviceTableName().equals(e.getItemTable()))
|
||||
.collect(Collectors.toList());
|
||||
// 当存在按科室配置时:仅保留被允许的药房/药库的库存;
|
||||
// 若该药品类别未在配置中出现,则视为不可开立(清空库存以便前端过滤掉)
|
||||
if (!allowedLocByCategory.isEmpty()) {
|
||||
Set<Long> allowedLoc =
|
||||
allowedLocByCategory.get(String.valueOf(baseDto.getCategoryCode()));
|
||||
if (allowedLoc == null || allowedLoc.isEmpty()) {
|
||||
inventoryList = Collections.emptyList();
|
||||
} else {
|
||||
inventoryList = inventoryList.stream()
|
||||
.filter(inv -> allowedLoc.contains(inv.getLocationId()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
=======
|
||||
.filter(e -> baseDto.getAdviceDefinitionId().equals(e.getItemId())
|
||||
&& baseDto.getAdviceTableName().equals(e.getItemTable()))
|
||||
.collect(Collectors.toList());
|
||||
>>>>>>> upstream/develop
|
||||
// 库存信息
|
||||
baseDto.setInventoryList(inventoryList);
|
||||
// 设置默认产品批号
|
||||
@@ -210,17 +191,6 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
baseDto.setDefaultLotNumber(hasInventoryList.get(0).getLotNumber());
|
||||
}
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
if (!inventoryList.isEmpty() && !allowedLocByCategory.isEmpty()) {
|
||||
Set<Long> allowedLoc =
|
||||
allowedLocByCategory.get(String.valueOf(baseDto.getCategoryCode()));
|
||||
if (allowedLoc != null && !allowedLoc.isEmpty()) {
|
||||
AdviceInventoryDto hit = inventoryList.stream()
|
||||
.filter(inv -> allowedLoc.contains(inv.getLocationId()))
|
||||
.findFirst().orElse(null);
|
||||
if (hit != null && hit.getLotNumber() != null) {
|
||||
baseDto.setDefaultLotNumber(hit.getLotNumber());
|
||||
=======
|
||||
if (!inventoryList.isEmpty() && !medLocationConfig.isEmpty()) {
|
||||
// 第一步:在medLocationConfig中匹配categoryCode
|
||||
AdviceInventoryDto result1 = medLocationConfig.stream()
|
||||
@@ -233,7 +203,6 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
.orElse(null);
|
||||
if (result2 != null && result2.getLotNumber() != null) {
|
||||
baseDto.setDefaultLotNumber(result2.getLotNumber());
|
||||
>>>>>>> upstream/develop
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,15 +179,9 @@ public class PaymentReconciliationController {
|
||||
* @return 操做结果
|
||||
*/
|
||||
@PostMapping("/reg-pay")
|
||||
<<<<<<< HEAD
|
||||
public R<?> regPay(@Valid @RequestBody OutpatientRegistrationSettleParam outpatientRegistrationSettleParam) {
|
||||
R<?> result = paymentReconciliationService.regPay(outpatientRegistrationSettleParam,
|
||||
outpatientRegistrationSettleParam.getChrgBchno(), outpatientRegistrationSettleParam.getPaymentDetails());
|
||||
=======
|
||||
public R<?> regPay(@Valid @RequestBody OutpatientRegistrationSettleParam outpatientRegistrationAddParam) {
|
||||
R<?> result = paymentReconciliationService.regPay(outpatientRegistrationAddParam,
|
||||
outpatientRegistrationAddParam.getChrgBchno(), outpatientRegistrationAddParam.getPaymentDetails());
|
||||
>>>>>>> upstream/develop
|
||||
// 付款成功后,开具发票
|
||||
if (result.getCode() == 200) {
|
||||
PaymentReconciliation paymentRecon = null;
|
||||
|
||||
@@ -62,11 +62,7 @@ spring:
|
||||
# redis 配置
|
||||
redis:
|
||||
# 地址
|
||||
<<<<<<< HEAD:openhis-server-new/openhis-application/src/main/resources/application-test.yml
|
||||
host: 192.168.110.252
|
||||
=======
|
||||
host: localhost
|
||||
>>>>>>> upstream/develop:openhis-server-new/openhis-application/src/main/resources/application-local.yml
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
|
||||
@@ -49,11 +49,7 @@ spring:
|
||||
# 国际化资源文件路径
|
||||
basename: i18n/messages
|
||||
profiles:
|
||||
<<<<<<< HEAD
|
||||
active: dev
|
||||
=======
|
||||
active: local # (本地)local (生产)prod
|
||||
>>>>>>> upstream/develop
|
||||
# 文件上传
|
||||
servlet:
|
||||
multipart:
|
||||
|
||||
@@ -77,11 +77,7 @@
|
||||
T2."name" AS item_name,
|
||||
T2.id AS item_id,
|
||||
T2.part_percent,
|
||||
<<<<<<< HEAD
|
||||
T2.manufacturer_text AS manufacturer_text,
|
||||
=======
|
||||
T2.manufacturer_text,
|
||||
>>>>>>> upstream/develop
|
||||
T3.total_volume,
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
@@ -97,23 +93,6 @@
|
||||
) AS total_quantity,
|
||||
T10."name" AS supplier_name
|
||||
FROM wor_supply_request T1
|
||||
<<<<<<< HEAD
|
||||
INNER JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
LEFT JOIN adm_supplier T10
|
||||
ON T1.supplier_id = T10.id
|
||||
=======
|
||||
INNER JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
@@ -136,7 +115,6 @@
|
||||
LEFT JOIN adm_supplier T10
|
||||
ON T1.supplier_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
>>>>>>> upstream/develop
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
@@ -158,11 +136,7 @@
|
||||
T8."name" AS item_name,
|
||||
T8.id AS item_id,
|
||||
T8.part_percent,
|
||||
<<<<<<< HEAD
|
||||
T8.manufacturer_text AS manufacturer_text,
|
||||
=======
|
||||
T8.manufacturer_text,
|
||||
>>>>>>> upstream/develop
|
||||
T8."size" AS total_volume,
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
@@ -175,118 +149,8 @@
|
||||
FROM wor_inventory_item T9
|
||||
WHERE T9.item_id = T1.item_id
|
||||
AND T9.location_id = T1.purpose_location_id
|
||||
<<<<<<< HEAD
|
||||
) AS total_quantity
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN adm_device_definition T8
|
||||
ON T1.item_id = T8.id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
LEFT JOIN adm_supplier T10
|
||||
ON T1.supplier_id = T10.id
|
||||
WHERE T1.bus_no = #{busNo}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.item_quantity,
|
||||
T1.item_table,
|
||||
T1.unit_code,
|
||||
T1.remake,
|
||||
T1.purpose_type_enum,
|
||||
T1.occurrence_time,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.invoice_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T1.price,
|
||||
T1.total_price,
|
||||
T2."name" AS item_name,
|
||||
T2.id AS item_id,
|
||||
T2.part_percent,
|
||||
T2.manufacturer_text AS manufacturer_text,
|
||||
T3.total_volume,
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
T6."id" AS purpose_location_id,
|
||||
T7."name" AS purpose_location_store_name,
|
||||
T1.supplier_id AS supplierId,
|
||||
T10."name" AS supplier_name,
|
||||
(SELECT SUM(T9.quantity)
|
||||
FROM wor_inventory_item T9
|
||||
WHERE T9.item_id = T1.item_id
|
||||
AND T9.location_id = T1.purpose_location_id
|
||||
) AS total_quantity
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN med_medication_definition T2
|
||||
ON T1.item_id = T2.id
|
||||
LEFT JOIN med_medication T3
|
||||
ON T3.medication_def_id = T2.id
|
||||
LEFT JOIN adm_practitioner T5
|
||||
ON T1.practitioner_id = T5.id
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.purpose_location_id = T6.id
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.purpose_location_store_id = T7.id
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
LEFT JOIN adm_supplier T10
|
||||
ON T1.supplier_id = T10.id
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
SELECT T1.id,
|
||||
T1.bus_no,
|
||||
T1.item_quantity,
|
||||
T1.item_table,
|
||||
T1.unit_code,
|
||||
T1.remake,
|
||||
T1.purpose_type_enum,
|
||||
T1.occurrence_time,
|
||||
T1.lot_number,
|
||||
T1.trace_no,
|
||||
T1.invoice_no,
|
||||
T1.start_time,
|
||||
T1.end_time,
|
||||
T1.price,
|
||||
T1.total_price,
|
||||
T8."name" AS item_name,
|
||||
T8.id AS item_id,
|
||||
T8.part_percent,
|
||||
T8.manufacturer_text AS manufacturer_text,
|
||||
T8."size" AS total_volume,
|
||||
T5."name" AS practitioner_name,
|
||||
T6."name" AS purpose_location_name,
|
||||
T6."id" AS purpose_location_id,
|
||||
T7."name" AS purpose_location_store_name,
|
||||
T1.supplier_id AS supplierId,
|
||||
T10."name" AS supplier_name,
|
||||
(SELECT SUM(T9.quantity)
|
||||
FROM wor_inventory_item T9
|
||||
WHERE T9.item_id = T1.item_id
|
||||
AND T9.location_id = T1.purpose_location_id
|
||||
) AS total_quantity
|
||||
=======
|
||||
) AS total_quantity,
|
||||
T10."name" AS supplier_name
|
||||
>>>>>>> upstream/develop
|
||||
FROM wor_supply_request T1
|
||||
INNER JOIN adm_device_definition T8
|
||||
ON T1.item_id = T8.id
|
||||
@@ -303,10 +167,6 @@
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
<<<<<<< HEAD
|
||||
LEFT JOIN adm_supplier T10
|
||||
ON T1.supplier_id = T10.id
|
||||
=======
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier T10
|
||||
ON T1.supplier_id = T10.id
|
||||
@@ -358,7 +218,6 @@
|
||||
LEFT JOIN wor_inventory_item T9
|
||||
ON T1.item_id = T9.item_id
|
||||
AND T1.purpose_location_id = T9.location_id
|
||||
>>>>>>> upstream/develop
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum IN
|
||||
|
||||
@@ -93,19 +93,7 @@
|
||||
T13.charge_item_ids,
|
||||
T13.id AS payment_id,
|
||||
ai.picture_url AS picture_url,
|
||||
<<<<<<< HEAD
|
||||
T8.birth_date AS birth_date,
|
||||
-- 退号相关信息
|
||||
T14.bill_date AS return_date,
|
||||
T14.refund_reason AS return_reason,
|
||||
T15."name" AS operator_name,
|
||||
T17.user_name AS operator_id,
|
||||
ABS(T14.display_amount) AS refund_amount,
|
||||
T6.contract_no AS contract_no,
|
||||
T16.refund_method AS refund_method
|
||||
=======
|
||||
T8.birth_date AS birth_date
|
||||
>>>>>>> upstream/develop
|
||||
FROM adm_encounter AS T1
|
||||
LEFT JOIN adm_organization AS T2 ON T1.organization_id = T2.ID AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_healthcare_service AS T3 ON T1.service_type_id = T3.ID AND T3.delete_flag = '0'
|
||||
|
||||
@@ -43,368 +43,6 @@
|
||||
abi.restricted_scope,
|
||||
abi.dosage_instruction
|
||||
from (
|
||||
<<<<<<< HEAD
|
||||
<!-- 改进SQL逻辑,确保所有情况都能正确处理,避免空的FROM子查询 -->
|
||||
<!-- 当adviceTypes包含4或不在1-3范围内时,或者adviceTypes为空/null时,查询所有类型 -->
|
||||
<choose>
|
||||
<!-- 检查adviceTypes是否为null、空列表,或者包含4、5或其他不在1-3范围内的值 -->
|
||||
<when test="adviceTypes == null or adviceTypes.isEmpty() or adviceTypes.contains(4) or adviceTypes.contains(5)">
|
||||
<!-- 查询所有类型 -->
|
||||
SELECT T1.tenant_id,
|
||||
1 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
T1.pharmacology_category_code AS pharmacology_category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
T1.unit_conversion_ratio AS unit_conversion_ratio,
|
||||
T1.part_attribute_enum AS part_attribute_enum,
|
||||
T1.tho_part_attribute_enum AS tho_part_attribute_enum,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.inject_flag AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
T1.merchandise_name AS product_name,
|
||||
0 AS activity_type,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T2.total_volume AS volume,
|
||||
T2.method_code AS method_code,
|
||||
T2.rate_code AS rate_code,
|
||||
T2.org_id AS org_id,
|
||||
T2.location_id AS location_id,
|
||||
CAST(T2.dose AS TEXT) AS dose,
|
||||
T2.dose_unit_code AS dose_unit_code,
|
||||
T3.NAME AS supplier,
|
||||
T3.id AS supplier_id,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T5.id AS charge_item_definition_id,
|
||||
T5.instance_table AS advice_table_name,
|
||||
T6.def_location_id AS position_id,
|
||||
t1.restricted_flag AS restricted_flag,
|
||||
t1.restricted_scope AS restricted_scope
|
||||
FROM med_medication_definition AS t1
|
||||
INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
|
||||
AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
|
||||
LEFT JOIN adm_supplier AS T3
|
||||
ON T3.ID = T1.supply_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T6
|
||||
ON T6.distribution_category_code = T1.category_code
|
||||
AND T6.delete_flag = '0' AND T6.organization_id = #{organizationId} AND
|
||||
(CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T2.status_enum = #{statusEnum}
|
||||
<if test="pricingFlag ==1">
|
||||
AND 1 = 2
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T5.instance_table = #{medicationTableName}
|
||||
UNION ALL
|
||||
SELECT T1.tenant_id,
|
||||
2 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
'' AS pharmacology_category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
0 AS unit_conversion_ratio,
|
||||
null AS part_attribute_enum,
|
||||
null AS tho_part_attribute_enum,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
0 AS activity_type,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T1.SIZE AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
T1.org_id AS org_id,
|
||||
T1.location_id AS location_id,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
T2.NAME AS supplier,
|
||||
T2.id AS supplier_id,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T4.id AS charge_item_definition_id,
|
||||
T4.instance_table AS advice_table_name,
|
||||
T5.def_location_id AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope
|
||||
FROM adm_device_definition AS T1
|
||||
LEFT JOIN adm_supplier AS T2
|
||||
ON T2.ID = T1.supply_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code
|
||||
AND T5.delete_flag = '0' AND T5.organization_id = #{organizationId} AND
|
||||
(CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T4.instance_table = #{deviceTableName}
|
||||
AND T1.category_code = #{singleUse}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
UNION ALL
|
||||
SELECT T1.tenant_id,
|
||||
3 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
'' AS pharmacology_category_code,
|
||||
1 AS part_percent,
|
||||
0 AS unit_conversion_ratio,
|
||||
null AS part_attribute_enum,
|
||||
null AS tho_part_attribute_enum,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
T1.type_enum AS activity_type,
|
||||
'' AS unit_code,
|
||||
'' AS min_unit_code,
|
||||
'' AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
T1.org_id AS org_id,
|
||||
T1.location_id AS location_id,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
'' AS supplier,
|
||||
null AS supplier_id,
|
||||
'' AS manufacturer,
|
||||
T2.ID AS charge_item_definition_id,
|
||||
T2.instance_table AS advice_table_name,
|
||||
COALESCE(T3.organization_id, T1.org_id) AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope
|
||||
FROM wor_activity_definition AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2
|
||||
ON T2.instance_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = T1.ID
|
||||
AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="pricingFlag ==1">
|
||||
AND T1.pricing_flag = #{pricingFlag}
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T2.instance_table = #{activityTableName}
|
||||
</when>
|
||||
<otherwise>
|
||||
<!-- 当adviceTypes不为null且不为空,且只包含1、2、3时,根据选中的类型查询 -->
|
||||
<!-- 确保至少有一个类型被选中,避免空查询 -->
|
||||
<if test="adviceTypes.contains(1) or adviceTypes.contains(2) or adviceTypes.contains(3)">
|
||||
<if test="adviceTypes.contains(1)">
|
||||
SELECT T1.tenant_id,
|
||||
1 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
T1.pharmacology_category_code AS pharmacology_category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
T1.unit_conversion_ratio AS unit_conversion_ratio,
|
||||
T1.part_attribute_enum AS part_attribute_enum,
|
||||
T1.tho_part_attribute_enum AS tho_part_attribute_enum,
|
||||
T1.skin_test_flag AS skin_test_flag,
|
||||
T1.inject_flag AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
T1.merchandise_name AS product_name,
|
||||
0 AS activity_type,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T2.total_volume AS volume,
|
||||
T2.method_code AS method_code,
|
||||
T2.rate_code AS rate_code,
|
||||
T2.org_id AS org_id,
|
||||
T2.location_id AS location_id,
|
||||
CAST(T2.dose AS TEXT) AS dose,
|
||||
T2.dose_unit_code AS dose_unit_code,
|
||||
T3.NAME AS supplier,
|
||||
T3.id AS supplier_id,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T5.id AS charge_item_definition_id,
|
||||
T5.instance_table AS advice_table_name,
|
||||
T6.def_location_id AS position_id,
|
||||
t1.restricted_flag AS restricted_flag,
|
||||
t1.restricted_scope AS restricted_scope
|
||||
FROM med_medication_definition AS t1
|
||||
INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
|
||||
AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
|
||||
LEFT JOIN adm_supplier AS T3
|
||||
ON T3.ID = T1.supply_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T6
|
||||
ON T6.distribution_category_code = T1.category_code
|
||||
AND T6.delete_flag = '0' AND T6.organization_id = #{organizationId} AND
|
||||
(CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T2.status_enum = #{statusEnum}
|
||||
<if test="pricingFlag ==1">
|
||||
AND 1 = 2
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T5.instance_table = #{medicationTableName}
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes.contains(1) and (adviceTypes.contains(2) or adviceTypes.contains(3))">UNION ALL</if>
|
||||
|
||||
<if test="adviceTypes.contains(2)">
|
||||
SELECT T1.tenant_id,
|
||||
2 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
'' AS pharmacology_category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
0 AS unit_conversion_ratio,
|
||||
null AS part_attribute_enum,
|
||||
null AS tho_part_attribute_enum,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
0 AS activity_type,
|
||||
T1.unit_code AS unit_code,
|
||||
T1.min_unit_code AS min_unit_code,
|
||||
T1.SIZE AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
T1.org_id AS org_id,
|
||||
T1.location_id AS location_id,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
T2.NAME AS supplier,
|
||||
T2.id AS supplier_id,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T4.id AS charge_item_definition_id,
|
||||
T4.instance_table AS advice_table_name,
|
||||
T5.def_location_id AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope
|
||||
FROM adm_device_definition AS T1
|
||||
LEFT JOIN adm_supplier AS T2
|
||||
ON T2.ID = T1.supply_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code
|
||||
AND T5.delete_flag = '0' AND T5.organization_id = #{organizationId} AND
|
||||
(CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T4.instance_table = #{deviceTableName}
|
||||
AND T1.category_code = #{singleUse}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
</if>
|
||||
|
||||
<if test="adviceTypes.contains(2) and adviceTypes.contains(3)">UNION ALL</if>
|
||||
|
||||
<if test="adviceTypes.contains(3)">
|
||||
SELECT T1.tenant_id,
|
||||
3 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
'' AS pharmacology_category_code,
|
||||
1 AS part_percent,
|
||||
0 AS unit_conversion_ratio,
|
||||
null AS part_attribute_enum,
|
||||
null AS tho_part_attribute_enum,
|
||||
null AS skin_test_flag,
|
||||
null AS inject_flag,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
T1.py_str AS py_str,
|
||||
T1.wb_str AS wb_str,
|
||||
T1.yb_no AS yb_no,
|
||||
'' AS product_name,
|
||||
T1.type_enum AS activity_type,
|
||||
'' AS unit_code,
|
||||
'' AS min_unit_code,
|
||||
'' AS volume,
|
||||
'' AS method_code,
|
||||
'' AS rate_code,
|
||||
T1.org_id AS org_id,
|
||||
T1.location_id AS location_id,
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
'' AS supplier,
|
||||
null AS supplier_id,
|
||||
'' AS manufacturer,
|
||||
T2.ID AS charge_item_definition_id,
|
||||
T2.instance_table AS advice_table_name,
|
||||
COALESCE(T3.organization_id, T1.org_id) AS position_id,
|
||||
0 AS restricted_flag,
|
||||
'' AS restricted_scope
|
||||
FROM wor_activity_definition AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2
|
||||
ON T2.instance_id = T1.ID
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = T1.ID
|
||||
AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
<if test="pricingFlag ==1">
|
||||
AND T1.pricing_flag = #{pricingFlag}
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T2.instance_table = #{activityTableName}
|
||||
</if>
|
||||
</if>
|
||||
</otherwise>
|
||||
</choose>
|
||||
=======
|
||||
<if test="adviceTypes == null or adviceTypes.contains(1)">
|
||||
(SELECT
|
||||
DISTINCT ON (T1.ID)
|
||||
@@ -603,7 +241,6 @@
|
||||
AND T2.instance_table = #{activityTableName}
|
||||
)
|
||||
</if>
|
||||
>>>>>>> upstream/develop
|
||||
) AS abi
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
@@ -4,159 +4,6 @@
|
||||
|
||||
<select id="selectProductReportPage"
|
||||
resultType="com.openhis.web.reportmanage.dto.InventoryProductReportPageDto">
|
||||
<<<<<<< HEAD
|
||||
SELECT *
|
||||
FROM (
|
||||
SELECT T8.id, --ID
|
||||
T8.bus_no, --药品编码
|
||||
T8.name, --药品名称
|
||||
T8.lot_number, --批次号
|
||||
T8.manufacturer_text, --厂家
|
||||
T8.item_table, --药品类型
|
||||
T8.item_quantity, --库存数量
|
||||
T8.unit_code, --计量单位
|
||||
T8.min_package_quantity, --小包装库存数
|
||||
T8.min_package_unit, --小包装单位
|
||||
T8.price, --进价
|
||||
T8.sale_price, --售价
|
||||
T8.price * T8.part_percent AS part_price, --拆零进价
|
||||
T8.sale_price * T8.part_percent AS part_sale_price, --拆零售价
|
||||
T8.price * T8.item_quantity AS total_price, --进价金额(总价)
|
||||
T8.sale_price * T8.item_quantity AS total_sale_price, --售价金额(总价)
|
||||
T8.purpose_type_enum, --仓库类型
|
||||
T8.location_name, --仓库名称
|
||||
T8.location_store_name, --货位名称
|
||||
T8.purpose_location_id, --仓库ID
|
||||
T8.expiration_date, --有效期
|
||||
T8.yb_no, --医保编码
|
||||
T8.tenant_id, -- 租户ID
|
||||
CAST(T8.item_table AS INTEGER) AS category_type -- 项目类型(按分类编码,整型)
|
||||
FROM (SELECT T1.id, --ID
|
||||
T2.bus_no, --药品编码
|
||||
T2.name, --药品名称
|
||||
T1.lot_number, --批次号
|
||||
T2.manufacturer_text, --厂家
|
||||
T2.category_code AS item_table, --药品类型
|
||||
T1.quantity AS item_quantity, --库存数量
|
||||
T2.unit_code, --计量单位
|
||||
T1.quantity AS min_package_quantity, --小包装库存数
|
||||
T2.min_unit_code AS min_package_unit, --小包装单位
|
||||
T1.price, --进价
|
||||
CASE
|
||||
WHEN T4.condition_code = #{lotNumber}
|
||||
AND T4.condition_value = T1.lot_number
|
||||
THEN T4.amount
|
||||
ELSE T3.price END AS sale_price, --售价
|
||||
T2.part_percent, --拆零比
|
||||
T6.form_enum AS purpose_type_enum, --仓库类型
|
||||
T6.name AS location_name, --仓库名称
|
||||
T7.name AS location_store_name, --货位名称
|
||||
T1.location_id AS purpose_location_id, --仓库ID
|
||||
T1.expiration_date, --有效期
|
||||
T2.yb_no, --医保编码
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_inventory_item AS T1
|
||||
INNER JOIN med_medication_definition AS T2
|
||||
ON T2.id = T1.item_id
|
||||
AND T2.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item_definition AS T3
|
||||
ON T3.instance_id = T2.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.location_store_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0') AS T8
|
||||
UNION
|
||||
SELECT T10.id, --ID
|
||||
T10.bus_no, --器材编码
|
||||
T10.name, --器材名称
|
||||
T10.lot_number, --批次号
|
||||
T10.manufacturer_text, --厂家
|
||||
T10.item_table, --器材类型
|
||||
T10.item_quantity, --库存数量
|
||||
T10.unit_code, --计量单位
|
||||
T10.min_package_quantity, --小包装库存数
|
||||
T10.min_package_unit, --小包装单位
|
||||
T10.price, --进价
|
||||
T10.sale_price, --售价
|
||||
T10.price * T10.part_percent AS part_price, --拆零进价
|
||||
T10.sale_price * T10.part_percent AS part_sale_price, --拆零售价
|
||||
T10.price * T10.item_quantity AS total_price, --进价金额(总价)
|
||||
T10.sale_price * T10.item_quantity AS total_sale_price, --售价金额(总价)
|
||||
T10.purpose_type_enum, --仓库类型
|
||||
T10.location_name, --仓库名称
|
||||
T10.location_store_name, --货位名称
|
||||
T10.purpose_location_id, --仓库ID
|
||||
T10.expiration_date, --有效期
|
||||
T10.yb_no, --医保编码
|
||||
T10.tenant_id, -- 租户ID
|
||||
CAST(T10.item_table AS INTEGER) AS category_type -- 项目类型(按分类编码,整型)
|
||||
FROM (SELECT T1.id, --ID
|
||||
T9.bus_no, --药品编码
|
||||
T9.name, --药品名称
|
||||
T1.lot_number, --批次号
|
||||
T9.manufacturer_text, --厂家
|
||||
T9.category_code AS item_table, --药品类型
|
||||
T1.quantity AS item_quantity, --库存数量
|
||||
T9.unit_code, --计量单位
|
||||
T1.quantity AS min_package_quantity, --小包装库存数
|
||||
T9.min_unit_code AS min_package_unit, --小包装单位
|
||||
T1.price, --进价
|
||||
CASE
|
||||
WHEN T4.condition_code = #{lotNumber}
|
||||
AND T4.condition_value = T1.lot_number
|
||||
THEN T4.amount
|
||||
ELSE T3.price END AS sale_price, --售价
|
||||
T9.part_percent, --拆零比
|
||||
T6.form_enum AS purpose_type_enum, --仓库类型
|
||||
T6.name AS location_name, --仓库名称
|
||||
T7.name AS location_store_name, --货位名称
|
||||
T1.location_id AS purpose_location_id, --仓库ID
|
||||
T1.expiration_date, --有效期
|
||||
T9.yb_no, --医保编码
|
||||
T1.tenant_id -- 租户ID
|
||||
FROM wor_inventory_item AS T1
|
||||
INNER JOIN adm_device_definition AS T9
|
||||
ON T9.id = T1.item_id
|
||||
AND T9.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item_definition AS T3
|
||||
ON T3.instance_id = T9.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_def_detail AS T4
|
||||
ON T4.definition_id = T3.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_location T6
|
||||
ON T1.location_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_location T7
|
||||
ON T1.location_store_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0') AS T10
|
||||
) AS T
|
||||
${ew.customSqlSegment}
|
||||
<if test="inventoryScope != null">
|
||||
<choose>
|
||||
<when test="inventoryScope == 2">
|
||||
AND item_quantity = 0
|
||||
</when>
|
||||
<when test="inventoryScope == 3">
|
||||
AND item_quantity > 0
|
||||
</when>
|
||||
<when test="inventoryScope == 4">
|
||||
AND item_quantity <![CDATA[ <= ]]> 20
|
||||
</when>
|
||||
<when test="inventoryScope == 5">
|
||||
AND item_quantity <![CDATA[ <= ]]> 50
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
=======
|
||||
-- SELECT T8.id, --ID
|
||||
-- T8.bus_no, --药品编码
|
||||
-- T8.name, --药品名称
|
||||
@@ -282,6 +129,5 @@
|
||||
-- AND T7.delete_flag = '0'
|
||||
-- WHERE T1.delete_flag = '0') AS T10
|
||||
-- ${ew.customSqlSegment}
|
||||
>>>>>>> upstream/develop
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user