提交merge1.3
This commit is contained in:
@@ -11,7 +11,6 @@ public enum TenantOptionDict {
|
|||||||
* 医院名称
|
* 医院名称
|
||||||
*/
|
*/
|
||||||
YB_HOSPITAL_NAME("hospitalName", "医保-医院名称", 0),
|
YB_HOSPITAL_NAME("hospitalName", "医保-医院名称", 0),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 医保-医疗机构等级(3101接口)
|
* 医保-医疗机构等级(3101接口)
|
||||||
*/
|
*/
|
||||||
@@ -24,37 +23,30 @@ public enum TenantOptionDict {
|
|||||||
* 电子发票appid
|
* 电子发票appid
|
||||||
*/
|
*/
|
||||||
EINVOICE_APP_ID("app_id", "电子发票-appid", 3),
|
EINVOICE_APP_ID("app_id", "电子发票-appid", 3),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电子发票key
|
* 电子发票key
|
||||||
*/
|
*/
|
||||||
EINVOICE_KEY("key", "电子发票-key", 4),
|
EINVOICE_KEY("key", "电子发票-key", 4),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电子发票url
|
* 电子发票url
|
||||||
*/
|
*/
|
||||||
EINVOICE_URL("url", "电子发票-url", 5),
|
EINVOICE_URL("url", "电子发票-url", 5),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 医保开关
|
* 医保开关
|
||||||
*/
|
*/
|
||||||
YB_SWITCH("yb_switch", "医保开关", 6),
|
YB_SWITCH("yb_switch", "医保开关", 6),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电子地址
|
* 电子地址
|
||||||
*/
|
*/
|
||||||
ELE_ADDRESS("eleAddress", "电子处方-请求地址", 22),
|
ELE_ADDRESS("eleAddress", "电子处方-请求地址", 22),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 服务地址
|
* 服务地址
|
||||||
*/
|
*/
|
||||||
ADDRESS("address", "服务地址", 23),
|
ADDRESS("address", "服务地址", 23),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 超时时间
|
* 超时时间
|
||||||
*/
|
*/
|
||||||
TIME("time", "超时时间", 24),
|
TIME("time", "超时时间", 24),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否加密
|
* 是否加密
|
||||||
*/
|
*/
|
||||||
@@ -63,32 +55,26 @@ public enum TenantOptionDict {
|
|||||||
* 医保区划
|
* 医保区划
|
||||||
*/
|
*/
|
||||||
YB_INSUPLC_ADMDVS("insuplc_admdvs", "医保-区划", 26),
|
YB_INSUPLC_ADMDVS("insuplc_admdvs", "医保-区划", 26),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电子处方appId
|
* 电子处方appId
|
||||||
*/
|
*/
|
||||||
ELE_PRE_APP_ID("pre_app_id", "电子处方-appId", 27),
|
ELE_PRE_APP_ID("pre_app_id", "电子处方-appId", 27),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电子处方appSecret
|
* 电子处方appSecret
|
||||||
*/
|
*/
|
||||||
ELE_PRE_APP_SECRET("pre_app_secret", "电子处方-appSecret", 28),
|
ELE_PRE_APP_SECRET("pre_app_secret", "电子处方-appSecret", 28),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电子处方私钥
|
* 电子处方私钥
|
||||||
*/
|
*/
|
||||||
ELE_APP_PRVKEY("APP_PRVKEY", "电子处方-私钥", 29),
|
ELE_APP_PRVKEY("APP_PRVKEY", "电子处方-私钥", 29),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电子处方公钥
|
* 电子处方公钥
|
||||||
*/
|
*/
|
||||||
ELE_PLAF_PUBKEY("PLAF_PUBKEY", "电子处方-公钥", 30),
|
ELE_PLAF_PUBKEY("PLAF_PUBKEY", "电子处方-公钥", 30),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 医院等级
|
* 医院等级
|
||||||
*/
|
*/
|
||||||
EINVOICE_HOSPITAL_LV("hospital_lv", "电子发票-医院等级", 39),
|
EINVOICE_HOSPITAL_LV("hospital_lv", "电子发票-医院等级", 39),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 无视LIS&PACS报错
|
* 无视LIS&PACS报错
|
||||||
*/
|
*/
|
||||||
@@ -160,27 +146,14 @@ public enum TenantOptionDict {
|
|||||||
/**
|
/**
|
||||||
* 电子发票开关
|
* 电子发票开关
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
INVOICE_SWITCH("invoiceSwitch", "电子发票开关 (0:关闭 1:开启)", 56),
|
|
||||||
=======
|
|
||||||
INVOICE_SWITCH("invoiceSwitch", "电子发票开关", 56),
|
INVOICE_SWITCH("invoiceSwitch", "电子发票开关", 56),
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 医嘱定价来源
|
* 医嘱定价来源
|
||||||
*/
|
*/
|
||||||
ORDER_PRICING_SOURCE("orderPricingSource", "定价来源 batchSellingPrice/retailPrice", 57),
|
ORDER_PRICING_SOURCE("orderPricingSource", "定价来源 batchSellingPrice/retailPrice", 57),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三方支付(签到)
|
* 三方支付(签到)
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
THREE_PART_SIGN_URL("threePartSignUrl", "三方支付GET请求", 58),
|
|
||||||
/**
|
|
||||||
* 三方支付(消费)
|
|
||||||
*/
|
|
||||||
THREE_PART_PAY_URL("threePartPayUrl", "三方支付GET请求", 59),
|
|
||||||
=======
|
|
||||||
THREE_PART_SIGN_URL("threePartSignUrl", "三方支付【签到】请求路径", 58),
|
THREE_PART_SIGN_URL("threePartSignUrl", "三方支付【签到】请求路径", 58),
|
||||||
/**
|
/**
|
||||||
* 三方支付(签到)
|
* 三方支付(签到)
|
||||||
@@ -210,14 +183,9 @@ public enum TenantOptionDict {
|
|||||||
* 三方支付(消费)
|
* 三方支付(消费)
|
||||||
*/
|
*/
|
||||||
THREE_PART_PAY_MAPPING_METHOD("threePartPayMappingMethod", "三方支付【消费】请求方式", 65),
|
THREE_PART_PAY_MAPPING_METHOD("threePartPayMappingMethod", "三方支付【消费】请求方式", 65),
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三方支付(退费)
|
* 三方支付(退费)
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
THREE_PART_RETURN_URL("threePartReturnUrl", "三方支付GET请求", 60),
|
|
||||||
=======
|
|
||||||
THREE_PART_RETURN_URL("threePartReturnUrl", "三方支付【退费】请求路径", 66),
|
THREE_PART_RETURN_URL("threePartReturnUrl", "三方支付【退费】请求路径", 66),
|
||||||
/**
|
/**
|
||||||
* 三方支付(退费)
|
* 三方支付(退费)
|
||||||
@@ -231,14 +199,9 @@ public enum TenantOptionDict {
|
|||||||
* 三方支付(退费)
|
* 三方支付(退费)
|
||||||
*/
|
*/
|
||||||
THREE_PART_RETURN_MAPPING_METHOD("threePartReturnMappingMethod", "三方支付【退费】请求方式", 69),
|
THREE_PART_RETURN_MAPPING_METHOD("threePartReturnMappingMethod", "三方支付【退费】请求方式", 69),
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三方支付(隔天退费)
|
* 三方支付(隔天退费)
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
THREE_PART_NEXT_DAY_RETURN_URL("threePartNextDayReturnUrl", "三方支付GET请求", 61),
|
|
||||||
=======
|
|
||||||
THREE_PART_NEXT_DAY_RETURN_URL("threePartNextDayReturnUrl", "三方支付【隔天退费】请求路径", 70),
|
THREE_PART_NEXT_DAY_RETURN_URL("threePartNextDayReturnUrl", "三方支付【隔天退费】请求路径", 70),
|
||||||
/**
|
/**
|
||||||
* 三方支付(隔天退费)
|
* 三方支付(隔天退费)
|
||||||
@@ -252,14 +215,9 @@ public enum TenantOptionDict {
|
|||||||
* 三方支付(隔天退费)
|
* 三方支付(隔天退费)
|
||||||
*/
|
*/
|
||||||
THREE_PART_NEXT_DAY_RETURN_MAPPING_METHOD("threePartNextDayReturnMappingMethod", "三方支付【隔天退费】请求方式", 73),
|
THREE_PART_NEXT_DAY_RETURN_MAPPING_METHOD("threePartNextDayReturnMappingMethod", "三方支付【隔天退费】请求方式", 73),
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三方支付路径(支付结果查询)
|
* 三方支付路径(支付结果查询)
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
THREE_PART_PAY_QUERY_URL("threePartPayQueryUrl", "三方支付GET请求", 62),
|
|
||||||
=======
|
|
||||||
THREE_PART_PAY_QUERY_URL("threePartPayQueryUrl", "三方支付【支付结果查询】请求路径", 74),
|
THREE_PART_PAY_QUERY_URL("threePartPayQueryUrl", "三方支付【支付结果查询】请求路径", 74),
|
||||||
/**
|
/**
|
||||||
* 三方支付(支付结果查询)
|
* 三方支付(支付结果查询)
|
||||||
@@ -273,14 +231,9 @@ public enum TenantOptionDict {
|
|||||||
* 三方支付(支付结果查询)
|
* 三方支付(支付结果查询)
|
||||||
*/
|
*/
|
||||||
THREE_PART_PAY_QUERY_MAPPING_METHOD("threePartPayQueryMappingMethod", "三方支付【支付结果查询】请求方式", 77),
|
THREE_PART_PAY_QUERY_MAPPING_METHOD("threePartPayQueryMappingMethod", "三方支付【支付结果查询】请求方式", 77),
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三方支付路径(退费结果查询)
|
* 三方支付路径(退费结果查询)
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
THREE_PART_RETURN_QUERY_URL("threePartReturnQueryUrl", "三方支付GET请求", 63),
|
|
||||||
=======
|
|
||||||
THREE_PART_RETURN_QUERY_URL("threePartReturnQueryUrl", "三方支付【退费结果查询】请求路径", 78),
|
THREE_PART_RETURN_QUERY_URL("threePartReturnQueryUrl", "三方支付【退费结果查询】请求路径", 78),
|
||||||
/**
|
/**
|
||||||
* 三方支付(退费结果查询)
|
* 三方支付(退费结果查询)
|
||||||
@@ -294,19 +247,9 @@ public enum TenantOptionDict {
|
|||||||
* 三方支付(退费结果查询)
|
* 三方支付(退费结果查询)
|
||||||
*/
|
*/
|
||||||
THREE_PART_RETURN_QUERY_MAPPING_METHOD("threePartReturnQueryMappingMethod", "三方支付【退费结果查询】请求方式", 81),
|
THREE_PART_RETURN_QUERY_MAPPING_METHOD("threePartReturnQueryMappingMethod", "三方支付【退费结果查询】请求方式", 81),
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三方支付路径(隔天退费结果查询)
|
* 三方支付路径(隔天退费结果查询)
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
THREE_PART_NEXT_DAY_RETURN_QUERY_URL("threePartNextDayReturnQueryUrl", "三方支付GET请求", 64),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 三方支付参数
|
|
||||||
*/
|
|
||||||
THREE_PART_PARAM("threePartParam", "三方支付GET请求", 65);
|
|
||||||
=======
|
|
||||||
THREE_PART_NEXT_DAY_RETURN_QUERY_URL("threePartNextDayReturnQueryUrl", "三方支付【隔天退费结果查询】请求路径", 82),
|
THREE_PART_NEXT_DAY_RETURN_QUERY_URL("threePartNextDayReturnQueryUrl", "三方支付【隔天退费结果查询】请求路径", 82),
|
||||||
/**
|
/**
|
||||||
* 三方支付(隔天退费结果查询)
|
* 三方支付(隔天退费结果查询)
|
||||||
@@ -321,7 +264,6 @@ public enum TenantOptionDict {
|
|||||||
*/
|
*/
|
||||||
THREE_PART_NEXT_DAY_RETURN_QUERY_MAPPING_METHOD("threePartNextDayReturnQueryMappingMethod", "三方支付【隔天退费结果查询】请求方式",
|
THREE_PART_NEXT_DAY_RETURN_QUERY_MAPPING_METHOD("threePartNextDayReturnQueryMappingMethod", "三方支付【隔天退费结果查询】请求方式",
|
||||||
85),
|
85),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三方支付(签出)
|
* 三方支付(签出)
|
||||||
*/
|
*/
|
||||||
@@ -338,32 +280,26 @@ public enum TenantOptionDict {
|
|||||||
* 三方支付(签出)
|
* 三方支付(签出)
|
||||||
*/
|
*/
|
||||||
THREE_PART_SIGN_OUT_MAPPING_METHOD("threePartSignOutMappingMethod", "三方支付【签出】请求方式", 89),
|
THREE_PART_SIGN_OUT_MAPPING_METHOD("threePartSignOutMappingMethod", "三方支付【签出】请求方式", 89),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 三方支付(签出)
|
* 三方支付(签出)
|
||||||
*/
|
*/
|
||||||
YB_INPATIENT_SETTLEMENT_UP_URL("ybInpatientSetlUp", "选填4101或4101A", 90),
|
YB_INPATIENT_SETTLEMENT_UP_URL("ybInpatientSetlUp", "选填4101或4101A", 90),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PACS查看报告地址
|
* PACS查看报告地址
|
||||||
*/
|
*/
|
||||||
PACS_REPORT_URL("pacsReportUrl", "PACS查看报告地址", 91),
|
PACS_REPORT_URL("pacsReportUrl", "PACS查看报告地址", 91),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LIS查看报告地址
|
* LIS查看报告地址
|
||||||
*/
|
*/
|
||||||
LIS_REPORT_URL("lisReportUrl", "LIS查看报告地址", 92),
|
LIS_REPORT_URL("lisReportUrl", "LIS查看报告地址", 92),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开药时药房允许多选开关
|
* 开药时药房允许多选开关
|
||||||
*/
|
*/
|
||||||
PHARMACY_MULTIPLE_CHOICE_SWITCH("pharmacyMultipleChoiceSwitch", "开药时药房允许多选开关", 93),
|
PHARMACY_MULTIPLE_CHOICE_SWITCH("pharmacyMultipleChoiceSwitch", "开药时药房允许多选开关", 93),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PEIS服务地址
|
* PEIS服务地址
|
||||||
*/
|
*/
|
||||||
PEIS_SERVER_URL("peisServerUrl", "PEIS服务地址", 94);
|
PEIS_SERVER_URL("peisServerUrl", "PEIS服务地址", 94);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|||||||
@@ -117,8 +117,8 @@ public class OutpatientChargeAppServiceImpl implements IOutpatientChargeAppServi
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<EncounterPatientPrescriptionDto> getEncounterPatientPrescription(Long encounterId) {
|
public List<EncounterPatientPrescriptionDto> getEncounterPatientPrescription(Long encounterId) {
|
||||||
List<EncounterPatientPrescriptionDto> prescriptionDtoList =
|
List<EncounterPatientPrescriptionDto> prescriptionDtoList
|
||||||
outpatientChargeAppMapper.selectEncounterPatientPrescription(encounterId,
|
= outpatientChargeAppMapper.selectEncounterPatientPrescription(encounterId,
|
||||||
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.MEDICATION.getValue(),
|
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.MEDICATION.getValue(),
|
||||||
ChargeItemContext.DEVICE.getValue(), ChargeItemContext.REGISTER.getValue(),
|
ChargeItemContext.DEVICE.getValue(), ChargeItemContext.REGISTER.getValue(),
|
||||||
ChargeItemStatus.PLANNED.getValue(), ChargeItemStatus.BILLABLE.getValue(),
|
ChargeItemStatus.PLANNED.getValue(), ChargeItemStatus.BILLABLE.getValue(),
|
||||||
@@ -214,8 +214,6 @@ public class OutpatientChargeAppServiceImpl implements IOutpatientChargeAppServi
|
|||||||
}
|
}
|
||||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据就诊id查询患者处方列表并新增字段:应收金额,实收金额,优惠金额,折扣率
|
* 根据就诊id查询患者处方列表并新增字段:应收金额,实收金额,优惠金额,折扣率
|
||||||
@@ -257,7 +255,8 @@ public class OutpatientChargeAppServiceImpl implements IOutpatientChargeAppServi
|
|||||||
*
|
*
|
||||||
* @param discountRate 折扣率
|
* @param discountRate 折扣率
|
||||||
* @return 调整后的折扣率(0.05的倍数)
|
* @return 调整后的折扣率(0.05的倍数)
|
||||||
**/
|
*
|
||||||
|
*/
|
||||||
private String returnDiscountRate(BigDecimal discountRate) {
|
private String returnDiscountRate(BigDecimal discountRate) {
|
||||||
BigDecimal compareValue = BigDecimal.valueOf(0.05);
|
BigDecimal compareValue = BigDecimal.valueOf(0.05);
|
||||||
BigDecimal remainder = discountRate.remainder(compareValue);
|
BigDecimal remainder = discountRate.remainder(compareValue);
|
||||||
@@ -278,5 +277,4 @@ public class OutpatientChargeAppServiceImpl implements IOutpatientChargeAppServi
|
|||||||
return df.format(reActuarial);
|
return df.format(reActuarial);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,9 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class CurrentDayEncounterDto {
|
public class CurrentDayEncounterDto {
|
||||||
|
|
||||||
/** 租户ID */
|
/**
|
||||||
|
* 租户ID
|
||||||
|
*/
|
||||||
private Integer tenantId;
|
private Integer tenantId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -134,43 +136,5 @@ public class CurrentDayEncounterDto {
|
|||||||
* 电话
|
* 电话
|
||||||
*/
|
*/
|
||||||
private String phone;
|
private String phone;
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退号日期/时间
|
|
||||||
*/
|
|
||||||
private Date returnDate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退号原因
|
|
||||||
*/
|
|
||||||
private String returnReason;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退号操作人
|
|
||||||
*/
|
|
||||||
private String operatorName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退号操作工号(用户账号)
|
|
||||||
*/
|
|
||||||
private String operatorId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退款金额
|
|
||||||
*/
|
|
||||||
private BigDecimal refundAmount;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 合同编码(费用性质代码)
|
|
||||||
*/
|
|
||||||
private String contractNo;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退款方式(多个支付方式用逗号分隔)
|
|
||||||
*/
|
|
||||||
private String refundMethod;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,142 +23,191 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class EncounterPatientPrescriptionDto {
|
public class EncounterPatientPrescriptionDto {
|
||||||
|
|
||||||
/** 收费项目类型 */
|
/**
|
||||||
|
* 收费项目类型
|
||||||
|
*/
|
||||||
private Integer contextEnum;
|
private Integer contextEnum;
|
||||||
private String contextEnum_enumText;
|
private String contextEnum_enumText;
|
||||||
|
|
||||||
/** 收费状态 */
|
/**
|
||||||
|
* 收费状态
|
||||||
|
*/
|
||||||
private Integer statusEnum;
|
private Integer statusEnum;
|
||||||
private String statusEnum_enumText;
|
private String statusEnum_enumText;
|
||||||
|
|
||||||
/** 就诊ID */
|
/**
|
||||||
|
* 就诊ID
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long encounterId;
|
private Long encounterId;
|
||||||
|
|
||||||
/** 患者id */
|
/**
|
||||||
|
* 患者id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long patientId;
|
private Long patientId;
|
||||||
|
|
||||||
/** ID */
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/** 开立科室 */
|
/**
|
||||||
|
* 开立科室
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long requestingOrgId;
|
private Long requestingOrgId;
|
||||||
|
|
||||||
/** 数量 */
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
private Long quantityValue;
|
private Long quantityValue;
|
||||||
|
|
||||||
/** 单位 */
|
/**
|
||||||
|
* 单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String quantityUnit;
|
private String quantityUnit;
|
||||||
private String quantityUnit_dictText;
|
private String quantityUnit_dictText;
|
||||||
|
|
||||||
/** 单价 */
|
/**
|
||||||
|
* 单价
|
||||||
|
*/
|
||||||
private BigDecimal unitPrice;
|
private BigDecimal unitPrice;
|
||||||
|
|
||||||
/** 总价 */
|
/**
|
||||||
|
* 总价
|
||||||
|
*/
|
||||||
private BigDecimal totalPrice;
|
private BigDecimal totalPrice;
|
||||||
|
|
||||||
/** 处方号 */
|
/**
|
||||||
|
* 处方号
|
||||||
|
*/
|
||||||
private String prescriptionNo;
|
private String prescriptionNo;
|
||||||
|
|
||||||
/** 业务编码 */
|
/**
|
||||||
|
* 业务编码
|
||||||
|
*/
|
||||||
private String busNo;
|
private String busNo;
|
||||||
|
|
||||||
/** 收款人ID */
|
/**
|
||||||
|
* 收款人ID
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
@Dict(dictCode = "id", dictTable = "adm_practitioner", dictText = "name")
|
@Dict(dictCode = "id", dictTable = "adm_practitioner", dictText = "name")
|
||||||
private Long entererId;
|
private Long entererId;
|
||||||
private String entererId_dictText;
|
private String entererId_dictText;
|
||||||
|
|
||||||
/** 开立时间 */
|
/**
|
||||||
|
* 开立时间
|
||||||
|
*/
|
||||||
private Date enteredDate;
|
private Date enteredDate;
|
||||||
|
|
||||||
/** 收费时间 */
|
/**
|
||||||
|
* 收费时间
|
||||||
|
*/
|
||||||
private Date billDate;
|
private Date billDate;
|
||||||
|
|
||||||
/** 关联账户ID */
|
/**
|
||||||
|
* 关联账户ID
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long accountId;
|
private Long accountId;
|
||||||
|
|
||||||
/** 物品编码 */
|
/**
|
||||||
|
* 物品编码
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long itemId;
|
private Long itemId;
|
||||||
|
|
||||||
/** 物品名称 */
|
/**
|
||||||
|
* 物品名称
|
||||||
|
*/
|
||||||
private String itemName;
|
private String itemName;
|
||||||
|
|
||||||
/** 特病标识 */
|
/**
|
||||||
|
* 特病标识
|
||||||
|
*/
|
||||||
@Dict(dictCode = "med_type")
|
@Dict(dictCode = "med_type")
|
||||||
private String medTypeCode;
|
private String medTypeCode;
|
||||||
private String medTypeCode_dictText;
|
private String medTypeCode_dictText;
|
||||||
<<<<<<< HEAD
|
/**
|
||||||
=======
|
* 用法
|
||||||
|
*/
|
||||||
>>>>>>> v1.3
|
|
||||||
/** 用法 */
|
|
||||||
@Dict(dictCode = "method_code")
|
@Dict(dictCode = "method_code")
|
||||||
private String methodCode;
|
private String methodCode;
|
||||||
private String methodCode_dictText;
|
private String methodCode_dictText;
|
||||||
<<<<<<< HEAD
|
|
||||||
private String dose;
|
|
||||||
@Dict(dictCode = "unit_code")
|
|
||||||
private String doseUnitCode;
|
|
||||||
/** 单次剂量单位 */
|
|
||||||
private String doseUnitCode_dictText;
|
|
||||||
/** 频次 */
|
|
||||||
private String rateCode;
|
|
||||||
=======
|
|
||||||
|
|
||||||
/** 剂量 */
|
/**
|
||||||
|
* 剂量
|
||||||
|
*/
|
||||||
private String dose;
|
private String dose;
|
||||||
|
|
||||||
/** 剂量单位 */
|
/**
|
||||||
|
* 剂量单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String doseUnitCode;
|
private String doseUnitCode;
|
||||||
private String doseUnitCode_dictText;
|
private String doseUnitCode_dictText;
|
||||||
|
|
||||||
/** 频次 */
|
/**
|
||||||
|
* 频次
|
||||||
|
*/
|
||||||
private String rateCode;
|
private String rateCode;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
/**
|
||||||
/** 合同编码 */
|
* 合同编码
|
||||||
|
*/
|
||||||
private String contractNo;
|
private String contractNo;
|
||||||
|
|
||||||
/** 医保编码 */
|
/**
|
||||||
|
* 医保编码
|
||||||
|
*/
|
||||||
private String ybNo;
|
private String ybNo;
|
||||||
|
|
||||||
/** 合同名称 */
|
/**
|
||||||
|
* 合同名称
|
||||||
|
*/
|
||||||
private String contractName;
|
private String contractName;
|
||||||
|
|
||||||
/** 服务所在表 */
|
/**
|
||||||
|
* 服务所在表
|
||||||
|
*/
|
||||||
private String serviceTable;
|
private String serviceTable;
|
||||||
|
|
||||||
/** 服务所在表对应的id */
|
/**
|
||||||
|
* 服务所在表对应的id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long serviceId;
|
private Long serviceId;
|
||||||
|
|
||||||
/** 付款id */
|
/**
|
||||||
|
* 付款id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long paymentId;
|
private Long paymentId;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
/**
|
||||||
=======
|
* 实收金额
|
||||||
/** 实收金额 */
|
*/
|
||||||
private BigDecimal receivedAmount = BigDecimal.ZERO;
|
private BigDecimal receivedAmount = BigDecimal.ZERO;
|
||||||
|
|
||||||
/** 优惠金额 */
|
/**
|
||||||
|
* 优惠金额
|
||||||
|
*/
|
||||||
private BigDecimal discountAmount = BigDecimal.ZERO;
|
private BigDecimal discountAmount = BigDecimal.ZERO;
|
||||||
|
|
||||||
/** 应收金额 */
|
/**
|
||||||
|
* 应收金额
|
||||||
|
*/
|
||||||
private BigDecimal receivableAmount = BigDecimal.ZERO;
|
private BigDecimal receivableAmount = BigDecimal.ZERO;
|
||||||
|
|
||||||
/** 折扣率 */
|
/**
|
||||||
|
* 折扣率
|
||||||
|
*/
|
||||||
@Dict(dictCode = "charge_discount")
|
@Dict(dictCode = "charge_discount")
|
||||||
private String discountRate = "0";
|
private String discountRate = "0";
|
||||||
private String discountRate_dictText;
|
private String discountRate_dictText;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -188,8 +188,6 @@ public interface ICommonService {
|
|||||||
* @return 诊疗项目
|
* @return 诊疗项目
|
||||||
*/
|
*/
|
||||||
R<?> getActivityDefinition();
|
R<?> getActivityDefinition();
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询备份单号
|
* 查询备份单号
|
||||||
@@ -205,5 +203,4 @@ public interface ICommonService {
|
|||||||
* @return 处理结果
|
* @return 处理结果
|
||||||
*/
|
*/
|
||||||
R<?> lotNumberMatch(List<Long> encounterIdList);
|
R<?> lotNumberMatch(List<Long> encounterIdList);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,8 +89,6 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
@Resource
|
@Resource
|
||||||
private ISupplierService supplierService;
|
private ISupplierService supplierService;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
@Resource
|
@Resource
|
||||||
private IDocInventoryItemStaticService iDocInventoryItemStaticService;
|
private IDocInventoryItemStaticService iDocInventoryItemStaticService;
|
||||||
|
|
||||||
@@ -100,7 +98,6 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
@Resource
|
@Resource
|
||||||
private IDeviceDispenseService deviceDispenseService;
|
private IDeviceDispenseService deviceDispenseService;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/**
|
/**
|
||||||
* 获取药房列表
|
* 获取药房列表
|
||||||
*
|
*
|
||||||
@@ -119,7 +116,6 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
locationDtoList.add(locationDto);
|
locationDtoList.add(locationDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return locationDtoList;
|
return locationDtoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -409,8 +405,8 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
@Override
|
@Override
|
||||||
public R<?> getContractMetadata() {
|
public R<?> getContractMetadata() {
|
||||||
// TODO: Contract表的基础数据维护还没做,具体不知道状态字段的取值是什么,先查询默认值为0的数据
|
// TODO: Contract表的基础数据维护还没做,具体不知道状态字段的取值是什么,先查询默认值为0的数据
|
||||||
List<Contract> ContractList =
|
List<Contract> ContractList
|
||||||
contractMapper.selectList(new LambdaQueryWrapper<Contract>().eq(Contract::getStatusEnum, 0));
|
= contractMapper.selectList(new LambdaQueryWrapper<Contract>().eq(Contract::getStatusEnum, 0));
|
||||||
// 复制同名字段并 return
|
// 复制同名字段并 return
|
||||||
return R.ok(ContractList.stream().map(contract -> {
|
return R.ok(ContractList.stream().map(contract -> {
|
||||||
ContractMetadata metadata = new ContractMetadata();
|
ContractMetadata metadata = new ContractMetadata();
|
||||||
@@ -470,8 +466,8 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
// 查询当前登录者管理的病区
|
// 查询当前登录者管理的病区
|
||||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||||
List<Long> locationIds = practitionerRoleService.getLocationIdsByPractitionerId(practitionerId);
|
List<Long> locationIds = practitionerRoleService.getLocationIdsByPractitionerId(practitionerId);
|
||||||
List<Location> locationList =
|
List<Location> locationList
|
||||||
locationService.getLocationList(locationIds, Collections.singletonList(LocationStatus.ACTIVE.getValue()));
|
= locationService.getLocationList(locationIds, Collections.singletonList(LocationStatus.ACTIVE.getValue()));
|
||||||
List<Location> wardList = new ArrayList<>();
|
List<Location> wardList = new ArrayList<>();
|
||||||
for (Location ward : locationList) {
|
for (Location ward : locationList) {
|
||||||
if (LocationForm.WARD.getValue().equals(ward.getFormEnum())) {
|
if (LocationForm.WARD.getValue().equals(ward.getFormEnum())) {
|
||||||
@@ -563,8 +559,6 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
return R.ok(commonAppMapper.getActivityDefinition(PublicationStatus.ACTIVE.getValue()));
|
return R.ok(commonAppMapper.getActivityDefinition(PublicationStatus.ACTIVE.getValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 查询备份单号
|
* 查询备份单号
|
||||||
*
|
*
|
||||||
@@ -572,8 +566,8 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<?> getBackupNoList() {
|
public R<?> getBackupNoList() {
|
||||||
List<DocInventoryItemStatic> docInventoryItemStaticList =
|
List<DocInventoryItemStatic> docInventoryItemStaticList
|
||||||
iDocInventoryItemStaticService.list(new LambdaQueryWrapper<DocInventoryItemStatic>()
|
= iDocInventoryItemStaticService.list(new LambdaQueryWrapper<DocInventoryItemStatic>()
|
||||||
.eq(DocInventoryItemStatic::getDeleteFlag, DelFlag.NO.getCode())
|
.eq(DocInventoryItemStatic::getDeleteFlag, DelFlag.NO.getCode())
|
||||||
.eq(DocInventoryItemStatic::getTenantId, SecurityUtils.getLoginUser().getTenantId()));
|
.eq(DocInventoryItemStatic::getTenantId, SecurityUtils.getLoginUser().getTenantId()));
|
||||||
if (docInventoryItemStaticList.isEmpty()) {
|
if (docInventoryItemStaticList.isEmpty()) {
|
||||||
@@ -601,11 +595,11 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
// 药品批号匹配
|
// 药品批号匹配
|
||||||
if (medicationDispenseList != null && !medicationDispenseList.isEmpty()) {
|
if (medicationDispenseList != null && !medicationDispenseList.isEmpty()) {
|
||||||
// 获取待发放的药品id
|
// 获取待发放的药品id
|
||||||
List<Long> medicationIdList =
|
List<Long> medicationIdList
|
||||||
medicationDispenseList.stream().map(MedicationDispense::getMedicationId).distinct().toList();
|
= medicationDispenseList.stream().map(MedicationDispense::getMedicationId).distinct().toList();
|
||||||
// 获取发药药房
|
// 获取发药药房
|
||||||
List<Long> locationIdList =
|
List<Long> locationIdList
|
||||||
medicationDispenseList.stream().map(MedicationDispense::getLocationId).distinct().toList();
|
= medicationDispenseList.stream().map(MedicationDispense::getLocationId).distinct().toList();
|
||||||
|
|
||||||
// 查询待发放药品的库存明细
|
// 查询待发放药品的库存明细
|
||||||
List<InventoryDetailDto> inventoryDetailList = commonAppMapper
|
List<InventoryDetailDto> inventoryDetailList = commonAppMapper
|
||||||
@@ -653,8 +647,8 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取库存剩余数量
|
// 获取库存剩余数量
|
||||||
BigDecimal remainingInventoryQuantity =
|
BigDecimal remainingInventoryQuantity
|
||||||
inventoryDetailDto.getInventoryQuantity().subtract(dispenseQuantity);
|
= inventoryDetailDto.getInventoryQuantity().subtract(dispenseQuantity);
|
||||||
// 如果剩余库存数量大于等于0,则说明当前批号库存充足
|
// 如果剩余库存数量大于等于0,则说明当前批号库存充足
|
||||||
if (remainingInventoryQuantity.compareTo(BigDecimal.ZERO) >= 0) {
|
if (remainingInventoryQuantity.compareTo(BigDecimal.ZERO) >= 0) {
|
||||||
medicationDispense.setLotNumber(inventoryDetailDto.getInventoryLotNumber());
|
medicationDispense.setLotNumber(inventoryDetailDto.getInventoryLotNumber());
|
||||||
@@ -716,11 +710,11 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
// 耗材批号匹配
|
// 耗材批号匹配
|
||||||
if (deviceDispenseList != null && !deviceDispenseList.isEmpty()) {
|
if (deviceDispenseList != null && !deviceDispenseList.isEmpty()) {
|
||||||
// 获取待发放的耗材id
|
// 获取待发放的耗材id
|
||||||
List<Long> deviceIdList =
|
List<Long> deviceIdList
|
||||||
deviceDispenseList.stream().map(DeviceDispense::getDeviceDefId).distinct().toList();
|
= deviceDispenseList.stream().map(DeviceDispense::getDeviceDefId).distinct().toList();
|
||||||
// 获取发耗材房
|
// 获取发耗材房
|
||||||
List<Long> locationIdList =
|
List<Long> locationIdList
|
||||||
deviceDispenseList.stream().map(DeviceDispense::getLocationId).distinct().toList();
|
= deviceDispenseList.stream().map(DeviceDispense::getLocationId).distinct().toList();
|
||||||
|
|
||||||
// 查询待发放耗材的库存明细
|
// 查询待发放耗材的库存明细
|
||||||
List<InventoryDetailDto> inventoryDetailList = commonAppMapper.selectDeviceInventoryDetail(deviceIdList,
|
List<InventoryDetailDto> inventoryDetailList = commonAppMapper.selectDeviceInventoryDetail(deviceIdList,
|
||||||
@@ -742,8 +736,8 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
DeviceDispense deviceDispense = deviceDispenseList.get(currentIndex);
|
DeviceDispense deviceDispense = deviceDispenseList.get(currentIndex);
|
||||||
currentIndex++;
|
currentIndex++;
|
||||||
// 根据发放耗材和发放耗材房做key
|
// 根据发放耗材和发放耗材房做key
|
||||||
String inventoryKey =
|
String inventoryKey
|
||||||
deviceDispense.getDeviceDefId() + CommonConstants.Common.DASH + deviceDispense.getLocationId();
|
= deviceDispense.getDeviceDefId() + CommonConstants.Common.DASH + deviceDispense.getLocationId();
|
||||||
// 查询对应的库存信息
|
// 查询对应的库存信息
|
||||||
if (!inventoryDetailMap.containsKey(inventoryKey)) {
|
if (!inventoryDetailMap.containsKey(inventoryKey)) {
|
||||||
return R.fail("耗材库存不存在,耗材ID: " + deviceDispense.getDeviceDefId());
|
return R.fail("耗材库存不存在,耗材ID: " + deviceDispense.getDeviceDefId());
|
||||||
@@ -768,8 +762,8 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取库存剩余数量
|
// 获取库存剩余数量
|
||||||
BigDecimal remainingInventoryQuantity =
|
BigDecimal remainingInventoryQuantity
|
||||||
inventoryDetailDto.getInventoryQuantity().subtract(dispenseQuantity);
|
= inventoryDetailDto.getInventoryQuantity().subtract(dispenseQuantity);
|
||||||
// 如果剩余库存数量大于等于0,则说明当前批号库存充足
|
// 如果剩余库存数量大于等于0,则说明当前批号库存充足
|
||||||
if (remainingInventoryQuantity.compareTo(BigDecimal.ZERO) >= 0) {
|
if (remainingInventoryQuantity.compareTo(BigDecimal.ZERO) >= 0) {
|
||||||
deviceDispense.setLotNumber(inventoryDetailDto.getInventoryLotNumber());
|
deviceDispense.setLotNumber(inventoryDetailDto.getInventoryLotNumber());
|
||||||
@@ -825,5 +819,4 @@ public class CommonServiceImpl implements ICommonService {
|
|||||||
}
|
}
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -220,40 +220,6 @@ public class CommonAppController {
|
|||||||
@GetMapping("/advice-print")
|
@GetMapping("/advice-print")
|
||||||
public R<?> getAdvicePrintInfo(@RequestParam(value = "requestIds") List<Long> requestIds, String isPrescription) {
|
public R<?> getAdvicePrintInfo(@RequestParam(value = "requestIds") List<Long> requestIds, String isPrescription) {
|
||||||
return commonService.getAdvicePrintInfo(requestIds, isPrescription);
|
return commonService.getAdvicePrintInfo(requestIds, isPrescription);
|
||||||
<<<<<<< HEAD
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询参与者签名
|
|
||||||
*
|
|
||||||
* @param practitionerId 参与者id
|
|
||||||
* @return 参与者签名
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/practitioner-signature")
|
|
||||||
public R<?> getPractitionerSignature(@RequestParam(value = "practitionerId") Long practitionerId) {
|
|
||||||
return commonService.getPractitionerSignature(practitionerId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询所有供应商
|
|
||||||
*
|
|
||||||
* @return 供应商
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/supplier")
|
|
||||||
public R<?> getSupplierList() {
|
|
||||||
return commonService.getSupplierList();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询所有诊疗项目
|
|
||||||
*
|
|
||||||
* @return 诊疗项目
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/activity-definition")
|
|
||||||
public R<?> getActivityDefinition() {
|
|
||||||
return commonService.getActivityDefinition();
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -105,8 +105,6 @@ public interface CommonAppMapper {
|
|||||||
* @return 诊疗项目
|
* @return 诊疗项目
|
||||||
*/
|
*/
|
||||||
List<ActivityDefinitionDto> getActivityDefinition(@Param("statusEnum") Integer statusEnum);
|
List<ActivityDefinitionDto> getActivityDefinition(@Param("statusEnum") Integer statusEnum);
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询药品库存详细信息
|
* 查询药品库存详细信息
|
||||||
@@ -129,5 +127,4 @@ public interface CommonAppMapper {
|
|||||||
*/
|
*/
|
||||||
List<InventoryDetailDto> selectDeviceInventoryDetail(@Param("deviceIdList") List<Long> deviceIdList,
|
List<InventoryDetailDto> selectDeviceInventoryDetail(@Param("deviceIdList") List<Long> deviceIdList,
|
||||||
@Param("locationIdList") List<Long> locationIdList, @Param("active") Integer active);
|
@Param("locationIdList") List<Long> locationIdList, @Param("active") Integer active);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,10 +13,7 @@ import javax.annotation.Resource;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import com.core.common.enums.DelFlag;
|
import com.core.common.enums.DelFlag;
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@@ -131,10 +128,9 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
|
|||||||
// .map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo()))
|
// .map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo()))
|
||||||
// .collect(Collectors.toList());
|
// .collect(Collectors.toList());
|
||||||
// deviceManageInitDto.setDeviceCategories(deviceCategories);
|
// deviceManageInitDto.setDeviceCategories(deviceCategories);
|
||||||
|
|
||||||
// 获取器材
|
// 获取器材
|
||||||
List<SysDictData> deviceList =
|
List<SysDictData> deviceList
|
||||||
sysDictTypeService.selectDictDataByType(CommonConstants.DictName.DEVICE_CATEGORY_CODE);
|
= sysDictTypeService.selectDictDataByType(CommonConstants.DictName.DEVICE_CATEGORY_CODE);
|
||||||
// 从字典中获取器材分类
|
// 从字典中获取器材分类
|
||||||
List<DeviceManageInitDto.dictCategoryCode> deviceCategories = deviceList.stream()
|
List<DeviceManageInitDto.dictCategoryCode> deviceCategories = deviceList.stream()
|
||||||
.map(category -> new DeviceManageInitDto.dictCategoryCode(category.getDictValue(), category.getDictLabel()))
|
.map(category -> new DeviceManageInitDto.dictCategoryCode(category.getDictValue(), category.getDictLabel()))
|
||||||
@@ -176,8 +172,8 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
|
|||||||
new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
|
new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
|
||||||
|
|
||||||
// 分页查询
|
// 分页查询
|
||||||
IPage<DeviceManageDto> deviceManagePage =
|
IPage<DeviceManageDto> deviceManagePage
|
||||||
deviceManageMapper.getDevicePage(new Page<>(pageNo, pageSize), queryWrapper);
|
= deviceManageMapper.getDevicePage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||||
|
|
||||||
deviceManagePage.getRecords().forEach(e -> {
|
deviceManagePage.getRecords().forEach(e -> {
|
||||||
// 高值器材标志枚举类回显赋值
|
// 高值器材标志枚举类回显赋值
|
||||||
@@ -219,8 +215,8 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
|
|||||||
// 调用医保目录对照接口
|
// 调用医保目录对照接口
|
||||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(deviceDefinition.getYbNo())) {
|
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(deviceDefinition.getYbNo())) {
|
||||||
R<?> r =
|
R<?> r
|
||||||
ybService.directoryCheck(CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition.getId());
|
= ybService.directoryCheck(CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition.getId());
|
||||||
if (200 != r.getCode()) {
|
if (200 != r.getCode()) {
|
||||||
throw new RuntimeException("医保目录对照接口异常");
|
throw new RuntimeException("医保目录对照接口异常");
|
||||||
}
|
}
|
||||||
@@ -344,8 +340,8 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
|
|||||||
// 调用医保目录对照接口
|
// 调用医保目录对照接口
|
||||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(deviceDefinition.getYbNo())) {
|
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(deviceDefinition.getYbNo())) {
|
||||||
R<?> r =
|
R<?> r
|
||||||
ybService.directoryCheck(CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition.getId());
|
= ybService.directoryCheck(CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition.getId());
|
||||||
if (200 != r.getCode()) {
|
if (200 != r.getCode()) {
|
||||||
throw new RuntimeException("医保目录对照接口异常");
|
throw new RuntimeException("医保目录对照接口异常");
|
||||||
}
|
}
|
||||||
@@ -393,13 +389,13 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
|
|||||||
List<Location> locationList = locationService.list(new LambdaQueryWrapper<Location>()
|
List<Location> locationList = locationService.list(new LambdaQueryWrapper<Location>()
|
||||||
.eq(Location::getDeleteFlag, DelFlag.NO.getCode()).orderByAsc(Location::getId));
|
.eq(Location::getDeleteFlag, DelFlag.NO.getCode()).orderByAsc(Location::getId));
|
||||||
Long defaultLocationId = locationList.stream().findFirst().orElse(new Location()).getId();
|
Long defaultLocationId = locationList.stream().findFirst().orElse(new Location()).getId();
|
||||||
Map<String, List<Location>> locationNameMap =
|
Map<String, List<Location>> locationNameMap
|
||||||
locationList.stream().collect(Collectors.groupingBy(Location::getName));
|
= locationList.stream().collect(Collectors.groupingBy(Location::getName));
|
||||||
// 创建表数据
|
// 创建表数据
|
||||||
for (DeviceImportDto importDto : importDtoList) {
|
for (DeviceImportDto importDto : importDtoList) {
|
||||||
// 创建器材定义
|
// 创建器材定义
|
||||||
DeviceDefinition deviceDefinition =
|
DeviceDefinition deviceDefinition
|
||||||
createDeviceDefinitionEntity(importDto, orgId, defaultLocationId, locationNameMap);
|
= createDeviceDefinitionEntity(importDto, orgId, defaultLocationId, locationNameMap);
|
||||||
deviceDefinitionService.save(deviceDefinition);
|
deviceDefinitionService.save(deviceDefinition);
|
||||||
// 创建费用定价和详情
|
// 创建费用定价和详情
|
||||||
chargeItemDefinitionService.addChargeItemDefinitionAndDetail(importDto.getName(), importDto.getTypeCode(),
|
chargeItemDefinitionService.addChargeItemDefinitionAndDetail(importDto.getName(), importDto.getTypeCode(),
|
||||||
|
|||||||
@@ -100,8 +100,8 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
|
|||||||
diagnosisTreatmentInitDto.setExeOrganizations(exeOrganizations);
|
diagnosisTreatmentInitDto.setExeOrganizations(exeOrganizations);
|
||||||
|
|
||||||
// 获取诊目录疗分类
|
// 获取诊目录疗分类
|
||||||
List<SysDictData> diagnosisList =
|
List<SysDictData> diagnosisList
|
||||||
sysDictTypeService.selectDictDataByType(CommonConstants.DictName.DIAGNOSIS_CATEGORY_CODE);
|
= sysDictTypeService.selectDictDataByType(CommonConstants.DictName.DIAGNOSIS_CATEGORY_CODE);
|
||||||
// 获取诊疗录疗分类
|
// 获取诊疗录疗分类
|
||||||
List<DiagnosisTreatmentInitDto.dictCategoryCode> diagnosisCategories = diagnosisList.stream()
|
List<DiagnosisTreatmentInitDto.dictCategoryCode> diagnosisCategories = diagnosisList.stream()
|
||||||
.map(category -> new DiagnosisTreatmentInitDto.dictCategoryCode(category.getDictValue(),
|
.map(category -> new DiagnosisTreatmentInitDto.dictCategoryCode(category.getDictValue(),
|
||||||
@@ -143,7 +143,6 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
|
|||||||
// diseaseTreatmentCategories.add(diseaseTreatmentCategory2);
|
// diseaseTreatmentCategories.add(diseaseTreatmentCategory2);
|
||||||
//
|
//
|
||||||
// diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
|
// diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
|
||||||
|
|
||||||
// 获取类型
|
// 获取类型
|
||||||
List<DiagnosisTreatmentInitDto.statusEnumOption> typeEnumOptions = Stream.of(ActivityType.values())
|
List<DiagnosisTreatmentInitDto.statusEnumOption> typeEnumOptions = Stream.of(ActivityType.values())
|
||||||
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||||
@@ -178,8 +177,8 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
|
|||||||
searchKey, new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
|
searchKey, new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
|
||||||
|
|
||||||
// 分页查询
|
// 分页查询
|
||||||
IPage<DiagnosisTreatmentDto> diseaseTreatmentPage =
|
IPage<DiagnosisTreatmentDto> diseaseTreatmentPage
|
||||||
activityDefinitionManageMapper.getDiseaseTreatmentPage(new Page<DiagnosisTreatmentDto>(pageNo, pageSize), queryWrapper);
|
= activityDefinitionManageMapper.getDiseaseTreatmentPage(new Page<DiagnosisTreatmentDto>(pageNo, pageSize), queryWrapper);
|
||||||
|
|
||||||
diseaseTreatmentPage.getRecords().forEach(e -> {
|
diseaseTreatmentPage.getRecords().forEach(e -> {
|
||||||
// 医保标记枚举类回显赋值
|
// 医保标记枚举类回显赋值
|
||||||
@@ -396,8 +395,8 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
|
|||||||
@Override
|
@Override
|
||||||
public R<?> importData(MultipartFile file) {
|
public R<?> importData(MultipartFile file) {
|
||||||
// 读取文件
|
// 读取文件
|
||||||
R<List<DiagnosisTreatmentImportDto>> readResult =
|
R<List<DiagnosisTreatmentImportDto>> readResult
|
||||||
CommonUtil.readImportedExcelFile(file, DiagnosisTreatmentImportDto.class);
|
= CommonUtil.readImportedExcelFile(file, DiagnosisTreatmentImportDto.class);
|
||||||
if (R.SUCCESS != readResult.getCode()) {
|
if (R.SUCCESS != readResult.getCode()) {
|
||||||
return readResult;
|
return readResult;
|
||||||
}
|
}
|
||||||
@@ -447,11 +446,7 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
|
|||||||
if (!serviceRequestList.isEmpty()) {
|
if (!serviceRequestList.isEmpty()) {
|
||||||
if (serviceRequestList.stream().anyMatch(
|
if (serviceRequestList.stream().anyMatch(
|
||||||
serviceRequest -> RequestStatus.COMPLETED.getValue().equals(serviceRequest.getStatusEnum()))) {
|
serviceRequest -> RequestStatus.COMPLETED.getValue().equals(serviceRequest.getStatusEnum()))) {
|
||||||
<<<<<<< HEAD
|
|
||||||
return R.ok(1, "医生开过该诊疗项目,不可编辑");
|
return R.ok(1, "医生开过该诊疗项目,不可编辑");
|
||||||
=======
|
|
||||||
return R.ok(1, "医生开过该诊疗项目,不可编辑");
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return R.ok();
|
return R.ok();
|
||||||
|
|||||||
@@ -12,10 +12,7 @@ import javax.annotation.Resource;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import com.core.common.enums.DelFlag;
|
import com.core.common.enums.DelFlag;
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@@ -132,8 +129,8 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 获取药品分类
|
// 获取药品分类
|
||||||
List<SysDictData> medicalList =
|
List<SysDictData> medicalList
|
||||||
sysDictTypeService.selectDictDataByType(CommonConstants.DictName.MED_CATEGORY_CODE);
|
= sysDictTypeService.selectDictDataByType(CommonConstants.DictName.MED_CATEGORY_CODE);
|
||||||
// 获取药品分类
|
// 获取药品分类
|
||||||
List<MedicationManageInitDto.dictCategoryCode> medicationCategories = medicalList.stream().map(
|
List<MedicationManageInitDto.dictCategoryCode> medicationCategories = medicalList.stream().map(
|
||||||
category -> new MedicationManageInitDto.dictCategoryCode(category.getDictValue(), category.getDictLabel()))
|
category -> new MedicationManageInitDto.dictCategoryCode(category.getDictValue(), category.getDictLabel()))
|
||||||
@@ -156,8 +153,8 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 住院临时医嘱拆分属性的枚举
|
// 住院临时医嘱拆分属性的枚举
|
||||||
List<MedicationManageInitDto.statusEnumOption> tempOrderSplitPropertyOptions =
|
List<MedicationManageInitDto.statusEnumOption> tempOrderSplitPropertyOptions
|
||||||
Stream.of(TempOrderSplitPropertyCode.values())
|
= Stream.of(TempOrderSplitPropertyCode.values())
|
||||||
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
@@ -200,8 +197,8 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
|||||||
"merchandise_py_str", "merchandise_wb_str")),
|
"merchandise_py_str", "merchandise_wb_str")),
|
||||||
null);
|
null);
|
||||||
|
|
||||||
IPage<MedicationManageDto> medicationManageDtoPage =
|
IPage<MedicationManageDto> medicationManageDtoPage
|
||||||
medicationManageSearchMapper.getPage(new Page<>(pageNo, pageSize), queryWrapper);
|
= medicationManageSearchMapper.getPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||||
|
|
||||||
// 枚举类回显赋值
|
// 枚举类回显赋值
|
||||||
medicationManageDtoPage.getRecords().forEach(e -> {
|
medicationManageDtoPage.getRecords().forEach(e -> {
|
||||||
@@ -282,8 +279,8 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
|||||||
boolean updateMedicationDefinition = medicationDefinitionService.updateById(medicationDefinition);
|
boolean updateMedicationDefinition = medicationDefinitionService.updateById(medicationDefinition);
|
||||||
if (updateMedicationDefinition) {
|
if (updateMedicationDefinition) {
|
||||||
// 调用医保目录对照接口
|
// 调用医保目录对照接口
|
||||||
String ybSwitch =
|
String ybSwitch
|
||||||
SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
= SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(medicationDefinition.getYbNo())) {
|
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(medicationDefinition.getYbNo())) {
|
||||||
R<?> r = ybService.directoryCheck(CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
R<?> r = ybService.directoryCheck(CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
||||||
medicationDefinition.getId());
|
medicationDefinition.getId());
|
||||||
@@ -453,8 +450,8 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
|||||||
HttpServletResponse response) {
|
HttpServletResponse response) {
|
||||||
// 获取租户ID
|
// 获取租户ID
|
||||||
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
||||||
List<MedicationManageDto> list =
|
List<MedicationManageDto> list
|
||||||
medicationManageSearchMapper.getList(searchKey, ybMatchFlag, statusEnum, categoryCode, tenantId);
|
= medicationManageSearchMapper.getList(searchKey, ybMatchFlag, statusEnum, categoryCode, tenantId);
|
||||||
ExcelUtil<MedicationManageDto> util = new ExcelUtil<>(MedicationManageDto.class);
|
ExcelUtil<MedicationManageDto> util = new ExcelUtil<>(MedicationManageDto.class);
|
||||||
util.exportExcel(response, list, "药品目录");
|
util.exportExcel(response, list, "药品目录");
|
||||||
return null;
|
return null;
|
||||||
@@ -484,16 +481,16 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
|||||||
List<Location> locationList = locationService.list(new LambdaQueryWrapper<Location>()
|
List<Location> locationList = locationService.list(new LambdaQueryWrapper<Location>()
|
||||||
.eq(Location::getDeleteFlag, DelFlag.NO.getCode()).orderByAsc(Location::getId));
|
.eq(Location::getDeleteFlag, DelFlag.NO.getCode()).orderByAsc(Location::getId));
|
||||||
Long defaultLocationId = locationList.stream().findFirst().orElse(new Location()).getId();
|
Long defaultLocationId = locationList.stream().findFirst().orElse(new Location()).getId();
|
||||||
Map<String, List<Location>> locationNameMap =
|
Map<String, List<Location>> locationNameMap
|
||||||
locationList.stream().collect(Collectors.groupingBy(Location::getName));
|
= locationList.stream().collect(Collectors.groupingBy(Location::getName));
|
||||||
// 创建表数据
|
// 创建表数据
|
||||||
for (MedicationImportDto importDto : importDtoList) {
|
for (MedicationImportDto importDto : importDtoList) {
|
||||||
// 创建药品定义
|
// 创建药品定义
|
||||||
MedicationDefinition medicationDefinition = createMedicationDefinitionEntity(importDto);
|
MedicationDefinition medicationDefinition = createMedicationDefinitionEntity(importDto);
|
||||||
medicationDefinitionService.save(medicationDefinition);
|
medicationDefinitionService.save(medicationDefinition);
|
||||||
// 创建药品
|
// 创建药品
|
||||||
Medication medication =
|
Medication medication
|
||||||
createMedicationEntity(importDto, medicationDefinition.getId(), defaultLocationId, locationNameMap);
|
= createMedicationEntity(importDto, medicationDefinition.getId(), defaultLocationId, locationNameMap);
|
||||||
medicationService.save(medication);
|
medicationService.save(medication);
|
||||||
// 创建费用定价和详情
|
// 创建费用定价和详情
|
||||||
chargeItemDefinitionService.addChargeItemDefinitionAndDetail(importDto.getName(), importDto.getTypeCode(),
|
chargeItemDefinitionService.addChargeItemDefinitionAndDetail(importDto.getName(), importDto.getTypeCode(),
|
||||||
@@ -523,8 +520,8 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<?> validateMedicationEdit(Long medicationId) {
|
public R<?> validateMedicationEdit(Long medicationId) {
|
||||||
List<MedicationRequest> medicationRequestList =
|
List<MedicationRequest> medicationRequestList
|
||||||
medicationRequestService.getMedRequestByMedicationId(medicationId);
|
= medicationRequestService.getMedRequestByMedicationId(medicationId);
|
||||||
if (!medicationRequestList.isEmpty()) {
|
if (!medicationRequestList.isEmpty()) {
|
||||||
if (medicationRequestList.stream()
|
if (medicationRequestList.stream()
|
||||||
.allMatch(x -> x.getStatusEnum().equals(RequestStatus.COMPLETED.getValue()))) {
|
.allMatch(x -> x.getStatusEnum().equals(RequestStatus.COMPLETED.getValue()))) {
|
||||||
@@ -761,8 +758,8 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
|
|||||||
new LambdaQueryWrapper<MedicationDefinition>().eq(MedicationDefinition::getName, importDto.getName())
|
new LambdaQueryWrapper<MedicationDefinition>().eq(MedicationDefinition::getName, importDto.getName())
|
||||||
.eq(MedicationDefinition::getManufacturerText, importDto.getManufacturerText()));
|
.eq(MedicationDefinition::getManufacturerText, importDto.getManufacturerText()));
|
||||||
if (!medicationDefinitionList.isEmpty()) {
|
if (!medicationDefinitionList.isEmpty()) {
|
||||||
List<Medication> medicationList =
|
List<Medication> medicationList
|
||||||
medicationService.list(new LambdaQueryWrapper<Medication>()
|
= medicationService.list(new LambdaQueryWrapper<Medication>()
|
||||||
.in(Medication::getMedicationDefId,
|
.in(Medication::getMedicationDefId,
|
||||||
medicationDefinitionList.stream().map(MedicationDefinition::getId)
|
medicationDefinitionList.stream().map(MedicationDefinition::getId)
|
||||||
.collect(Collectors.toList()))
|
.collect(Collectors.toList()))
|
||||||
|
|||||||
@@ -22,271 +22,414 @@ import javax.validation.constraints.NotNull;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class MedicationManageDto {
|
public class MedicationManageDto {
|
||||||
|
|
||||||
/** ID */
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/** 药品编码 */
|
/**
|
||||||
|
* 药品编码
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long medicationDefId;
|
private Long medicationDefId;
|
||||||
|
|
||||||
/** 药品状态 */
|
/**
|
||||||
|
* 药品状态
|
||||||
|
*/
|
||||||
private Integer statusEnum;
|
private Integer statusEnum;
|
||||||
private String statusEnum_enumText;
|
private String statusEnum_enumText;
|
||||||
|
|
||||||
/** 所属科室 */
|
/**
|
||||||
|
* 所属科室
|
||||||
|
*/
|
||||||
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
|
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long orgId;
|
private Long orgId;
|
||||||
private String orgId_dictText;
|
private String orgId_dictText;
|
||||||
|
|
||||||
/** 所在位置 */
|
/**
|
||||||
|
* 所在位置
|
||||||
|
*/
|
||||||
@Dict(dictTable = "adm_location", dictCode = "id", dictText = "name")
|
@Dict(dictTable = "adm_location", dictCode = "id", dictText = "name")
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long locationId;
|
private Long locationId;
|
||||||
private String locationId_dictText;
|
private String locationId_dictText;
|
||||||
|
|
||||||
/** 剂型 */
|
/**
|
||||||
|
* 剂型
|
||||||
|
*/
|
||||||
@Dict(dictCode = "dose_form_code")
|
@Dict(dictCode = "dose_form_code")
|
||||||
private String doseFormCode;
|
private String doseFormCode;
|
||||||
private String doseFormCode_dictText;
|
private String doseFormCode_dictText;
|
||||||
|
|
||||||
/** 规格 */
|
/**
|
||||||
|
* 规格
|
||||||
|
*/
|
||||||
private String totalVolume;
|
private String totalVolume;
|
||||||
|
|
||||||
/** 成分 */
|
/**
|
||||||
|
* 成分
|
||||||
|
*/
|
||||||
private String ingredientItem;
|
private String ingredientItem;
|
||||||
|
|
||||||
/** 是否为活性 */
|
/**
|
||||||
|
* 是否为活性
|
||||||
|
*/
|
||||||
private Integer activeFlag;
|
private Integer activeFlag;
|
||||||
private String activeFlag_enumText;
|
private String activeFlag_enumText;
|
||||||
|
|
||||||
/** 批次号 */
|
/**
|
||||||
|
* 批次号
|
||||||
|
*/
|
||||||
private String lotNumber;
|
private String lotNumber;
|
||||||
|
|
||||||
/** 生效日期 */
|
/**
|
||||||
|
* 生效日期
|
||||||
|
*/
|
||||||
private Date effectiveDate;
|
private Date effectiveDate;
|
||||||
|
|
||||||
/** 到期日期 */
|
/**
|
||||||
|
* 到期日期
|
||||||
|
*/
|
||||||
private Date expirationDate;
|
private Date expirationDate;
|
||||||
|
|
||||||
/** 用法 */
|
/**
|
||||||
|
* 用法
|
||||||
|
*/
|
||||||
@Dict(dictCode = "method_code")
|
@Dict(dictCode = "method_code")
|
||||||
private String methodCode;
|
private String methodCode;
|
||||||
private String methodCode_dictText;
|
private String methodCode_dictText;
|
||||||
|
|
||||||
/** 用药频次 */
|
/**
|
||||||
|
* 用药频次
|
||||||
|
*/
|
||||||
@Dict(dictCode = "rate_code")
|
@Dict(dictCode = "rate_code")
|
||||||
private String rateCode;
|
private String rateCode;
|
||||||
private String rateCode_dictText;
|
private String rateCode_dictText;
|
||||||
|
|
||||||
/** 单次剂量 */
|
/**
|
||||||
|
* 单次剂量
|
||||||
|
*/
|
||||||
private BigDecimal dose;
|
private BigDecimal dose;
|
||||||
|
|
||||||
/** 剂量单位 */
|
/**
|
||||||
|
* 剂量单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String doseUnitCode;
|
private String doseUnitCode;
|
||||||
private String doseUnitCode_dictText;
|
private String doseUnitCode_dictText;
|
||||||
|
|
||||||
/** 单次最大剂量 */
|
/**
|
||||||
|
* 单次最大剂量
|
||||||
|
*/
|
||||||
private BigDecimal maxUnit;
|
private BigDecimal maxUnit;
|
||||||
|
|
||||||
/** 药品定义 */
|
/**
|
||||||
|
* 药品定义
|
||||||
|
*/
|
||||||
private String definition;
|
private String definition;
|
||||||
|
|
||||||
/** 用量限定 */
|
/**
|
||||||
|
* 用量限定
|
||||||
|
*/
|
||||||
private BigDecimal usageLimit;
|
private BigDecimal usageLimit;
|
||||||
|
|
||||||
/** DDD值 */
|
/**
|
||||||
|
* DDD值
|
||||||
|
*/
|
||||||
@Dict(dictCode = "ddd_code")
|
@Dict(dictCode = "ddd_code")
|
||||||
private String dddCode;
|
private String dddCode;
|
||||||
private String dddCode_dictText;
|
private String dddCode_dictText;
|
||||||
|
|
||||||
/** DDD单位 */
|
/**
|
||||||
|
* DDD单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String dddUnitCode;
|
private String dddUnitCode;
|
||||||
private String dddUnitCode_dictText;
|
private String dddUnitCode_dictText;
|
||||||
|
|
||||||
/** 药品编号 */
|
/**
|
||||||
|
* 药品编号
|
||||||
|
*/
|
||||||
private String busNo;
|
private String busNo;
|
||||||
|
|
||||||
/** 药品名称 */
|
/**
|
||||||
|
* 药品名称
|
||||||
|
*/
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
/** 适用范围 */
|
/**
|
||||||
|
* 适用范围
|
||||||
|
*/
|
||||||
private Integer domainEnum;
|
private Integer domainEnum;
|
||||||
private String domainEnum_enumText;
|
private String domainEnum_enumText;
|
||||||
|
|
||||||
/** 药品版本 */
|
/**
|
||||||
|
* 药品版本
|
||||||
|
*/
|
||||||
private String version;
|
private String version;
|
||||||
|
|
||||||
/** 英文药名 */
|
/**
|
||||||
|
* 英文药名
|
||||||
|
*/
|
||||||
private String nameEn;
|
private String nameEn;
|
||||||
|
|
||||||
/** 药品名称拼音码 */
|
/**
|
||||||
|
* 药品名称拼音码
|
||||||
|
*/
|
||||||
private String pyStr;
|
private String pyStr;
|
||||||
|
|
||||||
/** 药品五笔码 */
|
/**
|
||||||
|
* 药品五笔码
|
||||||
|
*/
|
||||||
private String wbStr;
|
private String wbStr;
|
||||||
|
|
||||||
/** 药品分类 */
|
/**
|
||||||
|
* 药品分类
|
||||||
|
*/
|
||||||
@Dict(dictCode = "med_category_code")
|
@Dict(dictCode = "med_category_code")
|
||||||
private String categoryCode;
|
private String categoryCode;
|
||||||
private String categoryCode_dictText;
|
private String categoryCode_dictText;
|
||||||
|
|
||||||
/** 商品名称 */
|
/**
|
||||||
|
* 商品名称
|
||||||
|
*/
|
||||||
private String merchandiseName;
|
private String merchandiseName;
|
||||||
|
|
||||||
/** 商品名称拼音码 */
|
/**
|
||||||
|
* 商品名称拼音码
|
||||||
|
*/
|
||||||
private String merchandisePyStr;
|
private String merchandisePyStr;
|
||||||
|
|
||||||
/** 商品五笔码 */
|
/**
|
||||||
|
* 商品五笔码
|
||||||
|
*/
|
||||||
private String merchandiseWbStr;
|
private String merchandiseWbStr;
|
||||||
|
|
||||||
/** 药品单位 */
|
/**
|
||||||
|
* 药品单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
private String unitCode_dictText;
|
private String unitCode_dictText;
|
||||||
|
|
||||||
/** 最小单位 */
|
/**
|
||||||
|
* 最小单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String minUnitCode;
|
private String minUnitCode;
|
||||||
private String minUnitCode_dictText;
|
private String minUnitCode_dictText;
|
||||||
|
|
||||||
/** 所含耗材 */
|
/**
|
||||||
|
* 所含耗材
|
||||||
|
*/
|
||||||
private String comprisedText;
|
private String comprisedText;
|
||||||
|
|
||||||
/** 拆零比 */
|
/**
|
||||||
|
* 拆零比
|
||||||
|
*/
|
||||||
private BigDecimal partPercent;
|
private BigDecimal partPercent;
|
||||||
|
|
||||||
/** 剂量形式 */
|
/**
|
||||||
|
* 剂量形式
|
||||||
|
*/
|
||||||
@Dict(dictCode = "dose_form_code")
|
@Dict(dictCode = "dose_form_code")
|
||||||
private Integer doseFrom;
|
private Integer doseFrom;
|
||||||
private String doseFrom_dictText;
|
private String doseFrom_dictText;
|
||||||
|
|
||||||
/** 批准文号 */
|
/**
|
||||||
|
* 批准文号
|
||||||
|
*/
|
||||||
private String approvalNumber;
|
private String approvalNumber;
|
||||||
|
|
||||||
/** 医保是否对码 */
|
/**
|
||||||
|
* 医保是否对码
|
||||||
|
*/
|
||||||
private Integer ybMatchFlag;
|
private Integer ybMatchFlag;
|
||||||
private String ybMatchFlag_enumText;;
|
private String ybMatchFlag_enumText;
|
||||||
|
;
|
||||||
|
|
||||||
/** 医保编码 */
|
/** 医保编码 */
|
||||||
private String ybNo;
|
private String ybNo;
|
||||||
|
|
||||||
/** 药理作用分类 */
|
/**
|
||||||
|
* 药理作用分类
|
||||||
|
*/
|
||||||
private String pharmacologyCategoryCode;
|
private String pharmacologyCategoryCode;
|
||||||
|
|
||||||
/** 是否皮试 */
|
/**
|
||||||
|
* 是否皮试
|
||||||
|
*/
|
||||||
private Integer skinTestFlag;
|
private Integer skinTestFlag;
|
||||||
private String skinTestFlag_enumText;
|
private String skinTestFlag_enumText;
|
||||||
|
|
||||||
/** 是否为注射药物 */
|
/**
|
||||||
|
* 是否为注射药物
|
||||||
|
*/
|
||||||
private Integer injectFlag;
|
private Integer injectFlag;
|
||||||
private String injectFlag_enumText;
|
private String injectFlag_enumText;
|
||||||
|
|
||||||
/** 生产厂家 */
|
/**
|
||||||
|
* 生产厂家
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long manufacturerId;
|
private Long manufacturerId;
|
||||||
|
|
||||||
/** 供应商 */
|
/**
|
||||||
|
* 供应商
|
||||||
|
*/
|
||||||
@Dict(dictTable = "adm_supplier", dictCode = "id", dictText = "name")
|
@Dict(dictTable = "adm_supplier", dictCode = "id", dictText = "name")
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long supplyId;
|
private Long supplyId;
|
||||||
private String supplyId_dictText;
|
private String supplyId_dictText;
|
||||||
|
|
||||||
/** 是否限制使用 */
|
/**
|
||||||
|
* 是否限制使用
|
||||||
|
*/
|
||||||
private Integer restrictedFlag;
|
private Integer restrictedFlag;
|
||||||
private String restrictedFlag_enumText;
|
private String restrictedFlag_enumText;
|
||||||
|
|
||||||
/** 限制使用范围 */
|
/**
|
||||||
|
* 限制使用范围
|
||||||
|
*/
|
||||||
private String restrictedScope;
|
private String restrictedScope;
|
||||||
|
|
||||||
/** 儿童用药标志 */
|
/**
|
||||||
|
* 儿童用药标志
|
||||||
|
*/
|
||||||
private Integer childrenFlag;
|
private Integer childrenFlag;
|
||||||
private String childrenFlag_enumText;
|
private String childrenFlag_enumText;
|
||||||
|
|
||||||
/** 产品特性 */
|
/**
|
||||||
|
* 产品特性
|
||||||
|
*/
|
||||||
private Integer characteristic;
|
private Integer characteristic;
|
||||||
private String characteristic_enumText;
|
private String characteristic_enumText;
|
||||||
|
|
||||||
/** 贯标国家编码 */
|
/**
|
||||||
|
* 贯标国家编码
|
||||||
|
*/
|
||||||
private String nationalDrugCode;
|
private String nationalDrugCode;
|
||||||
|
|
||||||
/** 拆分属性 */
|
/**
|
||||||
|
* 拆分属性
|
||||||
|
*/
|
||||||
private Integer partAttributeEnum;
|
private Integer partAttributeEnum;
|
||||||
private String partAttributeEnum_enumText;
|
private String partAttributeEnum_enumText;
|
||||||
|
|
||||||
/** 抗生素分类 */
|
/**
|
||||||
|
* 抗生素分类
|
||||||
|
*/
|
||||||
@Dict(dictCode = "antibiotic_type_code")
|
@Dict(dictCode = "antibiotic_type_code")
|
||||||
private String antibioticCode;
|
private String antibioticCode;
|
||||||
private String antibioticCode_dictText;
|
private String antibioticCode_dictText;
|
||||||
|
|
||||||
/** 权限限制 */
|
/**
|
||||||
|
* 权限限制
|
||||||
|
*/
|
||||||
private Integer restrictedEnum;
|
private Integer restrictedEnum;
|
||||||
private String restrictedEnum_enumText;
|
private String restrictedEnum_enumText;
|
||||||
|
|
||||||
/** 是否自制 */
|
/**
|
||||||
|
* 是否自制
|
||||||
|
*/
|
||||||
private Integer selfFlag;
|
private Integer selfFlag;
|
||||||
private String selfFlag_enumText;
|
private String selfFlag_enumText;
|
||||||
|
|
||||||
/** 是否抗生素 */
|
/**
|
||||||
|
* 是否抗生素
|
||||||
|
*/
|
||||||
private Integer antibioticFlag;
|
private Integer antibioticFlag;
|
||||||
private String antibioticFlag_enumText;
|
private String antibioticFlag_enumText;
|
||||||
|
|
||||||
/** 基药标识 */
|
/**
|
||||||
|
* 基药标识
|
||||||
|
*/
|
||||||
private Integer basicFlag;
|
private Integer basicFlag;
|
||||||
private String basicFlag_enumText;
|
private String basicFlag_enumText;
|
||||||
|
|
||||||
/** 生产厂商文本 */
|
/**
|
||||||
|
* 生产厂商文本
|
||||||
|
*/
|
||||||
private String manufacturerText;
|
private String manufacturerText;
|
||||||
|
|
||||||
/** 最小库存警戒数量(常规单位) */
|
/**
|
||||||
|
* 最小库存警戒数量(常规单位)
|
||||||
|
*/
|
||||||
private BigDecimal itemMinQuantity;
|
private BigDecimal itemMinQuantity;
|
||||||
|
|
||||||
/** 最大库存警戒数量(常规单位) */
|
/**
|
||||||
|
* 最大库存警戒数量(常规单位)
|
||||||
|
*/
|
||||||
private BigDecimal itemMaxQuantity;
|
private BigDecimal itemMaxQuantity;
|
||||||
|
|
||||||
/** 售价 */
|
/**
|
||||||
|
* 售价
|
||||||
|
*/
|
||||||
private BigDecimal price;
|
private BigDecimal price;
|
||||||
|
|
||||||
/** 单次最小用药频次 */
|
/**
|
||||||
|
* 单次最小用药频次
|
||||||
|
*/
|
||||||
private String minRateCode;
|
private String minRateCode;
|
||||||
|
|
||||||
/** 单次最大用药频次 */
|
/**
|
||||||
|
* 单次最大用药频次
|
||||||
|
*/
|
||||||
private String maxRateCode;
|
private String maxRateCode;
|
||||||
|
|
||||||
/** 医保类别 */
|
/**
|
||||||
|
* 医保类别
|
||||||
|
*/
|
||||||
private String ybType;
|
private String ybType;
|
||||||
|
|
||||||
/** 财务类别 */
|
/**
|
||||||
|
* 财务类别
|
||||||
|
*/
|
||||||
@Dict(dictCode = "fin_type_code")
|
@Dict(dictCode = "fin_type_code")
|
||||||
private String typeCode;
|
private String typeCode;
|
||||||
private String typeCode_dictText;
|
private String typeCode_dictText;
|
||||||
|
|
||||||
/** 成分 */
|
/**
|
||||||
|
* 成分
|
||||||
|
*/
|
||||||
private String ingredient;
|
private String ingredient;
|
||||||
|
|
||||||
/** 购入价 */
|
/**
|
||||||
|
* 购入价
|
||||||
|
*/
|
||||||
private BigDecimal purchasePrice;
|
private BigDecimal purchasePrice;
|
||||||
|
|
||||||
/** 零售价 */
|
/**
|
||||||
|
* 零售价
|
||||||
|
*/
|
||||||
private BigDecimal retailPrice;
|
private BigDecimal retailPrice;
|
||||||
|
|
||||||
/** 最高零售价 */
|
/**
|
||||||
|
* 最高零售价
|
||||||
|
*/
|
||||||
private BigDecimal maximumRetailPrice;
|
private BigDecimal maximumRetailPrice;
|
||||||
|
|
||||||
/** 住院临时医嘱拆分属性 */
|
/**
|
||||||
|
* 住院临时医嘱拆分属性
|
||||||
|
*/
|
||||||
private Integer thoPartAttributeEnum;
|
private Integer thoPartAttributeEnum;
|
||||||
private String thoPartAttributeEnum_enumText;
|
private String thoPartAttributeEnum_enumText;
|
||||||
|
|
||||||
/** 剂量单位换算比 */
|
/**
|
||||||
|
* 剂量单位换算比
|
||||||
|
*/
|
||||||
private BigDecimal unitConversionRatio;
|
private BigDecimal unitConversionRatio;
|
||||||
|
|
||||||
/** 医保等级 */
|
/**
|
||||||
|
* 医保等级
|
||||||
|
*/
|
||||||
private Integer chrgitmLv;
|
private Integer chrgitmLv;
|
||||||
|
|
||||||
/** 处方标志 */
|
/**
|
||||||
|
* 处方标志
|
||||||
|
*/
|
||||||
private Integer rxFlag;
|
private Integer rxFlag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -294,12 +437,9 @@ public class MedicationManageDto {
|
|||||||
*/
|
*/
|
||||||
private String dosageInstruction;
|
private String dosageInstruction;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 药品69码
|
* 药品69码
|
||||||
*/
|
*/
|
||||||
private String drug69Code;
|
private String drug69Code;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,238 +24,380 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class MedicationManageUpDto {
|
public class MedicationManageUpDto {
|
||||||
|
|
||||||
/** ID */
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/** 药品编码 */
|
/**
|
||||||
|
* 药品编码
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long medicationDefId;
|
private Long medicationDefId;
|
||||||
|
|
||||||
/** 所属科室 */
|
/**
|
||||||
|
* 所属科室
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long orgId;
|
private Long orgId;
|
||||||
|
|
||||||
/** 所在位置 */
|
/**
|
||||||
|
* 所在位置
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long locationId;
|
private Long locationId;
|
||||||
|
|
||||||
/** 剂型 */
|
/**
|
||||||
|
* 剂型
|
||||||
|
*/
|
||||||
private String doseFormCode;
|
private String doseFormCode;
|
||||||
|
|
||||||
/** 规格 */
|
/**
|
||||||
|
* 规格
|
||||||
|
*/
|
||||||
private String totalVolume;
|
private String totalVolume;
|
||||||
|
|
||||||
/** 成分 */
|
/**
|
||||||
|
* 成分
|
||||||
|
*/
|
||||||
private String ingredientItem;
|
private String ingredientItem;
|
||||||
|
|
||||||
/** 是否为活性 */
|
/**
|
||||||
|
* 是否为活性
|
||||||
|
*/
|
||||||
private Integer activeFlag;
|
private Integer activeFlag;
|
||||||
|
|
||||||
/** 批次号 */
|
/**
|
||||||
|
* 批次号
|
||||||
|
*/
|
||||||
private String lotNumber;
|
private String lotNumber;
|
||||||
|
|
||||||
/** 生效日期 */
|
/**
|
||||||
|
* 生效日期
|
||||||
|
*/
|
||||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date effectiveDate;
|
private Date effectiveDate;
|
||||||
|
|
||||||
/** 到期日期 */
|
/**
|
||||||
|
* 到期日期
|
||||||
|
*/
|
||||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date expirationDate;
|
private Date expirationDate;
|
||||||
|
|
||||||
/** 用法 */
|
/**
|
||||||
|
* 用法
|
||||||
|
*/
|
||||||
private String methodCode;
|
private String methodCode;
|
||||||
|
|
||||||
/** 用药频次 */
|
/**
|
||||||
|
* 用药频次
|
||||||
|
*/
|
||||||
private String rateCode;
|
private String rateCode;
|
||||||
|
|
||||||
/** 单次剂量 */
|
/**
|
||||||
|
* 单次剂量
|
||||||
|
*/
|
||||||
private BigDecimal dose;
|
private BigDecimal dose;
|
||||||
|
|
||||||
/** 剂量单位 */
|
/**
|
||||||
|
* 剂量单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
@NotBlank(message = "剂量单位不能为空")
|
@NotBlank(message = "剂量单位不能为空")
|
||||||
private String doseUnitCode;
|
private String doseUnitCode;
|
||||||
private String doseUnitCode_dictText;
|
private String doseUnitCode_dictText;
|
||||||
|
|
||||||
/** 单次最大剂量 */
|
/**
|
||||||
|
* 单次最大剂量
|
||||||
|
*/
|
||||||
private BigDecimal maxUnit;
|
private BigDecimal maxUnit;
|
||||||
|
|
||||||
/** 药品定义 */
|
/**
|
||||||
|
* 药品定义
|
||||||
|
*/
|
||||||
private String definition;
|
private String definition;
|
||||||
|
|
||||||
/** 药品编号 */
|
/**
|
||||||
|
* 药品编号
|
||||||
|
*/
|
||||||
private String busNo;
|
private String busNo;
|
||||||
|
|
||||||
/** 药品名称 */
|
/**
|
||||||
|
* 药品名称
|
||||||
|
*/
|
||||||
@NotBlank(message = "药品名称不能为空")
|
@NotBlank(message = "药品名称不能为空")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
/** 适用范围 */
|
/**
|
||||||
|
* 适用范围
|
||||||
|
*/
|
||||||
private Integer domainEnum;
|
private Integer domainEnum;
|
||||||
|
|
||||||
/** 药品版本 */
|
/**
|
||||||
|
* 药品版本
|
||||||
|
*/
|
||||||
private String version;
|
private String version;
|
||||||
|
|
||||||
/** 英文药名 */
|
/**
|
||||||
|
* 英文药名
|
||||||
|
*/
|
||||||
private String nameEn;
|
private String nameEn;
|
||||||
|
|
||||||
/** 药品名称拼音码 */
|
/**
|
||||||
|
* 药品名称拼音码
|
||||||
|
*/
|
||||||
private String pyStr;
|
private String pyStr;
|
||||||
|
|
||||||
/** 药品五笔码 */
|
/**
|
||||||
|
* 药品五笔码
|
||||||
|
*/
|
||||||
private String wbStr;
|
private String wbStr;
|
||||||
|
|
||||||
/** 药品分类 */
|
/**
|
||||||
|
* 药品分类
|
||||||
|
*/
|
||||||
private String categoryCode;
|
private String categoryCode;
|
||||||
|
|
||||||
/** 商品名称 */
|
/**
|
||||||
|
* 商品名称
|
||||||
|
*/
|
||||||
private String merchandiseName;
|
private String merchandiseName;
|
||||||
|
|
||||||
/** 商品名称拼音码 */
|
/**
|
||||||
|
* 商品名称拼音码
|
||||||
|
*/
|
||||||
private String merchandisePyStr;
|
private String merchandisePyStr;
|
||||||
|
|
||||||
/** 商品五笔码 */
|
/**
|
||||||
|
* 商品五笔码
|
||||||
|
*/
|
||||||
private String merchandiseWbStr;
|
private String merchandiseWbStr;
|
||||||
|
|
||||||
/** 药品单位 */
|
/**
|
||||||
|
* 药品单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
private String unitCode_dictText;
|
private String unitCode_dictText;
|
||||||
|
|
||||||
/** 最小单位 */
|
/**
|
||||||
|
* 最小单位
|
||||||
|
*/
|
||||||
private String minUnitCode;
|
private String minUnitCode;
|
||||||
|
|
||||||
/** 所含耗材 */
|
/**
|
||||||
|
* 所含耗材
|
||||||
|
*/
|
||||||
private String comprisedText;
|
private String comprisedText;
|
||||||
|
|
||||||
/** 成分 */
|
/**
|
||||||
|
* 成分
|
||||||
|
*/
|
||||||
private String ingredient;
|
private String ingredient;
|
||||||
|
|
||||||
/** 拆零比 */
|
/**
|
||||||
|
* 拆零比
|
||||||
|
*/
|
||||||
private BigDecimal partPercent;
|
private BigDecimal partPercent;
|
||||||
|
|
||||||
/** 剂量形式 */
|
/**
|
||||||
|
* 剂量形式
|
||||||
|
*/
|
||||||
@Dict(dictCode = "dose_form_code")
|
@Dict(dictCode = "dose_form_code")
|
||||||
private Integer doseFrom;
|
private Integer doseFrom;
|
||||||
private String doseFrom_dictText;
|
private String doseFrom_dictText;
|
||||||
|
|
||||||
/** 批准文号 */
|
/**
|
||||||
|
* 批准文号
|
||||||
|
*/
|
||||||
private String approvalNumber;
|
private String approvalNumber;
|
||||||
|
|
||||||
/** 医保是否对码 */
|
/**
|
||||||
|
* 医保是否对码
|
||||||
|
*/
|
||||||
private Integer ybMatchFlag;
|
private Integer ybMatchFlag;
|
||||||
|
|
||||||
/** 医保编码 */
|
/**
|
||||||
|
* 医保编码
|
||||||
|
*/
|
||||||
private String ybNo;
|
private String ybNo;
|
||||||
|
|
||||||
/** 药理作用分类 */
|
/**
|
||||||
|
* 药理作用分类
|
||||||
|
*/
|
||||||
private String pharmacologyCategoryCode;
|
private String pharmacologyCategoryCode;
|
||||||
|
|
||||||
/** 是否皮试 */
|
/**
|
||||||
|
* 是否皮试
|
||||||
|
*/
|
||||||
private Integer skinTestFlag;
|
private Integer skinTestFlag;
|
||||||
|
|
||||||
/** 是否为注射药物 */
|
/**
|
||||||
|
* 是否为注射药物
|
||||||
|
*/
|
||||||
private Integer injectFlag;
|
private Integer injectFlag;
|
||||||
|
|
||||||
/** 生产厂家 */
|
/**
|
||||||
|
* 生产厂家
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long manufacturerId;
|
private Long manufacturerId;
|
||||||
|
|
||||||
/** 生产厂商文本 */
|
/**
|
||||||
|
* 生产厂商文本
|
||||||
|
*/
|
||||||
private String manufacturerText;
|
private String manufacturerText;
|
||||||
|
|
||||||
/** 供应商 */
|
/**
|
||||||
|
* 供应商
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long supplyId;
|
private Long supplyId;
|
||||||
|
|
||||||
/** 是否限制使用 */
|
/**
|
||||||
|
* 是否限制使用
|
||||||
|
*/
|
||||||
private Integer restrictedFlag;
|
private Integer restrictedFlag;
|
||||||
|
|
||||||
/** 限制使用范围 */
|
/**
|
||||||
|
* 限制使用范围
|
||||||
|
*/
|
||||||
private String restrictedScope;
|
private String restrictedScope;
|
||||||
|
|
||||||
/** 儿童用药标志 */
|
/**
|
||||||
|
* 儿童用药标志
|
||||||
|
*/
|
||||||
private Integer childrenFlag;
|
private Integer childrenFlag;
|
||||||
|
|
||||||
/** 产品特性 */
|
/**
|
||||||
|
* 产品特性
|
||||||
|
*/
|
||||||
private Integer characteristic;
|
private Integer characteristic;
|
||||||
|
|
||||||
/** 购入价 */
|
/**
|
||||||
|
* 购入价
|
||||||
|
*/
|
||||||
private BigDecimal purchasePrice;
|
private BigDecimal purchasePrice;
|
||||||
|
|
||||||
/** 零售价 */
|
/**
|
||||||
|
* 零售价
|
||||||
|
*/
|
||||||
private BigDecimal retailPrice;
|
private BigDecimal retailPrice;
|
||||||
|
|
||||||
/** 最高零售价 */
|
/**
|
||||||
|
* 最高零售价
|
||||||
|
*/
|
||||||
private BigDecimal maximumRetailPrice;
|
private BigDecimal maximumRetailPrice;
|
||||||
|
|
||||||
/** 医保类别 */
|
/**
|
||||||
|
* 医保类别
|
||||||
|
*/
|
||||||
private String ybType;
|
private String ybType;
|
||||||
|
|
||||||
/** 财务类别 */
|
/**
|
||||||
|
* 财务类别
|
||||||
|
*/
|
||||||
@Dict(dictCode = "fin_type_code")
|
@Dict(dictCode = "fin_type_code")
|
||||||
private String typeCode;
|
private String typeCode;
|
||||||
private String typeCode_dictText;
|
private String typeCode_dictText;
|
||||||
|
|
||||||
/** 单次最小用药频次 */
|
/**
|
||||||
|
* 单次最小用药频次
|
||||||
|
*/
|
||||||
private String minRateCode;
|
private String minRateCode;
|
||||||
|
|
||||||
/** 单次最大用药频次 */
|
/**
|
||||||
|
* 单次最大用药频次
|
||||||
|
*/
|
||||||
private String maxRateCode;
|
private String maxRateCode;
|
||||||
|
|
||||||
/** 药品状态 */
|
/**
|
||||||
|
* 药品状态
|
||||||
|
*/
|
||||||
private Integer statusEnum;
|
private Integer statusEnum;
|
||||||
private String statusEnum_enumText;
|
private String statusEnum_enumText;
|
||||||
|
|
||||||
/** 拆分属性 */
|
/**
|
||||||
|
* 拆分属性
|
||||||
|
*/
|
||||||
private Integer partAttributeEnum;
|
private Integer partAttributeEnum;
|
||||||
|
|
||||||
/** 贯标国家编码 */
|
/**
|
||||||
|
* 贯标国家编码
|
||||||
|
*/
|
||||||
private String nationalDrugCode;
|
private String nationalDrugCode;
|
||||||
|
|
||||||
/** 是否抗生素 */
|
/**
|
||||||
|
* 是否抗生素
|
||||||
|
*/
|
||||||
private Integer antibioticFlag;
|
private Integer antibioticFlag;
|
||||||
|
|
||||||
/** 是否自制 */
|
/**
|
||||||
|
* 是否自制
|
||||||
|
*/
|
||||||
private Integer selfFlag;
|
private Integer selfFlag;
|
||||||
|
|
||||||
/** DDD值 */
|
/**
|
||||||
|
* DDD值
|
||||||
|
*/
|
||||||
private String dddCode;
|
private String dddCode;
|
||||||
|
|
||||||
/** DDD单位 */
|
/**
|
||||||
|
* DDD单位
|
||||||
|
*/
|
||||||
private String dddUnitCode;
|
private String dddUnitCode;
|
||||||
|
|
||||||
/** 用量限定 */
|
/**
|
||||||
|
* 用量限定
|
||||||
|
*/
|
||||||
private BigDecimal usageLimit;
|
private BigDecimal usageLimit;
|
||||||
|
|
||||||
/** 抗生素分类 */
|
/**
|
||||||
|
* 抗生素分类
|
||||||
|
*/
|
||||||
@Dict(dictCode = "antibiotic_type_code")
|
@Dict(dictCode = "antibiotic_type_code")
|
||||||
private String antibioticCode;
|
private String antibioticCode;
|
||||||
private String antibioticCode_dictText;
|
private String antibioticCode_dictText;
|
||||||
|
|
||||||
/** 权限限制 */
|
/**
|
||||||
|
* 权限限制
|
||||||
|
*/
|
||||||
private Integer restrictedEnum;
|
private Integer restrictedEnum;
|
||||||
|
|
||||||
/** 基药标识 */
|
/**
|
||||||
|
* 基药标识
|
||||||
|
*/
|
||||||
private Integer basicFlag;
|
private Integer basicFlag;
|
||||||
|
|
||||||
/** 住院临时医嘱拆分属性 */
|
/**
|
||||||
|
* 住院临时医嘱拆分属性
|
||||||
|
*/
|
||||||
private Integer thoPartAttributeEnum;
|
private Integer thoPartAttributeEnum;
|
||||||
|
|
||||||
/** 最小库存警戒数量(常规单位) */
|
/**
|
||||||
|
* 最小库存警戒数量(常规单位)
|
||||||
|
*/
|
||||||
private BigDecimal itemMinQuantity;
|
private BigDecimal itemMinQuantity;
|
||||||
|
|
||||||
/** 最大库存警戒数量(常规单位) */
|
/**
|
||||||
|
* 最大库存警戒数量(常规单位)
|
||||||
|
*/
|
||||||
private BigDecimal itemMaxQuantity;
|
private BigDecimal itemMaxQuantity;
|
||||||
|
|
||||||
/** 剂量单位换算比 */
|
/**
|
||||||
|
* 剂量单位换算比
|
||||||
|
*/
|
||||||
private BigDecimal unitConversionRatio;
|
private BigDecimal unitConversionRatio;
|
||||||
|
|
||||||
/** 医保等级 */
|
/**
|
||||||
|
* 医保等级
|
||||||
|
*/
|
||||||
private Integer chrgitmLv;
|
private Integer chrgitmLv;
|
||||||
|
|
||||||
/** 处方标志 */
|
/**
|
||||||
|
* 处方标志
|
||||||
|
*/
|
||||||
private Integer rxFlag;
|
private Integer rxFlag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -263,12 +405,9 @@ public class MedicationManageUpDto {
|
|||||||
*/
|
*/
|
||||||
private String dosageInstruction;
|
private String dosageInstruction;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 药品69码
|
* 药品69码
|
||||||
*/
|
*/
|
||||||
private String drug69Code;
|
private String drug69Code;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,6 @@ import java.util.List;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -93,8 +89,8 @@ public class DepartmentIssuanceOrderServiceImpl implements IDepartmentIssuanceOr
|
|||||||
@Override
|
@Override
|
||||||
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
||||||
|
|
||||||
Page<DepartmentDetailDto> issuanceOrderDtoDetailPage =
|
Page<DepartmentDetailDto> issuanceOrderDtoDetailPage
|
||||||
departmentCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
= departmentCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
||||||
|
|
||||||
issuanceOrderDtoDetailPage.getRecords().forEach(e -> {
|
issuanceOrderDtoDetailPage.getRecords().forEach(e -> {
|
||||||
// 单据分类
|
// 单据分类
|
||||||
@@ -123,15 +119,14 @@ public class DepartmentIssuanceOrderServiceImpl implements IDepartmentIssuanceOr
|
|||||||
* @param dispenseIdList 耗材发放id
|
* @param dispenseIdList 耗材发放id
|
||||||
* @return 操作结果
|
* @return 操作结果
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean addOrEditIssuanceOrder(List<Long> dispenseIdList) {
|
public boolean addOrEditIssuanceOrder(List<Long> dispenseIdList) {
|
||||||
|
|
||||||
// 获取单据号
|
// 获取单据号
|
||||||
String busNo = this.getBusNo();
|
String busNo = this.getBusNo();
|
||||||
// 获取更表所需信息
|
// 获取更表所需信息
|
||||||
List<DepartmentDetailDto> detailDto =
|
List<DepartmentDetailDto> detailDto
|
||||||
departmentIssuanceOrderMapper.getInfo(dispenseIdList, DispenseStatus.COMPLETED.getValue());
|
= departmentIssuanceOrderMapper.getInfo(dispenseIdList, DispenseStatus.COMPLETED.getValue());
|
||||||
|
|
||||||
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
||||||
SupplyRequest supplyRequest;
|
SupplyRequest supplyRequest;
|
||||||
|
|||||||
@@ -4,14 +4,10 @@ import java.util.List;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.web.doctorstation.dto.*;
|
|
||||||
=======
|
|
||||||
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
||||||
import com.openhis.web.doctorstation.dto.AdviceSaveParam;
|
import com.openhis.web.doctorstation.dto.AdviceSaveParam;
|
||||||
import com.openhis.web.doctorstation.dto.OrderBindInfoDto;
|
import com.openhis.web.doctorstation.dto.OrderBindInfoDto;
|
||||||
import com.openhis.web.doctorstation.dto.UpdateGroupIdParam;
|
import com.openhis.web.doctorstation.dto.UpdateGroupIdParam;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 医生站-医嘱/处方 应用Service
|
* 医生站-医嘱/处方 应用Service
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
|
|
||||||
// @Resource
|
// @Resource
|
||||||
// IOrganizationLocationService iOrganizationLocationService;
|
// IOrganizationLocationService iOrganizationLocationService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
IMedicationDispenseService iMedicationDispenseService;
|
IMedicationDispenseService iMedicationDispenseService;
|
||||||
|
|
||||||
@@ -90,7 +89,6 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
|
|
||||||
// @Resource
|
// @Resource
|
||||||
// OutpatientRegistrationAppMapper outpatientRegistrationAppMapper;
|
// OutpatientRegistrationAppMapper outpatientRegistrationAppMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
DoctorStationSendApplyUtil doctorStationSendApplyUtil;
|
DoctorStationSendApplyUtil doctorStationSendApplyUtil;
|
||||||
|
|
||||||
@@ -101,35 +99,16 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
* @param locationId 药房id
|
* @param locationId 药房id
|
||||||
* @param adviceDefinitionIdParamList 医嘱定义id参数集合
|
* @param adviceDefinitionIdParamList 医嘱定义id参数集合
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param organizationId 患者挂号对应的科室id
|
|
||||||
* @param pageNo 当前页
|
|
||||||
* @param pageSize 每页多少条
|
|
||||||
* @param pricingFlag 划价标记
|
|
||||||
* @param adviceTypes 医嘱类型参数集合
|
|
||||||
=======
|
|
||||||
* @param organizationId 患者挂号对应的科室id
|
* @param organizationId 患者挂号对应的科室id
|
||||||
* @param pageNo 当前页
|
* @param pageNo 当前页
|
||||||
* @param pageSize 每页多少条
|
* @param pageSize 每页多少条
|
||||||
* @param pricingFlag 划价标记
|
* @param pricingFlag 划价标记
|
||||||
* @param adviceTypes 医嘱类型参数集合
|
* @param adviceTypes 医嘱类型参数集合
|
||||||
* @param orderPricing 医嘱定价来源 | 定时任务调用时传参
|
* @param orderPricing 医嘱定价来源 | 定时任务调用时传参
|
||||||
>>>>>>> v1.3
|
|
||||||
* @return 医嘱信息
|
* @return 医嘱信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public IPage<AdviceBaseDto> getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, String searchKey, Long locationId,
|
public IPage<AdviceBaseDto> getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, String searchKey, Long locationId,
|
||||||
<<<<<<< HEAD
|
|
||||||
List<Long> adviceDefinitionIdParamList, Long organizationId, Integer pageNo, Integer pageSize,
|
|
||||||
Integer pricingFlag, List<Integer> adviceTypes) {
|
|
||||||
// 医嘱定价来源
|
|
||||||
String orderPricingSource = TenantOptionUtil.getOptionContent(TenantOptionDict.ORDER_PRICING_SOURCE);
|
|
||||||
// 如果配置为空,使用retailPrice作为默认值
|
|
||||||
if (StringUtils.isEmpty(orderPricingSource)) {
|
|
||||||
// throw new ServiceException("租户配置项【医嘱定价来源】未配置");
|
|
||||||
orderPricingSource = "retailPrice";
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
List<Long> adviceDefinitionIdParamList, Long organizationId, Integer pageNo, Integer pageSize,
|
List<Long> adviceDefinitionIdParamList, Long organizationId, Integer pageNo, Integer pageSize,
|
||||||
Integer pricingFlag, List<Integer> adviceTypes, String orderPricing) {
|
Integer pricingFlag, List<Integer> adviceTypes, String orderPricing) {
|
||||||
// 设置默认科室 (不取前端传的了)
|
// 设置默认科室 (不取前端传的了)
|
||||||
@@ -143,27 +122,19 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
orderPricingSource = orderPricing;
|
orderPricingSource = orderPricing;
|
||||||
}
|
}
|
||||||
// 开药时药房允许多选开关
|
// 开药时药房允许多选开关
|
||||||
String pharmacyMultipleChoiceSwitch =
|
String pharmacyMultipleChoiceSwitch
|
||||||
TenantOptionUtil.getOptionContent(TenantOptionDict.PHARMACY_MULTIPLE_CHOICE_SWITCH);
|
= TenantOptionUtil.getOptionContent(TenantOptionDict.PHARMACY_MULTIPLE_CHOICE_SWITCH);
|
||||||
// 药房允许多选
|
// 药房允许多选
|
||||||
boolean pharmacyMultipleChoice = Whether.YES.getCode().equals(pharmacyMultipleChoiceSwitch);
|
boolean pharmacyMultipleChoice = Whether.YES.getCode().equals(pharmacyMultipleChoiceSwitch);
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<AdviceBaseDto> queryWrapper = HisQueryUtils.buildQueryWrapper(adviceBaseDto, searchKey,
|
QueryWrapper<AdviceBaseDto> queryWrapper = HisQueryUtils.buildQueryWrapper(adviceBaseDto, searchKey,
|
||||||
new HashSet<>(Arrays.asList("advice_name", "py_str", "wb_str")), null);
|
new HashSet<>(Arrays.asList("advice_name", "py_str", "wb_str")), null);
|
||||||
IPage<AdviceBaseDto> adviceBaseInfo = doctorStationAdviceAppMapper.getAdviceBaseInfo(
|
IPage<AdviceBaseDto> adviceBaseInfo = doctorStationAdviceAppMapper.getAdviceBaseInfo(
|
||||||
<<<<<<< HEAD
|
|
||||||
new Page<>(pageNo, pageSize), PublicationStatus.ACTIVE.getValue(), organizationId,
|
new Page<>(pageNo, pageSize), PublicationStatus.ACTIVE.getValue(), organizationId,
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
||||||
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, pricingFlag, adviceDefinitionIdParamList, adviceTypes,
|
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, pricingFlag, adviceDefinitionIdParamList, adviceTypes,
|
||||||
queryWrapper);
|
queryWrapper);
|
||||||
=======
|
|
||||||
new Page<>(pageNo, pageSize), PublicationStatus.ACTIVE.getValue(), organizationId,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
|
||||||
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, pricingFlag, adviceDefinitionIdParamList, adviceTypes,
|
|
||||||
queryWrapper);
|
|
||||||
>>>>>>> v1.3
|
|
||||||
List<AdviceBaseDto> adviceBaseDtoList = adviceBaseInfo.getRecords();
|
List<AdviceBaseDto> adviceBaseDtoList = adviceBaseInfo.getRecords();
|
||||||
|
|
||||||
// 如果searchKey不为null,对查询结果进行排序:adviceName以searchKey开头的排在前面
|
// 如果searchKey不为null,对查询结果进行排序:adviceName以searchKey开头的排在前面
|
||||||
@@ -172,22 +143,22 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 医嘱定义ID集合
|
// 医嘱定义ID集合
|
||||||
List<Long> adviceDefinitionIdList =
|
List<Long> adviceDefinitionIdList
|
||||||
adviceBaseDtoList.stream().map(AdviceBaseDto::getAdviceDefinitionId).collect(Collectors.toList());
|
= adviceBaseDtoList.stream().map(AdviceBaseDto::getAdviceDefinitionId).collect(Collectors.toList());
|
||||||
// 费用定价主表ID集合
|
// 费用定价主表ID集合
|
||||||
List<Long> chargeItemDefinitionIdList =
|
List<Long> chargeItemDefinitionIdList
|
||||||
adviceBaseDtoList.stream().map(AdviceBaseDto::getChargeItemDefinitionId).collect(Collectors.toList());
|
= adviceBaseDtoList.stream().map(AdviceBaseDto::getChargeItemDefinitionId).collect(Collectors.toList());
|
||||||
// 医嘱库存集合
|
// 医嘱库存集合
|
||||||
List<AdviceInventoryDto> adviceInventoryList =
|
List<AdviceInventoryDto> adviceInventoryList
|
||||||
doctorStationAdviceAppMapper.getAdviceInventory(locationId, adviceDefinitionIdList,
|
= doctorStationAdviceAppMapper.getAdviceInventory(locationId, adviceDefinitionIdList,
|
||||||
CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR, PublicationStatus.ACTIVE.getValue());
|
CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR, PublicationStatus.ACTIVE.getValue());
|
||||||
// 待发放个数信息
|
// 待发放个数信息
|
||||||
List<AdviceInventoryDto> adviceDraftInventoryList = doctorStationAdviceAppMapper.getAdviceDraftInventory(
|
List<AdviceInventoryDto> adviceDraftInventoryList = doctorStationAdviceAppMapper.getAdviceDraftInventory(
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
||||||
DispenseStatus.DRAFT.getValue(), DispenseStatus.PREPARATION.getValue());
|
DispenseStatus.DRAFT.getValue(), DispenseStatus.PREPARATION.getValue());
|
||||||
// 预减库存
|
// 预减库存
|
||||||
List<AdviceInventoryDto> adviceInventory =
|
List<AdviceInventoryDto> adviceInventory
|
||||||
adviceUtils.subtractInventory(adviceInventoryList, adviceDraftInventoryList);
|
= adviceUtils.subtractInventory(adviceInventoryList, adviceDraftInventoryList);
|
||||||
// 查询取药科室配置
|
// 查询取药科室配置
|
||||||
List<AdviceInventoryDto> medLocationConfig = doctorStationAdviceAppMapper.getMedLocationConfig(organizationId);
|
List<AdviceInventoryDto> medLocationConfig = doctorStationAdviceAppMapper.getMedLocationConfig(organizationId);
|
||||||
// 将配置转为 {categoryCode -> 允许的locationId集合}
|
// 将配置转为 {categoryCode -> 允许的locationId集合}
|
||||||
@@ -203,17 +174,10 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
}
|
}
|
||||||
// 费用定价子表信息
|
// 费用定价子表信息
|
||||||
List<AdvicePriceDto> childCharge = doctorStationAdviceAppMapper
|
List<AdvicePriceDto> childCharge = doctorStationAdviceAppMapper
|
||||||
<<<<<<< HEAD
|
|
||||||
.getChildCharge(ConditionCode.LOT_NUMBER_PRICE.getCode(), chargeItemDefinitionIdList);
|
.getChildCharge(ConditionCode.LOT_NUMBER_PRICE.getCode(), chargeItemDefinitionIdList);
|
||||||
// 费用定价主表信息
|
// 费用定价主表信息
|
||||||
List<AdvicePriceDto> mainCharge =
|
List<AdvicePriceDto> mainCharge
|
||||||
doctorStationAdviceAppMapper.getMainCharge(chargeItemDefinitionIdList, PublicationStatus.ACTIVE.getValue());
|
= doctorStationAdviceAppMapper.getMainCharge(chargeItemDefinitionIdList, PublicationStatus.ACTIVE.getValue());
|
||||||
=======
|
|
||||||
.getChildCharge(ConditionCode.LOT_NUMBER_PRICE.getCode(), chargeItemDefinitionIdList);
|
|
||||||
// 费用定价主表信息
|
|
||||||
List<AdvicePriceDto> mainCharge =
|
|
||||||
doctorStationAdviceAppMapper.getMainCharge(chargeItemDefinitionIdList, PublicationStatus.ACTIVE.getValue());
|
|
||||||
>>>>>>> v1.3
|
|
||||||
String unitCode = ""; // 包装单位
|
String unitCode = ""; // 包装单位
|
||||||
Long chargeItemDefinitionId; // 费用定价主表ID
|
Long chargeItemDefinitionId; // 费用定价主表ID
|
||||||
for (AdviceBaseDto baseDto : adviceBaseDtoList) {
|
for (AdviceBaseDto baseDto : adviceBaseDtoList) {
|
||||||
@@ -226,21 +190,12 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
baseDto.setInjectFlag_enumText(EnumUtils.getInfoByValue(Whether.class, baseDto.getInjectFlag()));
|
baseDto.setInjectFlag_enumText(EnumUtils.getInfoByValue(Whether.class, baseDto.getInjectFlag()));
|
||||||
case CommonConstants.TableName.ADM_DEVICE_DEFINITION: // 耗材
|
case CommonConstants.TableName.ADM_DEVICE_DEFINITION: // 耗材
|
||||||
// 每一条医嘱的库存集合信息 , 包装单位库存前端计算
|
// 每一条医嘱的库存集合信息 , 包装单位库存前端计算
|
||||||
<<<<<<< HEAD
|
|
||||||
List<
|
|
||||||
AdviceInventoryDto> inventoryList =
|
|
||||||
adviceInventory.stream()
|
|
||||||
.filter(e -> baseDto.getAdviceDefinitionId().equals(e.getItemId())
|
|
||||||
&& baseDto.getAdviceTableName().equals(e.getItemTable()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
=======
|
|
||||||
List<AdviceInventoryDto> inventoryList = adviceInventory.stream().filter(e -> baseDto
|
List<AdviceInventoryDto> inventoryList = adviceInventory.stream().filter(e -> baseDto
|
||||||
.getAdviceDefinitionId().equals(e.getItemId())
|
.getAdviceDefinitionId().equals(e.getItemId())
|
||||||
&& baseDto.getAdviceTableName().equals(e.getItemTable())
|
&& baseDto.getAdviceTableName().equals(e.getItemTable())
|
||||||
&& (pharmacyMultipleChoice
|
&& (pharmacyMultipleChoice
|
||||||
|| (baseDto.getPositionId() == null || baseDto.getPositionId().equals(e.getLocationId()))))
|
|| (baseDto.getPositionId() == null || baseDto.getPositionId().equals(e.getLocationId()))))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
>>>>>>> v1.3
|
|
||||||
// 库存信息
|
// 库存信息
|
||||||
baseDto.setInventoryList(inventoryList);
|
baseDto.setInventoryList(inventoryList);
|
||||||
// 设置默认产品批号
|
// 设置默认产品批号
|
||||||
@@ -277,7 +232,6 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
String finalUnitCode = unitCode;
|
String finalUnitCode = unitCode;
|
||||||
// 从定价子表取价格(适用于批次售卖场景)
|
// 从定价子表取价格(适用于批次售卖场景)
|
||||||
List<AdvicePriceDto> childPrice = childCharge.stream()
|
List<AdvicePriceDto> childPrice = childCharge.stream()
|
||||||
<<<<<<< HEAD
|
|
||||||
.filter(e -> e.getDefinitionId().equals(finalChargeItemDefinitionId)
|
.filter(e -> e.getDefinitionId().equals(finalChargeItemDefinitionId)
|
||||||
&& e.getConditionValue().equals(adviceInventoryDto.getLotNumber()))
|
&& e.getConditionValue().equals(adviceInventoryDto.getLotNumber()))
|
||||||
.peek(e -> e.setUnitCode(finalUnitCode)) // 设置 unitCode
|
.peek(e -> e.setUnitCode(finalUnitCode)) // 设置 unitCode
|
||||||
@@ -286,16 +240,6 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
List<AdvicePriceDto> mainPrice = mainCharge.stream()
|
List<AdvicePriceDto> mainPrice = mainCharge.stream()
|
||||||
.filter(e -> baseDto.getChargeItemDefinitionId().equals(e.getDefinitionId()))
|
.filter(e -> baseDto.getChargeItemDefinitionId().equals(e.getDefinitionId()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
=======
|
|
||||||
.filter(e -> e.getDefinitionId().equals(finalChargeItemDefinitionId)
|
|
||||||
&& e.getConditionValue().equals(adviceInventoryDto.getLotNumber()))
|
|
||||||
.peek(e -> e.setUnitCode(finalUnitCode)) // 设置 unitCode
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
// 从定价主表取价格(适用于统一零售价场景)
|
|
||||||
List<AdvicePriceDto> mainPrice = mainCharge.stream()
|
|
||||||
.filter(e -> baseDto.getChargeItemDefinitionId().equals(e.getDefinitionId()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 按批次售价
|
// 按批次售价
|
||||||
if (OrderPricingSource.BATCH_SELLING_PRICE.getCode().equals(orderPricingSource)) {
|
if (OrderPricingSource.BATCH_SELLING_PRICE.getCode().equals(orderPricingSource)) {
|
||||||
priceDtoList.addAll(childPrice);
|
priceDtoList.addAll(childPrice);
|
||||||
@@ -307,8 +251,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
baseDto.setPriceList(priceDtoList);
|
baseDto.setPriceList(priceDtoList);
|
||||||
break;
|
break;
|
||||||
case CommonConstants.TableName.WOR_ACTIVITY_DEFINITION: // 诊疗
|
case CommonConstants.TableName.WOR_ACTIVITY_DEFINITION: // 诊疗
|
||||||
List<AdvicePriceDto> priceList =
|
List<AdvicePriceDto> priceList
|
||||||
mainCharge.stream().filter(e -> baseDto.getChargeItemDefinitionId().equals(e.getDefinitionId()))
|
= mainCharge.stream().filter(e -> baseDto.getChargeItemDefinitionId().equals(e.getDefinitionId()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
// 价格信息
|
// 价格信息
|
||||||
baseDto.setPriceList(priceList);
|
baseDto.setPriceList(priceList);
|
||||||
@@ -327,11 +271,7 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
* 查询医嘱绑定信息
|
* 查询医嘱绑定信息
|
||||||
*
|
*
|
||||||
* @param typeCode 1:用法绑东西 2:诊疗绑东西
|
* @param typeCode 1:用法绑东西 2:诊疗绑东西
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param itemNo 用法的code 或者 诊疗定义id
|
* @param itemNo 用法的code 或者 诊疗定义id
|
||||||
=======
|
|
||||||
* @param itemNo 用法的code 或者 诊疗定义id
|
|
||||||
>>>>>>> v1.3
|
|
||||||
* @return 医嘱绑定信息
|
* @return 医嘱绑定信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@@ -366,10 +306,10 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
* 保存时,校验库存
|
* 保存时,校验库存
|
||||||
*/
|
*/
|
||||||
if (AdviceOpType.SAVE_ADVICE.getCode().equals(adviceOpType)) {
|
if (AdviceOpType.SAVE_ADVICE.getCode().equals(adviceOpType)) {
|
||||||
List<AdviceSaveDto> medUpdateList =
|
List<AdviceSaveDto> medUpdateList
|
||||||
medicineList.stream().filter(e -> e.getRequestId() != null).collect(Collectors.toList());
|
= medicineList.stream().filter(e -> e.getRequestId() != null).collect(Collectors.toList());
|
||||||
List<AdviceSaveDto> devUpdateList =
|
List<AdviceSaveDto> devUpdateList
|
||||||
deviceList.stream().filter(e -> e.getRequestId() != null).collect(Collectors.toList());
|
= deviceList.stream().filter(e -> e.getRequestId() != null).collect(Collectors.toList());
|
||||||
// 编辑时,释放本身占用的库存发放
|
// 编辑时,释放本身占用的库存发放
|
||||||
for (AdviceSaveDto adviceSaveDto : medUpdateList) {
|
for (AdviceSaveDto adviceSaveDto : medUpdateList) {
|
||||||
iMedicationDispenseService.deleteMedicationDispense(adviceSaveDto.getRequestId());
|
iMedicationDispenseService.deleteMedicationDispense(adviceSaveDto.getRequestId());
|
||||||
@@ -378,8 +318,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
iDeviceDispenseService.deleteDeviceDispense(adviceSaveDto.getRequestId());
|
iDeviceDispenseService.deleteDeviceDispense(adviceSaveDto.getRequestId());
|
||||||
}
|
}
|
||||||
|
|
||||||
List<AdviceSaveDto> needCheckList =
|
List<AdviceSaveDto> needCheckList
|
||||||
adviceSaveList.stream().filter(e -> !DbOpType.DELETE.getCode().equals(e.getDbOpType())
|
= adviceSaveList.stream().filter(e -> !DbOpType.DELETE.getCode().equals(e.getDbOpType())
|
||||||
&& !ItemType.ACTIVITY.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
&& !ItemType.ACTIVITY.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||||
// 校验库存
|
// 校验库存
|
||||||
String tipRes = adviceUtils.checkInventory(needCheckList);
|
String tipRes = adviceUtils.checkInventory(needCheckList);
|
||||||
@@ -395,8 +335,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
/**
|
/**
|
||||||
* 处理药品请求
|
* 处理药品请求
|
||||||
*/
|
*/
|
||||||
List<String> medRequestIdList =
|
List<String> medRequestIdList
|
||||||
this.handMedication(medicineList, curDate, adviceOpType, organizationId, signCode);
|
= this.handMedication(medicineList, curDate, adviceOpType, organizationId, signCode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理诊疗项目请求
|
* 处理诊疗项目请求
|
||||||
@@ -423,24 +363,15 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
.in(ChargeItem::getServiceId, requestIds));
|
.in(ChargeItem::getServiceId, requestIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"门诊医嘱"}));
|
|
||||||
=======
|
|
||||||
return R.ok(medRequestIdList,
|
return R.ok(medRequestIdList,
|
||||||
MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"门诊医嘱"}));
|
MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"门诊医嘱"}));
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理药品
|
* 处理药品
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
private void handMedication(List<AdviceSaveDto> medicineList, Date curDate, String adviceOpType,
|
|
||||||
Long organizationId, String signCode) {
|
|
||||||
=======
|
|
||||||
private List<String> handMedication(List<AdviceSaveDto> medicineList, Date curDate, String adviceOpType,
|
private List<String> handMedication(List<AdviceSaveDto> medicineList, Date curDate, String adviceOpType,
|
||||||
Long organizationId, String signCode) {
|
Long organizationId, String signCode) {
|
||||||
>>>>>>> v1.3
|
|
||||||
// 当前登录账号的科室id
|
// 当前登录账号的科室id
|
||||||
Long orgId = SecurityUtils.getLoginUser().getOrgId();
|
Long orgId = SecurityUtils.getLoginUser().getOrgId();
|
||||||
// 保存操作
|
// 保存操作
|
||||||
@@ -452,8 +383,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
// 声明费用项
|
// 声明费用项
|
||||||
ChargeItem chargeItem;
|
ChargeItem chargeItem;
|
||||||
// 新增 + 修改
|
// 新增 + 修改
|
||||||
List<AdviceSaveDto> insertOrUpdateList =
|
List<AdviceSaveDto> insertOrUpdateList
|
||||||
medicineList.stream().filter(e -> (DbOpType.INSERT.getCode().equals(e.getDbOpType())
|
= medicineList.stream().filter(e -> (DbOpType.INSERT.getCode().equals(e.getDbOpType())
|
||||||
|| DbOpType.UPDATE.getCode().equals(e.getDbOpType()))).collect(Collectors.toList());
|
|| DbOpType.UPDATE.getCode().equals(e.getDbOpType()))).collect(Collectors.toList());
|
||||||
// 删除
|
// 删除
|
||||||
List<AdviceSaveDto> deleteList = medicineList.stream()
|
List<AdviceSaveDto> deleteList = medicineList.stream()
|
||||||
@@ -532,14 +463,6 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
medicationRequest.setInfusionFlag(adviceSaveDto.getInjectFlag()); // 输液标志
|
medicationRequest.setInfusionFlag(adviceSaveDto.getInjectFlag()); // 输液标志
|
||||||
medicationRequest.setSortNumber(adviceSaveDto.getSortNumber()); // 排序号
|
medicationRequest.setSortNumber(adviceSaveDto.getSortNumber()); // 排序号
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
iMedicationRequestService.saveOrUpdate(medicationRequest);
|
|
||||||
|
|
||||||
if (is_save) {
|
|
||||||
// 处理药品发放
|
|
||||||
Long dispenseId =
|
|
||||||
iMedicationDispenseService.handleMedicationDispense(medicationRequest, adviceSaveDto.getDbOpType());
|
|
||||||
=======
|
|
||||||
if (medicationRequest.getId() == null) {
|
if (medicationRequest.getId() == null) {
|
||||||
firstTimeSave = true;
|
firstTimeSave = true;
|
||||||
}
|
}
|
||||||
@@ -549,9 +472,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
}
|
}
|
||||||
if (is_save) {
|
if (is_save) {
|
||||||
// 处理药品发放
|
// 处理药品发放
|
||||||
Long dispenseId =
|
Long dispenseId
|
||||||
iMedicationDispenseService.handleMedicationDispense(medicationRequest, adviceSaveDto.getDbOpType());
|
= iMedicationDispenseService.handleMedicationDispense(medicationRequest, adviceSaveDto.getDbOpType());
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 保存药品费用项
|
// 保存药品费用项
|
||||||
chargeItem = new ChargeItem();
|
chargeItem = new ChargeItem();
|
||||||
@@ -586,10 +508,7 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
return medRequestIdList;
|
return medRequestIdList;
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -606,8 +525,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
// 声明费用项
|
// 声明费用项
|
||||||
ChargeItem chargeItem;
|
ChargeItem chargeItem;
|
||||||
// 新增 + 修改
|
// 新增 + 修改
|
||||||
List<AdviceSaveDto> insertOrUpdateList =
|
List<AdviceSaveDto> insertOrUpdateList
|
||||||
deviceList.stream().filter(e -> (DbOpType.INSERT.getCode().equals(e.getDbOpType())
|
= deviceList.stream().filter(e -> (DbOpType.INSERT.getCode().equals(e.getDbOpType())
|
||||||
|| DbOpType.UPDATE.getCode().equals(e.getDbOpType()))).collect(Collectors.toList());
|
|| DbOpType.UPDATE.getCode().equals(e.getDbOpType()))).collect(Collectors.toList());
|
||||||
// 删除
|
// 删除
|
||||||
List<AdviceSaveDto> deleteList = deviceList.stream()
|
List<AdviceSaveDto> deleteList = deviceList.stream()
|
||||||
@@ -666,12 +585,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
iDeviceRequestService.saveOrUpdate(deviceRequest);
|
iDeviceRequestService.saveOrUpdate(deviceRequest);
|
||||||
if (is_save) {
|
if (is_save) {
|
||||||
// 处理耗材发放
|
// 处理耗材发放
|
||||||
Long dispenseId =
|
Long dispenseId
|
||||||
<<<<<<< HEAD
|
= iDeviceDispenseService.handleDeviceDispense(deviceRequest, adviceSaveDto.getDbOpType());
|
||||||
iDeviceDispenseService.handleDeviceDispense(deviceRequest, adviceSaveDto.getDbOpType());
|
|
||||||
=======
|
|
||||||
iDeviceDispenseService.handleDeviceDispense(deviceRequest, adviceSaveDto.getDbOpType());
|
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 保存耗材费用项
|
// 保存耗材费用项
|
||||||
chargeItem = new ChargeItem();
|
chargeItem = new ChargeItem();
|
||||||
@@ -721,8 +636,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
// 声明费用项
|
// 声明费用项
|
||||||
ChargeItem chargeItem;
|
ChargeItem chargeItem;
|
||||||
// 新增 + 修改
|
// 新增 + 修改
|
||||||
List<AdviceSaveDto> insertOrUpdateList =
|
List<AdviceSaveDto> insertOrUpdateList
|
||||||
activityList.stream().filter(e -> (DbOpType.INSERT.getCode().equals(e.getDbOpType())
|
= activityList.stream().filter(e -> (DbOpType.INSERT.getCode().equals(e.getDbOpType())
|
||||||
|| DbOpType.UPDATE.getCode().equals(e.getDbOpType()))).collect(Collectors.toList());
|
|| DbOpType.UPDATE.getCode().equals(e.getDbOpType()))).collect(Collectors.toList());
|
||||||
// 删除
|
// 删除
|
||||||
List<AdviceSaveDto> deleteList = activityList.stream()
|
List<AdviceSaveDto> deleteList = activityList.stream()
|
||||||
@@ -816,8 +731,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
|
|
||||||
// 第一次保存时,处理诊疗套餐的子项信息
|
// 第一次保存时,处理诊疗套餐的子项信息
|
||||||
if (adviceSaveDto.getRequestId() == null) {
|
if (adviceSaveDto.getRequestId() == null) {
|
||||||
ActivityDefinition activityDefinition =
|
ActivityDefinition activityDefinition
|
||||||
iActivityDefinitionService.getById(adviceSaveDto.getAdviceDefinitionId());
|
= iActivityDefinitionService.getById(adviceSaveDto.getAdviceDefinitionId());
|
||||||
String childrenJson = activityDefinition.getChildrenJson();
|
String childrenJson = activityDefinition.getChildrenJson();
|
||||||
if (childrenJson != null) {
|
if (childrenJson != null) {
|
||||||
// 诊疗子项参数类
|
// 诊疗子项参数类
|
||||||
@@ -840,30 +755,18 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
adviceSaveDto.setRequestId(serviceRequest.getId());
|
adviceSaveDto.setRequestId(serviceRequest.getId());
|
||||||
try {
|
try {
|
||||||
// 查询诊疗定义
|
// 查询诊疗定义
|
||||||
ActivityDefinition activityDefinition =
|
ActivityDefinition activityDefinition
|
||||||
<<<<<<< HEAD
|
= iActivityDefinitionService.getById(adviceSaveDto.getAdviceDefinitionId());
|
||||||
iActivityDefinitionService.getById(adviceSaveDto.getAdviceDefinitionId());
|
|
||||||
if (activityDefinition != null) {
|
if (activityDefinition != null) {
|
||||||
// 检验 或 检查
|
// 检验 或 检查
|
||||||
if (ActivityType.PROOF.getValue().equals(activityDefinition.getTypeEnum())
|
if (ActivityType.PROOF.getValue().equals(activityDefinition.getTypeEnum())
|
||||||
|| ActivityType.TEST.getValue().equals(activityDefinition.getTypeEnum())) {
|
|| ActivityType.TEST.getValue().equals(activityDefinition.getTypeEnum())) {
|
||||||
=======
|
|
||||||
iActivityDefinitionService.getById(adviceSaveDto.getAdviceDefinitionId());
|
|
||||||
if (activityDefinition != null) {
|
|
||||||
// 检验 或 检查
|
|
||||||
if (ActivityType.PROOF.getValue().equals(activityDefinition.getTypeEnum())
|
|
||||||
|| ActivityType.TEST.getValue().equals(activityDefinition.getTypeEnum())) {
|
|
||||||
>>>>>>> v1.3
|
|
||||||
doctorStationSendApplyUtil.sendCrossSystemApply(adviceSaveDto, organizationId, curDate);
|
doctorStationSendApplyUtil.sendCrossSystemApply(adviceSaveDto, organizationId, curDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
if (!Whether.YES.getCode()
|
if (!Whether.YES.getCode()
|
||||||
<<<<<<< HEAD
|
|
||||||
.equals(TenantOptionUtil.getOptionContent(TenantOptionDict.LIS_PACS_ERROR_IGNORE))) {
|
.equals(TenantOptionUtil.getOptionContent(TenantOptionDict.LIS_PACS_ERROR_IGNORE))) {
|
||||||
=======
|
|
||||||
.equals(TenantOptionUtil.getOptionContent(TenantOptionDict.LIS_PACS_ERROR_IGNORE))) {
|
|
||||||
>>>>>>> v1.3
|
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
@@ -884,15 +787,9 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||||
// 医嘱请求数据
|
// 医嘱请求数据
|
||||||
List<RequestBaseDto> requestBaseInfo = doctorStationAdviceAppMapper.getRequestBaseInfo(encounterId, null,
|
List<RequestBaseDto> requestBaseInfo = doctorStationAdviceAppMapper.getRequestBaseInfo(encounterId, null,
|
||||||
<<<<<<< HEAD
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
||||||
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.NO.getCode(),
|
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.NO.getCode(),
|
||||||
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
||||||
=======
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
|
||||||
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.NO.getCode(),
|
|
||||||
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
|
||||||
>>>>>>> v1.3
|
|
||||||
for (RequestBaseDto requestBaseDto : requestBaseInfo) {
|
for (RequestBaseDto requestBaseDto : requestBaseInfo) {
|
||||||
// 请求状态
|
// 请求状态
|
||||||
requestBaseDto
|
requestBaseDto
|
||||||
@@ -934,9 +831,12 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
|
|
||||||
chargeItemList.forEach(item -> {
|
chargeItemList.forEach(item -> {
|
||||||
switch (item.getServiceTable()) {
|
switch (item.getServiceTable()) {
|
||||||
case CommonConstants.TableName.MED_MEDICATION_REQUEST -> medReqIdList.add(item.getServiceId());
|
case CommonConstants.TableName.MED_MEDICATION_REQUEST ->
|
||||||
case CommonConstants.TableName.WOR_DEVICE_REQUEST -> devReqIdList.add(item.getServiceId());
|
medReqIdList.add(item.getServiceId());
|
||||||
case CommonConstants.TableName.WOR_SERVICE_REQUEST -> serReqIdList.add(item.getServiceId());
|
case CommonConstants.TableName.WOR_DEVICE_REQUEST ->
|
||||||
|
devReqIdList.add(item.getServiceId());
|
||||||
|
case CommonConstants.TableName.WOR_SERVICE_REQUEST ->
|
||||||
|
serReqIdList.add(item.getServiceId());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
List<Long> chargeItemIdList = chargeItemList.stream().map(ChargeItem::getId).collect(Collectors.toList());
|
List<Long> chargeItemIdList = chargeItemList.stream().map(ChargeItem::getId).collect(Collectors.toList());
|
||||||
@@ -973,15 +873,9 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||||
// 医嘱请求数据
|
// 医嘱请求数据
|
||||||
List<RequestBaseDto> requestBaseInfo = doctorStationAdviceAppMapper.getRequestBaseInfo(encounterId, patientId,
|
List<RequestBaseDto> requestBaseInfo = doctorStationAdviceAppMapper.getRequestBaseInfo(encounterId, patientId,
|
||||||
<<<<<<< HEAD
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
||||||
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.YES.getCode(),
|
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.YES.getCode(),
|
||||||
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
||||||
=======
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
|
||||||
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.YES.getCode(),
|
|
||||||
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
|
||||||
>>>>>>> v1.3
|
|
||||||
for (RequestBaseDto requestBaseDto : requestBaseInfo) {
|
for (RequestBaseDto requestBaseDto : requestBaseInfo) {
|
||||||
// 请求状态
|
// 请求状态
|
||||||
requestBaseDto
|
requestBaseDto
|
||||||
@@ -1098,7 +992,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据searchKey对医嘱列表进行排序:adviceName以searchKey(汉字)开头的排在前面 | pyStr以searchKey(字母)开头的排在前面
|
* 根据searchKey对医嘱列表进行排序:adviceName以searchKey(汉字)开头的排在前面 |
|
||||||
|
* pyStr以searchKey(字母)开头的排在前面
|
||||||
*
|
*
|
||||||
* @param adviceList 医嘱列表
|
* @param adviceList 医嘱列表
|
||||||
* @param searchKey 搜索关键字
|
* @param searchKey 搜索关键字
|
||||||
@@ -1113,10 +1008,10 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
|||||||
|
|
||||||
adviceList.sort((a, b) -> {
|
adviceList.sort((a, b) -> {
|
||||||
// 根据searchKey类型选择不同的字段
|
// 根据searchKey类型选择不同的字段
|
||||||
String aValue =
|
String aValue
|
||||||
isPinyinSearch ? (a.getPyStr() != null ? a.getPyStr() : a.getAdviceName()) : a.getAdviceName();
|
= isPinyinSearch ? (a.getPyStr() != null ? a.getPyStr() : a.getAdviceName()) : a.getAdviceName();
|
||||||
String bValue =
|
String bValue
|
||||||
isPinyinSearch ? (b.getPyStr() != null ? b.getPyStr() : b.getAdviceName()) : b.getAdviceName();
|
= isPinyinSearch ? (b.getPyStr() != null ? b.getPyStr() : b.getAdviceName()) : b.getAdviceName();
|
||||||
|
|
||||||
// 处理可能的null值
|
// 处理可能的null值
|
||||||
if (aValue == null && bValue == null) {
|
if (aValue == null && bValue == null) {
|
||||||
|
|||||||
@@ -192,8 +192,8 @@ public class DoctorStationChineseMedicalAppServiceImpl implements IDoctorStation
|
|||||||
List<EncounterDiagnosis> diagnosisList = iEncounterDiagnosisService.getDiagnosisList(encounterId);
|
List<EncounterDiagnosis> diagnosisList = iEncounterDiagnosisService.getDiagnosisList(encounterId);
|
||||||
List<EncounterDiagnosis> newdiagnosisList = new ArrayList<>();
|
List<EncounterDiagnosis> newdiagnosisList = new ArrayList<>();
|
||||||
|
|
||||||
newdiagnosisList =
|
newdiagnosisList
|
||||||
diagnosisList.stream().filter(diagno -> diagno.getDeleteFlag().equals("0") && diagno.getDiagSrtNo() != null)
|
= diagnosisList.stream().filter(diagno -> diagno.getDeleteFlag().equals("0") && diagno.getDiagSrtNo() != null)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
newdiagnosisList = newdiagnosisList.stream().sorted((d1, d2) -> d2.getDiagSrtNo().compareTo(d1.getDiagSrtNo())) // 降序
|
newdiagnosisList = newdiagnosisList.stream().sorted((d1, d2) -> d2.getDiagSrtNo().compareTo(d1.getDiagSrtNo())) // 降序
|
||||||
@@ -290,8 +290,8 @@ public class DoctorStationChineseMedicalAppServiceImpl implements IDoctorStation
|
|||||||
public R<?> getTcmEncounterDiagnosis(Long encounterId) {
|
public R<?> getTcmEncounterDiagnosis(Long encounterId) {
|
||||||
HashMap<String, Object> resultMap = new HashMap<>();
|
HashMap<String, Object> resultMap = new HashMap<>();
|
||||||
// 中医就诊诊断信息
|
// 中医就诊诊断信息
|
||||||
List<DiagnosisQueryDto> tcmEncounterDiagnosis =
|
List<DiagnosisQueryDto> tcmEncounterDiagnosis
|
||||||
doctorStationChineseMedicalAppMapper.getTcmEncounterDiagnosis(encounterId);
|
= doctorStationChineseMedicalAppMapper.getTcmEncounterDiagnosis(encounterId);
|
||||||
// 病
|
// 病
|
||||||
List<DiagnosisQueryDto> illness = tcmEncounterDiagnosis.stream().filter(
|
List<DiagnosisQueryDto> illness = tcmEncounterDiagnosis.stream().filter(
|
||||||
e -> ConditionDefinitionSource.TRADITIONAL_CHINESE_MEDICINE_DIAGNOSIS.getValue().equals(e.getSourceEnum()))
|
e -> ConditionDefinitionSource.TRADITIONAL_CHINESE_MEDICINE_DIAGNOSIS.getValue().equals(e.getSourceEnum()))
|
||||||
@@ -358,12 +358,12 @@ public class DoctorStationChineseMedicalAppServiceImpl implements IDoctorStation
|
|||||||
// 是否代煎
|
// 是否代煎
|
||||||
Integer sufferingFlag = adviceSaveParam.getSufferingFlag();
|
Integer sufferingFlag = adviceSaveParam.getSufferingFlag();
|
||||||
// 中药代煎定义id
|
// 中药代煎定义id
|
||||||
Long sufferingDefinitionId =
|
Long sufferingDefinitionId
|
||||||
iActivityDefinitionService.getAppointActivityDefinitionId(CommonConstants.BusinessName.SUFFERING_TCM);
|
= iActivityDefinitionService.getAppointActivityDefinitionId(CommonConstants.BusinessName.SUFFERING_TCM);
|
||||||
// 保存时,校验库存
|
// 保存时,校验库存
|
||||||
if (is_save) {
|
if (is_save) {
|
||||||
List<AdviceSaveDto> medUpdateList =
|
List<AdviceSaveDto> medUpdateList
|
||||||
medicineList.stream().filter(e -> e.getRequestId() != null).collect(Collectors.toList());
|
= medicineList.stream().filter(e -> e.getRequestId() != null).collect(Collectors.toList());
|
||||||
// 编辑时,释放本身占用的库存发放
|
// 编辑时,释放本身占用的库存发放
|
||||||
for (AdviceSaveDto adviceSaveDto : medUpdateList) {
|
for (AdviceSaveDto adviceSaveDto : medUpdateList) {
|
||||||
iMedicationDispenseService.deleteMedicationDispense(adviceSaveDto.getRequestId());
|
iMedicationDispenseService.deleteMedicationDispense(adviceSaveDto.getRequestId());
|
||||||
@@ -381,8 +381,8 @@ public class DoctorStationChineseMedicalAppServiceImpl implements IDoctorStation
|
|||||||
// 费用项
|
// 费用项
|
||||||
ChargeItem chargeItem;
|
ChargeItem chargeItem;
|
||||||
// 新增 + 修改
|
// 新增 + 修改
|
||||||
List<AdviceSaveDto> insertOrUpdateList =
|
List<AdviceSaveDto> insertOrUpdateList
|
||||||
medicineList.stream().filter(e -> (DbOpType.INSERT.getCode().equals(e.getDbOpType())
|
= medicineList.stream().filter(e -> (DbOpType.INSERT.getCode().equals(e.getDbOpType())
|
||||||
|| DbOpType.UPDATE.getCode().equals(e.getDbOpType()))).collect(Collectors.toList());
|
|| DbOpType.UPDATE.getCode().equals(e.getDbOpType()))).collect(Collectors.toList());
|
||||||
// 删除
|
// 删除
|
||||||
List<AdviceSaveDto> deleteList = medicineList.stream()
|
List<AdviceSaveDto> deleteList = medicineList.stream()
|
||||||
@@ -403,8 +403,8 @@ public class DoctorStationChineseMedicalAppServiceImpl implements IDoctorStation
|
|||||||
|
|
||||||
if (is_sign) {
|
if (is_sign) {
|
||||||
// 按groupId分组
|
// 按groupId分组
|
||||||
Map<Long, List<AdviceSaveDto>> groupMap =
|
Map<Long, List<AdviceSaveDto>> groupMap
|
||||||
insertOrUpdateList.stream().collect(Collectors.groupingBy(AdviceSaveDto::getGroupId));
|
= insertOrUpdateList.stream().collect(Collectors.groupingBy(AdviceSaveDto::getGroupId));
|
||||||
// 为每个分组生成唯一的处方号
|
// 为每个分组生成唯一的处方号
|
||||||
groupMap.forEach((groupId, groupList) -> {
|
groupMap.forEach((groupId, groupList) -> {
|
||||||
// 先查询当前groupId是否已经被签发生成过处方号
|
// 先查询当前groupId是否已经被签发生成过处方号
|
||||||
@@ -413,8 +413,8 @@ public class DoctorStationChineseMedicalAppServiceImpl implements IDoctorStation
|
|||||||
if (!list.isEmpty() && StringUtils.isNotEmpty(list.get(0).getPrescriptionNo())) {
|
if (!list.isEmpty() && StringUtils.isNotEmpty(list.get(0).getPrescriptionNo())) {
|
||||||
groupList.forEach(dto -> dto.setPrescriptionNo(list.get(0).getPrescriptionNo()));
|
groupList.forEach(dto -> dto.setPrescriptionNo(list.get(0).getPrescriptionNo()));
|
||||||
} else {
|
} else {
|
||||||
String prescriptionNo =
|
String prescriptionNo
|
||||||
assignSeqUtil.getSeq(AssignSeqEnum.PRESCRIPTION_CHINESE_HERBAL_MEDICINE.getPrefix(), 8);
|
= assignSeqUtil.getSeq(AssignSeqEnum.PRESCRIPTION_CHINESE_HERBAL_MEDICINE.getPrefix(), 8);
|
||||||
groupList.forEach(dto -> dto.setPrescriptionNo(prescriptionNo));
|
groupList.forEach(dto -> dto.setPrescriptionNo(prescriptionNo));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -467,8 +467,8 @@ public class DoctorStationChineseMedicalAppServiceImpl implements IDoctorStation
|
|||||||
iMedicationRequestService.saveOrUpdate(medicationRequest);
|
iMedicationRequestService.saveOrUpdate(medicationRequest);
|
||||||
if (is_save) {
|
if (is_save) {
|
||||||
// 处理药品发放
|
// 处理药品发放
|
||||||
Long dispenseId =
|
Long dispenseId
|
||||||
iMedicationDispenseService.handleMedicationDispense(medicationRequest, adviceSaveDto.getDbOpType());
|
= iMedicationDispenseService.handleMedicationDispense(medicationRequest, adviceSaveDto.getDbOpType());
|
||||||
|
|
||||||
// 保存药品费用项
|
// 保存药品费用项
|
||||||
chargeItem = new ChargeItem();
|
chargeItem = new ChargeItem();
|
||||||
@@ -533,11 +533,7 @@ public class DoctorStationChineseMedicalAppServiceImpl implements IDoctorStation
|
|||||||
|
|
||||||
// 对应的诊疗医嘱信息
|
// 对应的诊疗医嘱信息
|
||||||
AdviceBaseDto activityAdviceBaseDto = iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, null,
|
AdviceBaseDto activityAdviceBaseDto = iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, null,
|
||||||
<<<<<<< HEAD
|
|
||||||
null, null, organizationId, 1, 1, Whether.NO.getValue(), List.of(3)).getRecords().get(0);
|
|
||||||
=======
|
|
||||||
null, null, organizationId, 1, 1, Whether.NO.getValue(), List.of(3), null).getRecords().get(0);
|
null, null, organizationId, 1, 1, Whether.NO.getValue(), List.of(3), null).getRecords().get(0);
|
||||||
>>>>>>> v1.3
|
|
||||||
if (activityAdviceBaseDto != null) {
|
if (activityAdviceBaseDto != null) {
|
||||||
// 费用定价
|
// 费用定价
|
||||||
AdvicePriceDto advicePriceDto = activityAdviceBaseDto.getPriceList().get(0);
|
AdvicePriceDto advicePriceDto = activityAdviceBaseDto.getPriceList().get(0);
|
||||||
|
|||||||
@@ -44,17 +44,6 @@ public class DoctorStationAdviceController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping(value = "/advice-base-info")
|
@GetMapping(value = "/advice-base-info")
|
||||||
public R<?> getAdviceBaseInfo(AdviceBaseDto adviceBaseDto,
|
public R<?> getAdviceBaseInfo(AdviceBaseDto adviceBaseDto,
|
||||||
<<<<<<< HEAD
|
|
||||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
|
||||||
@RequestParam(value = "locationId", required = false) Long locationId,
|
|
||||||
@RequestParam(value = "adviceDefinitionIdParamList", required = false) List<Long> adviceDefinitionIdParamList,
|
|
||||||
@RequestParam(value = "organizationId", defaultValue = "0") Long organizationId,
|
|
||||||
@RequestParam(value = "adviceTypes", defaultValue = "1,2,3") List<Integer> adviceTypes,
|
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
|
||||||
return R.ok(iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, searchKey, locationId,
|
|
||||||
adviceDefinitionIdParamList, organizationId, pageNo, pageSize, Whether.NO.getValue(), adviceTypes));
|
|
||||||
=======
|
|
||||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||||
@RequestParam(value = "locationId", required = false) Long locationId,
|
@RequestParam(value = "locationId", required = false) Long locationId,
|
||||||
@RequestParam(value = "adviceDefinitionIdParamList", required = false) List<Long> adviceDefinitionIdParamList,
|
@RequestParam(value = "adviceDefinitionIdParamList", required = false) List<Long> adviceDefinitionIdParamList,
|
||||||
@@ -64,27 +53,18 @@ public class DoctorStationAdviceController {
|
|||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||||
return R.ok(iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, searchKey, locationId,
|
return R.ok(iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, searchKey, locationId,
|
||||||
adviceDefinitionIdParamList, organizationId, pageNo, pageSize, Whether.NO.getValue(), adviceTypes, null));
|
adviceDefinitionIdParamList, organizationId, pageNo, pageSize, Whether.NO.getValue(), adviceTypes, null));
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询医嘱绑定信息
|
* 查询医嘱绑定信息
|
||||||
*
|
*
|
||||||
* @param typeCode 1:用法绑东西 2:诊疗绑东西
|
* @param typeCode 1:用法绑东西 2:诊疗绑东西
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param itemNo 用法的code 或者 诊疗定义id
|
* @param itemNo 用法的code 或者 诊疗定义id
|
||||||
=======
|
|
||||||
* @param itemNo 用法的code 或者 诊疗定义id
|
|
||||||
>>>>>>> v1.3
|
|
||||||
* @return 医嘱绑定信息
|
* @return 医嘱绑定信息
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/order-bind-info")
|
@GetMapping(value = "/order-bind-info")
|
||||||
public R<?> getOrderBindInfo(@RequestParam(value = "typeCode") String typeCode,
|
public R<?> getOrderBindInfo(@RequestParam(value = "typeCode") String typeCode,
|
||||||
<<<<<<< HEAD
|
|
||||||
@RequestParam(value = "itemNo") String itemNo) {
|
@RequestParam(value = "itemNo") String itemNo) {
|
||||||
=======
|
|
||||||
@RequestParam(value = "itemNo") String itemNo) {
|
|
||||||
>>>>>>> v1.3
|
|
||||||
return R.ok(iDoctorStationAdviceAppService.getOrderBindInfo(typeCode, itemNo));
|
return R.ok(iDoctorStationAdviceAppService.getOrderBindInfo(typeCode, itemNo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,10 +17,14 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class AdviceBaseDto {
|
public class AdviceBaseDto {
|
||||||
|
|
||||||
/** 医嘱类型 */
|
/**
|
||||||
|
* 医嘱类型
|
||||||
|
*/
|
||||||
private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目
|
private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目
|
||||||
|
|
||||||
/** 编号 */
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
private String busNo;
|
private String busNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -28,22 +32,34 @@ public class AdviceBaseDto {
|
|||||||
*/
|
*/
|
||||||
private String categoryCode;
|
private String categoryCode;
|
||||||
|
|
||||||
/** 药品性质 */
|
/**
|
||||||
|
* 药品性质
|
||||||
|
*/
|
||||||
private String pharmacologyCategoryCode;
|
private String pharmacologyCategoryCode;
|
||||||
|
|
||||||
/** 拆零比 */
|
/**
|
||||||
|
* 拆零比
|
||||||
|
*/
|
||||||
private BigDecimal partPercent;
|
private BigDecimal partPercent;
|
||||||
|
|
||||||
/** 剂量换算 */
|
/**
|
||||||
|
* 剂量换算
|
||||||
|
*/
|
||||||
private BigDecimal unitConversionRatio;
|
private BigDecimal unitConversionRatio;
|
||||||
|
|
||||||
/** 拆分属性-门诊 */
|
/**
|
||||||
|
* 拆分属性-门诊
|
||||||
|
*/
|
||||||
private Integer partAttributeEnum;
|
private Integer partAttributeEnum;
|
||||||
|
|
||||||
/** 住院临时医嘱拆分属性 */
|
/**
|
||||||
|
* 住院临时医嘱拆分属性
|
||||||
|
*/
|
||||||
private Integer thoPartAttributeEnum;
|
private Integer thoPartAttributeEnum;
|
||||||
|
|
||||||
/** 医嘱定义ID */
|
/**
|
||||||
|
* 医嘱定义ID
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long adviceDefinitionId;
|
private Long adviceDefinitionId;
|
||||||
|
|
||||||
@@ -58,7 +74,9 @@ public class AdviceBaseDto {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long positionId;
|
private Long positionId;
|
||||||
|
|
||||||
/** 医嘱名称 */
|
/**
|
||||||
|
* 医嘱名称
|
||||||
|
*/
|
||||||
private String adviceName;
|
private String adviceName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -66,16 +84,24 @@ public class AdviceBaseDto {
|
|||||||
*/
|
*/
|
||||||
private String adviceBusNo;
|
private String adviceBusNo;
|
||||||
|
|
||||||
/** 拼音码 */
|
/**
|
||||||
|
* 拼音码
|
||||||
|
*/
|
||||||
private String pyStr;
|
private String pyStr;
|
||||||
|
|
||||||
/** 五笔码 */
|
/**
|
||||||
|
* 五笔码
|
||||||
|
*/
|
||||||
private String wbStr;
|
private String wbStr;
|
||||||
|
|
||||||
/** 医保编码 */
|
/**
|
||||||
|
* 医保编码
|
||||||
|
*/
|
||||||
private String ybNo;
|
private String ybNo;
|
||||||
|
|
||||||
/** 商品名称 */
|
/**
|
||||||
|
* 商品名称
|
||||||
|
*/
|
||||||
private String productName;
|
private String productName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,20 +110,28 @@ public class AdviceBaseDto {
|
|||||||
private Integer activityType;
|
private Integer activityType;
|
||||||
private String activityType_enumText;
|
private String activityType_enumText;
|
||||||
|
|
||||||
/** 是否皮试 */
|
/**
|
||||||
|
* 是否皮试
|
||||||
|
*/
|
||||||
private Integer skinTestFlag;
|
private Integer skinTestFlag;
|
||||||
private String skinTestFlag_enumText;
|
private String skinTestFlag_enumText;
|
||||||
|
|
||||||
/** 是否为注射药物 */
|
/**
|
||||||
|
* 是否为注射药物
|
||||||
|
*/
|
||||||
private Integer injectFlag;
|
private Integer injectFlag;
|
||||||
private String injectFlag_enumText;
|
private String injectFlag_enumText;
|
||||||
|
|
||||||
/** 包装单位 */
|
/**
|
||||||
|
* 包装单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
private String unitCode_dictText;
|
private String unitCode_dictText;
|
||||||
|
|
||||||
/** 最小单位 */
|
/**
|
||||||
|
* 最小单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String minUnitCode;
|
private String minUnitCode;
|
||||||
private String minUnitCode_dictText;
|
private String minUnitCode_dictText;
|
||||||
@@ -126,7 +160,9 @@ public class AdviceBaseDto {
|
|||||||
*/
|
*/
|
||||||
private String dose;
|
private String dose;
|
||||||
|
|
||||||
/** 剂量单位 */
|
/**
|
||||||
|
* 剂量单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String doseUnitCode;
|
private String doseUnitCode;
|
||||||
private String doseUnitCode_dictText;
|
private String doseUnitCode_dictText;
|
||||||
@@ -136,7 +172,9 @@ public class AdviceBaseDto {
|
|||||||
*/
|
*/
|
||||||
private String supplier;
|
private String supplier;
|
||||||
|
|
||||||
/** 供应商ID */
|
/**
|
||||||
|
* 供应商ID
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long supplierId;
|
private Long supplierId;
|
||||||
|
|
||||||
@@ -145,14 +183,20 @@ public class AdviceBaseDto {
|
|||||||
*/
|
*/
|
||||||
private String manufacturer;
|
private String manufacturer;
|
||||||
|
|
||||||
/** 费用定价主表ID */
|
/**
|
||||||
|
* 费用定价主表ID
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long chargeItemDefinitionId;
|
private Long chargeItemDefinitionId;
|
||||||
|
|
||||||
/** 所属科室 */
|
/**
|
||||||
|
* 所属科室
|
||||||
|
*/
|
||||||
private Long orgId;
|
private Long orgId;
|
||||||
|
|
||||||
/** 所在位置 */
|
/**
|
||||||
|
* 所在位置
|
||||||
|
*/
|
||||||
private Long locationId;
|
private Long locationId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -160,7 +204,9 @@ public class AdviceBaseDto {
|
|||||||
*/
|
*/
|
||||||
private List<AdviceInventoryDto> inventoryList;
|
private List<AdviceInventoryDto> inventoryList;
|
||||||
|
|
||||||
/** 默认产品批号 */
|
/**
|
||||||
|
* 默认产品批号
|
||||||
|
*/
|
||||||
private String defaultLotNumber;
|
private String defaultLotNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -168,24 +214,26 @@ public class AdviceBaseDto {
|
|||||||
*/
|
*/
|
||||||
private List<AdvicePriceDto> priceList;
|
private List<AdvicePriceDto> priceList;
|
||||||
|
|
||||||
/** 是否限制使用 */
|
/**
|
||||||
|
* 是否限制使用
|
||||||
|
*/
|
||||||
private Integer restrictedFlag;
|
private Integer restrictedFlag;
|
||||||
|
|
||||||
/** 限制使用范围 */
|
/**
|
||||||
|
* 限制使用范围
|
||||||
|
*/
|
||||||
private String restrictedScope;
|
private String restrictedScope;
|
||||||
|
|
||||||
/** 用药说明 */
|
/**
|
||||||
|
* 用药说明
|
||||||
|
*/
|
||||||
@Dict(dictCode = "dosage_instruction")
|
@Dict(dictCode = "dosage_instruction")
|
||||||
private String dosageInstruction;
|
private String dosageInstruction;
|
||||||
private String dosageInstruction_dictText;
|
private String dosageInstruction_dictText;
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
=======
|
|
||||||
/*
|
/*
|
||||||
收费项目等级
|
收费项目等级
|
||||||
*/
|
*/
|
||||||
@Dict(dictCode = "chrgitm_lv")
|
@Dict(dictCode = "chrgitm_lv")
|
||||||
private String chrgitmLv;
|
private String chrgitmLv;
|
||||||
private String chrgitmLv_dictText;
|
private String chrgitmLv_dictText;
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,9 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class RequestBaseDto {
|
public class RequestBaseDto {
|
||||||
|
|
||||||
/** 医嘱类型 */
|
/**
|
||||||
|
* 医嘱类型
|
||||||
|
*/
|
||||||
private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目
|
private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,7 +28,9 @@ public class RequestBaseDto {
|
|||||||
*/
|
*/
|
||||||
private String uniqueKey; // requestId拼接adviceType
|
private String uniqueKey; // requestId拼接adviceType
|
||||||
|
|
||||||
/** 处方号 */
|
/**
|
||||||
|
* 处方号
|
||||||
|
*/
|
||||||
private String prescriptionNo;
|
private String prescriptionNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -37,7 +41,9 @@ public class RequestBaseDto {
|
|||||||
private Long requesterId;
|
private Long requesterId;
|
||||||
private String requesterId_dictText;
|
private String requesterId_dictText;
|
||||||
|
|
||||||
/** 请求时间 */
|
/**
|
||||||
|
* 请求时间
|
||||||
|
*/
|
||||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date requestTime;
|
private Date requestTime;
|
||||||
|
|
||||||
@@ -74,7 +80,9 @@ public class RequestBaseDto {
|
|||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long chargeItemId;
|
private Long chargeItemId;
|
||||||
|
|
||||||
/** 医嘱名称 */
|
/**
|
||||||
|
* 医嘱名称
|
||||||
|
*/
|
||||||
private String adviceName;
|
private String adviceName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -82,30 +90,44 @@ public class RequestBaseDto {
|
|||||||
*/
|
*/
|
||||||
private String volume;
|
private String volume;
|
||||||
|
|
||||||
/** 产品批号 */
|
/**
|
||||||
|
* 产品批号
|
||||||
|
*/
|
||||||
private String lotNumber;
|
private String lotNumber;
|
||||||
|
|
||||||
/** 请求数量 */
|
/**
|
||||||
|
* 请求数量
|
||||||
|
*/
|
||||||
private Integer quantity;
|
private Integer quantity;
|
||||||
|
|
||||||
/** 请求单位编码 */
|
/**
|
||||||
|
* 请求单位编码
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
private String unitCode_dictText;
|
private String unitCode_dictText;
|
||||||
|
|
||||||
/** 请求状态 */
|
/**
|
||||||
|
* 请求状态
|
||||||
|
*/
|
||||||
private Integer statusEnum;
|
private Integer statusEnum;
|
||||||
private String statusEnum_enumText;
|
private String statusEnum_enumText;
|
||||||
|
|
||||||
/** 收费状态 */
|
/**
|
||||||
|
* 收费状态
|
||||||
|
*/
|
||||||
private Integer chargeStatus;
|
private Integer chargeStatus;
|
||||||
private String chargeStatus_enumText;
|
private String chargeStatus_enumText;
|
||||||
|
|
||||||
/** 是否皮试 */
|
/**
|
||||||
|
* 是否皮试
|
||||||
|
*/
|
||||||
private Integer skinTestFlag;
|
private Integer skinTestFlag;
|
||||||
private String skinTestFlag_enumText;
|
private String skinTestFlag_enumText;
|
||||||
|
|
||||||
/** 是否为注射药物 */
|
/**
|
||||||
|
* 是否为注射药物
|
||||||
|
*/
|
||||||
private Integer injectFlag;
|
private Integer injectFlag;
|
||||||
private String injectFlag_enumText;
|
private String injectFlag_enumText;
|
||||||
|
|
||||||
@@ -128,7 +150,9 @@ public class RequestBaseDto {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal dose;
|
private BigDecimal dose;
|
||||||
|
|
||||||
/** 剂量单位 */
|
/**
|
||||||
|
* 剂量单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String doseUnitCode;
|
private String doseUnitCode;
|
||||||
private String doseUnitCode_dictText;
|
private String doseUnitCode_dictText;
|
||||||
@@ -149,10 +173,14 @@ public class RequestBaseDto {
|
|||||||
*/
|
*/
|
||||||
private String positionName;
|
private String positionName;
|
||||||
|
|
||||||
/** 用药天数 */
|
/**
|
||||||
|
* 用药天数
|
||||||
|
*/
|
||||||
private Integer dispensePerDuration;
|
private Integer dispensePerDuration;
|
||||||
|
|
||||||
/** 拆零比 */
|
/**
|
||||||
|
* 拆零比
|
||||||
|
*/
|
||||||
private BigDecimal partPercent;
|
private BigDecimal partPercent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -170,16 +198,17 @@ public class RequestBaseDto {
|
|||||||
*/
|
*/
|
||||||
private Integer sortNumber;
|
private Integer sortNumber;
|
||||||
|
|
||||||
/** 用药说明 */
|
/**
|
||||||
|
* 用药说明
|
||||||
|
*/
|
||||||
@Dict(dictCode = "dosage_instruction")
|
@Dict(dictCode = "dosage_instruction")
|
||||||
private String dosageInstruction;
|
private String dosageInstruction;
|
||||||
private String dosageInstruction_dictText;
|
private String dosageInstruction_dictText;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
/**
|
||||||
=======
|
* 请求基于什么的ID
|
||||||
/** 请求基于什么的ID */
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long basedOnId;
|
private Long basedOnId;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -153,8 +153,6 @@ public interface DoctorStationAdviceAppMapper {
|
|||||||
List<OrderBindInfoDto> getOrderBindInfo(@Param("typeCode") String typeCode, @Param("status") Integer status,
|
List<OrderBindInfoDto> getOrderBindInfo(@Param("typeCode") String typeCode, @Param("status") Integer status,
|
||||||
@Param("itemNo") String itemNo);
|
@Param("itemNo") String itemNo);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 查询检验检查开立历史(近30天)
|
* 查询检验检查开立历史(近30天)
|
||||||
*
|
*
|
||||||
@@ -177,5 +175,4 @@ public interface DoctorStationAdviceAppMapper {
|
|||||||
List<ProofAndTestResultDto> getProofAndTestResult(@Param("encounterId") Long encounterId,
|
List<ProofAndTestResultDto> getProofAndTestResult(@Param("encounterId") Long encounterId,
|
||||||
@Param("status") Integer status, @Param("typeEnum") Integer typeEnum);
|
@Param("status") Integer status, @Param("typeEnum") Integer typeEnum);
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,7 @@ import javax.annotation.Resource;
|
|||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import com.core.common.enums.TenantOptionDict;
|
import com.core.common.enums.TenantOptionDict;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.core.common.utils.AssignSeqUtil;
|
import com.core.common.utils.AssignSeqUtil;
|
||||||
import com.core.common.utils.SecurityUtils;
|
import com.core.common.utils.SecurityUtils;
|
||||||
import com.core.common.utils.StringUtils;
|
import com.core.common.utils.StringUtils;
|
||||||
@@ -80,19 +77,19 @@ public class AdviceUtils {
|
|||||||
*/
|
*/
|
||||||
public String checkInventory(List<AdviceSaveDto> adviceSaveList) {
|
public String checkInventory(List<AdviceSaveDto> adviceSaveList) {
|
||||||
// 医嘱定义ID集合
|
// 医嘱定义ID集合
|
||||||
List<Long> adviceDefinitionIdList =
|
List<Long> adviceDefinitionIdList
|
||||||
adviceSaveList.stream().map(AdviceSaveDto::getAdviceDefinitionId).collect(Collectors.toList());
|
= adviceSaveList.stream().map(AdviceSaveDto::getAdviceDefinitionId).collect(Collectors.toList());
|
||||||
// 医嘱库存集合
|
// 医嘱库存集合
|
||||||
List<AdviceInventoryDto> adviceInventoryList =
|
List<AdviceInventoryDto> adviceInventoryList
|
||||||
doctorStationAdviceAppMapper.getAdviceInventory(null, adviceDefinitionIdList,
|
= doctorStationAdviceAppMapper.getAdviceInventory(null, adviceDefinitionIdList,
|
||||||
CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR, PublicationStatus.ACTIVE.getValue());
|
CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR, PublicationStatus.ACTIVE.getValue());
|
||||||
// 待发放个数信息
|
// 待发放个数信息
|
||||||
List<AdviceInventoryDto> adviceDraftInventoryList = doctorStationAdviceAppMapper.getAdviceDraftInventory(
|
List<AdviceInventoryDto> adviceDraftInventoryList = doctorStationAdviceAppMapper.getAdviceDraftInventory(
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
||||||
DispenseStatus.DRAFT.getValue(), DispenseStatus.PREPARATION.getValue());
|
DispenseStatus.DRAFT.getValue(), DispenseStatus.PREPARATION.getValue());
|
||||||
// 预减库存
|
// 预减库存
|
||||||
List<AdviceInventoryDto> adviceInventory =
|
List<AdviceInventoryDto> adviceInventory
|
||||||
this.subtractInventory(adviceInventoryList, adviceDraftInventoryList);
|
= this.subtractInventory(adviceInventoryList, adviceDraftInventoryList);
|
||||||
// 检查库存
|
// 检查库存
|
||||||
for (AdviceSaveDto saveDto : adviceSaveList) {
|
for (AdviceSaveDto saveDto : adviceSaveList) {
|
||||||
boolean matched = false;
|
boolean matched = false;
|
||||||
@@ -135,19 +132,19 @@ public class AdviceUtils {
|
|||||||
*/
|
*/
|
||||||
public String checkExeMedInventory(List<MedicationRequestUseExe> medUseExeList) {
|
public String checkExeMedInventory(List<MedicationRequestUseExe> medUseExeList) {
|
||||||
// 医嘱定义id集合
|
// 医嘱定义id集合
|
||||||
List<Long> adviceDefinitionIdList =
|
List<Long> adviceDefinitionIdList
|
||||||
medUseExeList.stream().map(MedicationRequestUseExe::getMedicationId).collect(Collectors.toList());
|
= medUseExeList.stream().map(MedicationRequestUseExe::getMedicationId).collect(Collectors.toList());
|
||||||
// 医嘱库存集合
|
// 医嘱库存集合
|
||||||
List<AdviceInventoryDto> adviceInventoryList =
|
List<AdviceInventoryDto> adviceInventoryList
|
||||||
doctorStationAdviceAppMapper.getAdviceInventory(null, adviceDefinitionIdList,
|
= doctorStationAdviceAppMapper.getAdviceInventory(null, adviceDefinitionIdList,
|
||||||
CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR, PublicationStatus.ACTIVE.getValue());
|
CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR, PublicationStatus.ACTIVE.getValue());
|
||||||
// 待发放个数信息
|
// 待发放个数信息
|
||||||
List<AdviceInventoryDto> adviceDraftInventoryList = doctorStationAdviceAppMapper.getAdviceDraftInventory(
|
List<AdviceInventoryDto> adviceDraftInventoryList = doctorStationAdviceAppMapper.getAdviceDraftInventory(
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
||||||
DispenseStatus.DRAFT.getValue(), DispenseStatus.PREPARATION.getValue());
|
DispenseStatus.DRAFT.getValue(), DispenseStatus.PREPARATION.getValue());
|
||||||
// 预减库存
|
// 预减库存
|
||||||
List<AdviceInventoryDto> adviceInventory =
|
List<AdviceInventoryDto> adviceInventory
|
||||||
this.subtractInventory(adviceInventoryList, adviceDraftInventoryList);
|
= this.subtractInventory(adviceInventoryList, adviceDraftInventoryList);
|
||||||
// 生命提示信息集合
|
// 生命提示信息集合
|
||||||
List<String> tipsList = new ArrayList<>();
|
List<String> tipsList = new ArrayList<>();
|
||||||
for (MedicationRequestUseExe medicationRequestUseExe : medUseExeList) {
|
for (MedicationRequestUseExe medicationRequestUseExe : medUseExeList) {
|
||||||
@@ -289,14 +286,9 @@ public class AdviceUtils {
|
|||||||
BigDecimal newQty = inventory.getQuantity().subtract(draftQty);
|
BigDecimal newQty = inventory.getQuantity().subtract(draftQty);
|
||||||
inventory.setQuantity(newQty.compareTo(BigDecimal.ZERO) >= 0 ? newQty : BigDecimal.ZERO);
|
inventory.setQuantity(newQty.compareTo(BigDecimal.ZERO) >= 0 ? newQty : BigDecimal.ZERO);
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
return inventory;
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
=======
|
|
||||||
result.add(inventory);
|
result.add(inventory);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -320,8 +312,9 @@ public class AdviceUtils {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// 将JSON字符串转换为List<ActivityChildJsonDto>
|
// 将JSON字符串转换为List<ActivityChildJsonDto>
|
||||||
List<ActivityChildJsonDto> activityChildJsonDtoList =
|
List<ActivityChildJsonDto> activityChildJsonDtoList
|
||||||
objectMapper.readValue(childrenJson, new TypeReference<>() {});
|
= objectMapper.readValue(childrenJson, new TypeReference<>() {
|
||||||
|
});
|
||||||
// 创建子项的诊疗请求
|
// 创建子项的诊疗请求
|
||||||
Long adviceDefinitionId; // 诊疗医嘱定义ID
|
Long adviceDefinitionId; // 诊疗医嘱定义ID
|
||||||
BigDecimal quantity; // 子项请求数量
|
BigDecimal quantity; // 子项请求数量
|
||||||
@@ -337,8 +330,8 @@ public class AdviceUtils {
|
|||||||
adviceBaseDto = new AdviceBaseDto();
|
adviceBaseDto = new AdviceBaseDto();
|
||||||
adviceBaseDto.setAdviceDefinitionId(adviceDefinitionId);
|
adviceBaseDto.setAdviceDefinitionId(adviceDefinitionId);
|
||||||
// 对应的子项诊疗医嘱信息
|
// 对应的子项诊疗医嘱信息
|
||||||
AdviceBaseDto activityAdviceBaseDto =
|
AdviceBaseDto activityAdviceBaseDto
|
||||||
iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, null, null, null, organizationId, 1,
|
= iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, null, null, null, organizationId, 1,
|
||||||
1, Whether.NO.getValue(), List.of(1, 2, 3), null).getRecords().get(0);
|
1, Whether.NO.getValue(), List.of(1, 2, 3), null).getRecords().get(0);
|
||||||
if (activityAdviceBaseDto != null) {
|
if (activityAdviceBaseDto != null) {
|
||||||
// 费用定价
|
// 费用定价
|
||||||
|
|||||||
@@ -18,16 +18,6 @@ import com.openhis.web.document.util.EnumUtil;
|
|||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
<<<<<<< HEAD
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文书定义 controller
|
* 文书定义 controller
|
||||||
@@ -40,6 +30,7 @@ import java.util.Map;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class DocDefinitionController {
|
public class DocDefinitionController {
|
||||||
|
|
||||||
private final IDocDefinitionAppService iDocDefinitionAppService;
|
private final IDocDefinitionAppService iDocDefinitionAppService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,13 +47,8 @@ public class DocDefinitionController {
|
|||||||
|
|
||||||
// 获取权限枚举列表
|
// 获取权限枚举列表
|
||||||
map.put("permissions", EnumUtil.toMapList(DocPermissionEnum.class));
|
map.put("permissions", EnumUtil.toMapList(DocPermissionEnum.class));
|
||||||
<<<<<<< HEAD
|
|
||||||
// 使用范围枚举
|
// 使用范围枚举
|
||||||
List<String> noInUseCodes = new ArrayList<>();
|
List<String> noInUseCodes = new ArrayList<>();
|
||||||
=======
|
|
||||||
// 使用范围枚举
|
|
||||||
List<String> noInUseCodes = new ArrayList<>();
|
|
||||||
>>>>>>> v1.3
|
|
||||||
noInUseCodes.add(DocUseRangeEnum.USE_BY_SELF.getCode());
|
noInUseCodes.add(DocUseRangeEnum.USE_BY_SELF.getCode());
|
||||||
map.put("useRanges", EnumUtil.toMapListFilter(DocUseRangeEnum.class, noInUseCodes));
|
map.put("useRanges", EnumUtil.toMapListFilter(DocUseRangeEnum.class, noInUseCodes));
|
||||||
return R.ok(map);
|
return R.ok(map);
|
||||||
|
|||||||
@@ -35,11 +35,7 @@ import com.openhis.web.inhospitalcharge.appservice.IInHospitalRegisterAppService
|
|||||||
import com.openhis.web.inhospitalcharge.dto.*;
|
import com.openhis.web.inhospitalcharge.dto.*;
|
||||||
import com.openhis.web.inhospitalcharge.mapper.InHospitalRegisterAppMapper;
|
import com.openhis.web.inhospitalcharge.mapper.InHospitalRegisterAppMapper;
|
||||||
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
|
import com.openhis.web.patientmanage.appservice.IPatientInformationService;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.web.patientmanage.dto.PatientInformationDto;
|
|
||||||
=======
|
|
||||||
import com.openhis.web.patientmanage.dto.PatientBaseInfoDto;
|
import com.openhis.web.patientmanage.dto.PatientBaseInfoDto;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.yb.service.YbManager;
|
import com.openhis.yb.service.YbManager;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -179,8 +175,8 @@ public class InHospitalRegisterAppServiceImpl implements IInHospitalRegisterAppS
|
|||||||
String searchKey, String registeredFlag, Integer pageNo, Integer pageSize, HttpServletRequest request) {
|
String searchKey, String registeredFlag, Integer pageNo, Integer pageSize, HttpServletRequest request) {
|
||||||
Integer encounterStatus = EncounterZyStatus.TO_BE_REGISTERED.getValue(); // 待登记
|
Integer encounterStatus = EncounterZyStatus.TO_BE_REGISTERED.getValue(); // 待登记
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<InHospitalRegisterQueryDto> queryWrapper =
|
QueryWrapper<InHospitalRegisterQueryDto> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(inHospitalRegisterQueryDto, searchKey,
|
= HisQueryUtils.buildQueryWrapper(inHospitalRegisterQueryDto, searchKey,
|
||||||
new HashSet<>(Arrays.asList("registrar", "source_name", "patient_name")), request);
|
new HashSet<>(Arrays.asList("registrar", "source_name", "patient_name")), request);
|
||||||
|
|
||||||
IPage<InHospitalRegisterQueryDto> inHospitalRegisterInfo = inHospitalRegisterAppMapper
|
IPage<InHospitalRegisterQueryDto> inHospitalRegisterInfo = inHospitalRegisterAppMapper
|
||||||
|
|||||||
@@ -56,16 +56,7 @@ public interface IATDManageAppService {
|
|||||||
*/
|
*/
|
||||||
R<?> getAdmissionPatientInfo(Long encounterId);
|
R<?> getAdmissionPatientInfo(Long encounterId);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 住院患者待处理信息列表
|
|
||||||
*
|
|
||||||
* @param encounterId 住院id
|
|
||||||
* @return 待处理信息列表
|
|
||||||
*/
|
|
||||||
R<?> getInPatientPendingList(Long encounterId);
|
|
||||||
=======
|
|
||||||
* 住院患者待处理列表查询
|
* 住院患者待处理列表查询
|
||||||
*
|
*
|
||||||
* @param inpatientAdviceParam 查询条件
|
* @param inpatientAdviceParam 查询条件
|
||||||
@@ -74,7 +65,6 @@ public interface IATDManageAppService {
|
|||||||
* @return 住院患者医
|
* @return 住院患者医
|
||||||
*/
|
*/
|
||||||
R<?> getInPatientPendingList(InpatientAdviceParam inpatientAdviceParam, Integer pageNo, Integer pageSize);
|
R<?> getInPatientPendingList(InpatientAdviceParam inpatientAdviceParam, Integer pageNo, Integer pageSize);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 入科床位分配
|
* 入科床位分配
|
||||||
@@ -87,11 +77,7 @@ public interface IATDManageAppService {
|
|||||||
/**
|
/**
|
||||||
* 转科
|
* 转科
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param encounterId 住院id
|
|
||||||
=======
|
|
||||||
* @param encounterId 住院患者id
|
* @param encounterId 住院患者id
|
||||||
>>>>>>> v1.3
|
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
R<?> transferDepartment(Long encounterId);
|
R<?> transferDepartment(Long encounterId);
|
||||||
@@ -99,12 +85,6 @@ public interface IATDManageAppService {
|
|||||||
/**
|
/**
|
||||||
* 出院
|
* 出院
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param encounterId 住院id
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
R<?> hospitalDischarge(Long encounterId);
|
|
||||||
=======
|
|
||||||
* @param encounterId 住院患者id
|
* @param encounterId 住院患者id
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@@ -123,7 +103,8 @@ public interface IATDManageAppService {
|
|||||||
*
|
*
|
||||||
* @param encounterId 诊断id
|
* @param encounterId 诊断id
|
||||||
* @return EncounterAccountDto 诊断账户金额
|
* @return EncounterAccountDto 诊断账户金额
|
||||||
**/
|
*
|
||||||
|
*/
|
||||||
R<?> getAmount(Long encounterId);
|
R<?> getAmount(Long encounterId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -131,7 +112,7 @@ public interface IATDManageAppService {
|
|||||||
*
|
*
|
||||||
* @param encounterId 诊断id
|
* @param encounterId 诊断id
|
||||||
* @return PendingMedicationDto 待配/退药
|
* @return PendingMedicationDto 待配/退药
|
||||||
**/
|
*
|
||||||
|
*/
|
||||||
R<?> getPendingMedication(Long encounterId);
|
R<?> getPendingMedication(Long encounterId);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,21 +17,6 @@ import com.openhis.web.inhospitalnursestation.dto.MedicineSummaryParam;
|
|||||||
public interface IMedicineSummaryAppService {
|
public interface IMedicineSummaryAppService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 查询发药单信息
|
|
||||||
*
|
|
||||||
* @param dispenseFormSearchParam 查询条件
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求
|
|
||||||
* @return 发药单信息
|
|
||||||
*/
|
|
||||||
R<?> getMedicineDispenseFormPage(DispenseFormSearchParam dispenseFormSearchParam, Integer pageNo, Integer pageSize,
|
|
||||||
HttpServletRequest request);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询药品汇总单
|
|
||||||
=======
|
|
||||||
* 药品汇总单初始化
|
* 药品汇总单初始化
|
||||||
*
|
*
|
||||||
* @return 初始化信息
|
* @return 初始化信息
|
||||||
@@ -40,26 +25,10 @@ public interface IMedicineSummaryAppService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询发药单信息
|
* 查询发药单信息
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param dispenseFormSearchParam 查询条件
|
* @param dispenseFormSearchParam 查询条件
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param request 请求
|
|
||||||
* @return 药品汇总单
|
|
||||||
*/
|
|
||||||
R<?> getMedicineSummaryFormPage(DispenseFormSearchParam dispenseFormSearchParam, Integer pageNo, Integer pageSize,
|
|
||||||
String searchKey, HttpServletRequest request);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询药品汇总单详情
|
|
||||||
*
|
|
||||||
* @param summaryNo 汇总单号
|
|
||||||
* @return 药品汇总单详情
|
|
||||||
*/
|
|
||||||
=======
|
|
||||||
* @param request 请求
|
* @param request 请求
|
||||||
* @return 发药单信息
|
* @return 发药单信息
|
||||||
*/
|
*/
|
||||||
@@ -85,7 +54,6 @@ public interface IMedicineSummaryAppService {
|
|||||||
* @param summaryNo 汇总单号
|
* @param summaryNo 汇总单号
|
||||||
* @return 药品汇总单详情
|
* @return 药品汇总单详情
|
||||||
*/
|
*/
|
||||||
>>>>>>> v1.3
|
|
||||||
R<?> getMedicineSummaryFormDetail(String summaryNo);
|
R<?> getMedicineSummaryFormDetail(String summaryNo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -102,16 +70,5 @@ public interface IMedicineSummaryAppService {
|
|||||||
* @param summaryNo 汇总单号
|
* @param summaryNo 汇总单号
|
||||||
* @return 处理结果
|
* @return 处理结果
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
R<?> checkInventoryItem(List<Long> devDispenseId, List<Long> medDispenseId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 取消汇总
|
|
||||||
*
|
|
||||||
* @param summaryNo 汇总单号
|
|
||||||
* @return 处理结果
|
|
||||||
*/
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
R<?> cancelSummary(String summaryNo);
|
R<?> cancelSummary(String summaryNo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
package com.openhis.web.inhospitalnursestation.appservice;
|
package com.openhis.web.inhospitalnursestation.appservice;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
=======
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -13,48 +10,20 @@ import com.core.common.core.domain.R;
|
|||||||
import com.openhis.administration.dto.CostDetailSearchParam;
|
import com.openhis.administration.dto.CostDetailSearchParam;
|
||||||
import com.openhis.web.inhospitalnursestation.dto.InpatientAdviceParam;
|
import com.openhis.web.inhospitalnursestation.dto.InpatientAdviceParam;
|
||||||
import com.openhis.web.regdoctorstation.dto.AdviceBatchOpParam;
|
import com.openhis.web.regdoctorstation.dto.AdviceBatchOpParam;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.web.regdoctorstation.dto.RegAdviceSaveParam;
|
import com.openhis.web.regdoctorstation.dto.RegAdviceSaveParam;
|
||||||
|
|
||||||
public interface INurseBillingAppService {
|
public interface INurseBillingAppService {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 住院护士 划价添加
|
* 住院护士 划价添加
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public R<?> addInNurseBilling(RegAdviceSaveParam regAdviceSaveParam);
|
public R<?> addInNurseBilling(RegAdviceSaveParam regAdviceSaveParam);
|
||||||
<<<<<<< HEAD
|
|
||||||
/*
|
|
||||||
* 住院护士 划价列表 根据护士encounterId查询
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public R<?> getBillingListByEncounterId();
|
|
||||||
=======
|
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/*
|
/*
|
||||||
* 住院护士撤销划价
|
* 住院护士撤销划价
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> deleteInNurseBilling();
|
|
||||||
/*
|
|
||||||
* 医嘱计费添加 诊疗 耗材
|
|
||||||
*/
|
|
||||||
public R<?> addOrderBilling();
|
|
||||||
/*
|
|
||||||
* 医嘱计费删除 诊疗 耗材
|
|
||||||
*/
|
|
||||||
public R<?> deleteOrderBilling();
|
|
||||||
/*
|
|
||||||
* 医嘱计费修改 诊疗 耗材
|
|
||||||
*/
|
|
||||||
public R<?> updateOrderBilling();
|
|
||||||
/*
|
|
||||||
根据医嘱id查询已计费的 耗材列表
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public R<?> getOrderBillingByRequestId();
|
|
||||||
=======
|
|
||||||
public R<?> deleteInNurseBilling(List<AdviceBatchOpParam> paramList);
|
public R<?> deleteInNurseBilling(List<AdviceBatchOpParam> paramList);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -101,5 +70,4 @@ public interface INurseBillingAppService {
|
|||||||
*/
|
*/
|
||||||
void makeExcelFile(CostDetailSearchParam costDetailSearchParam, HttpServletRequest request,
|
void makeExcelFile(CostDetailSearchParam costDetailSearchParam, HttpServletRequest request,
|
||||||
HttpServletResponse response);
|
HttpServletResponse response);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,7 @@ import com.openhis.web.inhospitalnursestation.dto.OrgDeviceSummaryParam;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 科室耗材盘点 应用实现接口
|
* 科室耗材盘点 应用实现接口
|
||||||
@@ -19,13 +16,6 @@ import java.util.List;
|
|||||||
public interface IOrgDeviceStockTakeAppService {
|
public interface IOrgDeviceStockTakeAppService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 查询科室耗材汇总
|
|
||||||
*
|
|
||||||
* @param orgDeviceSummaryParam 查询条件
|
|
||||||
* @param startTime 开始时间
|
|
||||||
* @param endTime 结束时间
|
|
||||||
=======
|
|
||||||
* 页面初始化
|
* 页面初始化
|
||||||
*
|
*
|
||||||
* @return 初始化信息
|
* @return 初始化信息
|
||||||
@@ -36,18 +26,13 @@ public interface IOrgDeviceStockTakeAppService {
|
|||||||
* 查询科室耗材汇总
|
* 查询科室耗材汇总
|
||||||
*
|
*
|
||||||
* @param orgDeviceSummaryParam 查询条件
|
* @param orgDeviceSummaryParam 查询条件
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
* @param request 请求
|
* @param request 请求
|
||||||
* @return 科室耗材汇总单
|
* @return 科室耗材汇总单
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
R<?> getOrgDeviceSummaryFromPage(OrgDeviceSummaryParam orgDeviceSummaryParam, String startTime, String endTime,
|
|
||||||
=======
|
|
||||||
R<?> getOrgDeviceSummaryFromPage(OrgDeviceSummaryParam orgDeviceSummaryParam,
|
R<?> getOrgDeviceSummaryFromPage(OrgDeviceSummaryParam orgDeviceSummaryParam,
|
||||||
>>>>>>> v1.3
|
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, String searchKey,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, String searchKey,
|
||||||
HttpServletRequest request);
|
HttpServletRequest request);
|
||||||
@@ -57,9 +42,5 @@ public interface IOrgDeviceStockTakeAppService {
|
|||||||
*
|
*
|
||||||
* @return 科室耗材汇总单
|
* @return 科室耗材汇总单
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
R<?> orgDeviceSummary(OrgDeviceSummaryParam orgDeviceSummaryParam);
|
|
||||||
=======
|
|
||||||
R<?> orgDeviceSummary(List<OrgDeviceSummaryParam> orgDeviceSummaryParamList);
|
R<?> orgDeviceSummary(List<OrgDeviceSummaryParam> orgDeviceSummaryParamList);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -174,11 +174,11 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
@Override
|
@Override
|
||||||
public R<?> getAdmissionBedPage(AdmissionPageParam admissionPageParam, Integer pageNo, Integer pageSize) {
|
public R<?> getAdmissionBedPage(AdmissionPageParam admissionPageParam, Integer pageNo, Integer pageSize) {
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<AdmissionPageParam> queryWrapper =
|
QueryWrapper<AdmissionPageParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(admissionPageParam, null, null, null);
|
= HisQueryUtils.buildQueryWrapper(admissionPageParam, null, null, null);
|
||||||
// 入院患者床位分页列表
|
// 入院患者床位分页列表
|
||||||
Page<AdmissionBedPageDto> admissionBedPage =
|
Page<AdmissionBedPageDto> admissionBedPage
|
||||||
atdManageAppMapper.selectAdmissionBadPage(new Page<>(pageNo, pageSize), queryWrapper,
|
= atdManageAppMapper.selectAdmissionBadPage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
EncounterActivityStatus.ACTIVE.getValue(), LocationForm.WARD.getValue(), LocationForm.HOUSE.getValue(),
|
EncounterActivityStatus.ACTIVE.getValue(), LocationForm.WARD.getValue(), LocationForm.HOUSE.getValue(),
|
||||||
LocationForm.BED.getValue(), AccountType.PERSONAL_CASH_ACCOUNT.getCode(),
|
LocationForm.BED.getValue(), AccountType.PERSONAL_CASH_ACCOUNT.getCode(),
|
||||||
LocationStatus.INACTIVE.getValue(), ChargeItemStatus.BILLABLE.getValue(),
|
LocationStatus.INACTIVE.getValue(), ChargeItemStatus.BILLABLE.getValue(),
|
||||||
@@ -207,8 +207,8 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
@Override
|
@Override
|
||||||
public R<?> getAdmissionPatientInfo(Long encounterId) {
|
public R<?> getAdmissionPatientInfo(Long encounterId) {
|
||||||
// 查询住院患者详细信息
|
// 查询住院患者详细信息
|
||||||
AdmissionPatientInfoDto admissionPatientInfoDto =
|
AdmissionPatientInfoDto admissionPatientInfoDto
|
||||||
atdManageAppMapper.selectAdmissionPatientInfo(encounterId, EncounterActivityStatus.ACTIVE.getValue(),
|
= atdManageAppMapper.selectAdmissionPatientInfo(encounterId, EncounterActivityStatus.ACTIVE.getValue(),
|
||||||
LocationForm.WARD.getValue(), LocationForm.HOUSE.getValue(), LocationForm.BED.getValue(),
|
LocationForm.WARD.getValue(), LocationForm.HOUSE.getValue(), LocationForm.BED.getValue(),
|
||||||
ParticipantType.PRIMARY_NURSE.getCode(), ParticipantType.ATTENDING_DOCTOR.getCode(),
|
ParticipantType.PRIMARY_NURSE.getCode(), ParticipantType.ATTENDING_DOCTOR.getCode(),
|
||||||
ParticipantType.ADMITTING_DOCTOR.getCode(), ParticipantType.CHIEF_DOCTOR.getCode());
|
ParticipantType.ADMITTING_DOCTOR.getCode(), ParticipantType.CHIEF_DOCTOR.getCode());
|
||||||
@@ -228,21 +228,6 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 住院患者待处理信息列表
|
|
||||||
*
|
|
||||||
* @param encounterId 住院id
|
|
||||||
* @return 待处理信息列表
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> getInPatientPendingList(Long encounterId) {
|
|
||||||
// List<InpatientAdviceDto> inPatientPendingList =
|
|
||||||
// atdManageAppMapper.selectInPatientPendingList(encounterId, EncounterActivityStatus.ACTIVE.getValue(),
|
|
||||||
// LocationForm.WARD.getValue(), LocationForm.HOUSE.getValue(), LocationForm.BED.getValue(),
|
|
||||||
// ParticipantType.PRIMARY_NURSE.getCode(), ParticipantType.ATTENDING_DOCTOR.getCode(),
|
|
||||||
// ParticipantType.ADMITTING_DOCTOR.getCode());
|
|
||||||
return null;
|
|
||||||
=======
|
|
||||||
* 住院患者医嘱查询
|
* 住院患者医嘱查询
|
||||||
*
|
*
|
||||||
* @param inpatientAdviceParam 查询条件
|
* @param inpatientAdviceParam 查询条件
|
||||||
@@ -253,8 +238,8 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
@Override
|
@Override
|
||||||
public R<?> getInPatientPendingList(InpatientAdviceParam inpatientAdviceParam, Integer pageNo, Integer pageSize) {
|
public R<?> getInPatientPendingList(InpatientAdviceParam inpatientAdviceParam, Integer pageNo, Integer pageSize) {
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<InpatientAdviceParam> queryWrapper =
|
QueryWrapper<InpatientAdviceParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(inpatientAdviceParam, null, null, null);
|
= HisQueryUtils.buildQueryWrapper(inpatientAdviceParam, null, null, null);
|
||||||
|
|
||||||
// 患者医嘱分页列表
|
// 患者医嘱分页列表
|
||||||
Page<InpatientAdviceDto> inpatientAdvicePage = atdManageAppMapper.selectInpatientAdvicePage(
|
Page<InpatientAdviceDto> inpatientAdvicePage = atdManageAppMapper.selectInpatientAdvicePage(
|
||||||
@@ -283,7 +268,6 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
return R.ok(inpatientAdvicePage);
|
return R.ok(inpatientAdvicePage);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -343,12 +327,12 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
if (oldBedId != null) {
|
if (oldBedId != null) {
|
||||||
// 判断目标床位是否已经被占用
|
// 判断目标床位是否已经被占用
|
||||||
if (targetEncounterId != null) {
|
if (targetEncounterId != null) {
|
||||||
List<EncounterLocation> locationList =
|
List<EncounterLocation> locationList
|
||||||
encounterLocationService.getEncounterLocationInfo(targetEncounterId, null);
|
= encounterLocationService.getEncounterLocationInfo(targetEncounterId, null);
|
||||||
// 查询目标患者的入科时间
|
// 查询目标患者的入科时间
|
||||||
Date targetStartTime = null;
|
Date targetStartTime = null;
|
||||||
Optional<EncounterLocation> encounterLocationOptional =
|
Optional<EncounterLocation> encounterLocationOptional
|
||||||
locationList.stream().filter(x -> x.getFormEnum().equals(LocationForm.BED.getValue()))
|
= locationList.stream().filter(x -> x.getFormEnum().equals(LocationForm.BED.getValue()))
|
||||||
.filter(x -> x.getStatusEnum().equals(EncounterActivityStatus.ACTIVE.getValue())).findFirst();
|
.filter(x -> x.getStatusEnum().equals(EncounterActivityStatus.ACTIVE.getValue())).findFirst();
|
||||||
if (encounterLocationOptional.isPresent()) {
|
if (encounterLocationOptional.isPresent()) {
|
||||||
EncounterLocation encounterLocation = encounterLocationOptional.get();
|
EncounterLocation encounterLocation = encounterLocationOptional.get();
|
||||||
@@ -429,8 +413,8 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
encounterService.updatePriorityEnumById(encounterId, admissionPatientInfoDto.getPriorityEnum());
|
encounterService.updatePriorityEnumById(encounterId, admissionPatientInfoDto.getPriorityEnum());
|
||||||
}
|
}
|
||||||
// 更新住院状态:已住院
|
// 更新住院状态:已住院
|
||||||
Integer result =
|
Integer result
|
||||||
encounterService.updateEncounterStatus(encounterId, EncounterZyStatus.ADMITTED_TO_THE_HOSPITAL.getValue());
|
= encounterService.updateEncounterStatus(encounterId, EncounterZyStatus.ADMITTED_TO_THE_HOSPITAL.getValue());
|
||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
return R.fail("床位分配失败,请联系管理员");
|
return R.fail("床位分配失败,请联系管理员");
|
||||||
}
|
}
|
||||||
@@ -442,18 +426,11 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
/**
|
/**
|
||||||
* 转科
|
* 转科
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param encounterId 住院id
|
|
||||||
=======
|
|
||||||
* @param encounterId 住院患者id
|
* @param encounterId 住院患者id
|
||||||
>>>>>>> v1.3
|
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<?> transferDepartment(Long encounterId) {
|
public R<?> transferDepartment(Long encounterId) {
|
||||||
<<<<<<< HEAD
|
|
||||||
return null;
|
|
||||||
=======
|
|
||||||
if (encounterId == null) {
|
if (encounterId == null) {
|
||||||
return R.fail("转科失败,请选择有效的患者");
|
return R.fail("转科失败,请选择有效的患者");
|
||||||
}
|
}
|
||||||
@@ -511,24 +488,16 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
encounter.setOrganizationId(orderProcess.getTargetOrganizationId())
|
encounter.setOrganizationId(orderProcess.getTargetOrganizationId())
|
||||||
.setStatusEnum(EncounterZyStatus.REGISTERED.getValue());
|
.setStatusEnum(EncounterZyStatus.REGISTERED.getValue());
|
||||||
return R.ok("转科成功");
|
return R.ok("转科成功");
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 出院
|
* 出院
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param encounterId 住院id
|
|
||||||
=======
|
|
||||||
* @param encounterId 住院患者id
|
* @param encounterId 住院患者id
|
||||||
>>>>>>> v1.3
|
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<?> hospitalDischarge(Long encounterId) {
|
public R<?> hospitalDischarge(Long encounterId) {
|
||||||
<<<<<<< HEAD
|
|
||||||
return null;
|
|
||||||
=======
|
|
||||||
if (encounterId == null) {
|
if (encounterId == null) {
|
||||||
return R.fail("出院失败,请选择有效的患者");
|
return R.fail("出院失败,请选择有效的患者");
|
||||||
}
|
}
|
||||||
@@ -557,8 +526,8 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
if (!medicationDispenseList.isEmpty()) {
|
if (!medicationDispenseList.isEmpty()) {
|
||||||
return R.fail("患者有待取的药品,请先取药");
|
return R.fail("患者有待取的药品,请先取药");
|
||||||
}
|
}
|
||||||
int affectedRows =
|
int affectedRows
|
||||||
encounterService.updateEncounterStatus(encounterId, EncounterZyStatus.DISCHARGED_FROM_HOSPITAL.getValue());
|
= encounterService.updateEncounterStatus(encounterId, EncounterZyStatus.DISCHARGED_FROM_HOSPITAL.getValue());
|
||||||
if (affectedRows > 0) {
|
if (affectedRows > 0) {
|
||||||
return R.ok("出院成功");
|
return R.ok("出院成功");
|
||||||
}
|
}
|
||||||
@@ -598,7 +567,8 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
*
|
*
|
||||||
* @param encounterId 诊断id
|
* @param encounterId 诊断id
|
||||||
* @return EncounterAccountDto 诊断账户金额
|
* @return EncounterAccountDto 诊断账户金额
|
||||||
**/
|
*
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<?> getAmount(Long encounterId) {
|
public R<?> getAmount(Long encounterId) {
|
||||||
return R.ok(atdManageAppMapper.getAmount(AccountType.PERSONAL_CASH_ACCOUNT.getCode(),
|
return R.ok(atdManageAppMapper.getAmount(AccountType.PERSONAL_CASH_ACCOUNT.getCode(),
|
||||||
@@ -611,7 +581,8 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
*
|
*
|
||||||
* @param encounterId 诊断id
|
* @param encounterId 诊断id
|
||||||
* @return PendingMedicationDto 待配/退药
|
* @return PendingMedicationDto 待配/退药
|
||||||
**/
|
*
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<?> getPendingMedication(Long encounterId) {
|
public R<?> getPendingMedication(Long encounterId) {
|
||||||
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
||||||
@@ -691,8 +662,8 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
// 获取患者ID
|
// 获取患者ID
|
||||||
Encounter encounter = encounterService.getById(encounterId);
|
Encounter encounter = encounterService.getById(encounterId);
|
||||||
// 创建体温单统计列表
|
// 创建体温单统计列表
|
||||||
List<DocStatisticsDto> data =
|
List<DocStatisticsDto> data
|
||||||
((List<DocStatisticsDto>)docStatisticsAppService.queryByEncounterId(encounterId).getData()).stream()
|
= ((List<DocStatisticsDto>) docStatisticsAppService.queryByEncounterId(encounterId).getData()).stream()
|
||||||
.filter(item -> DocDefinitionEnum.ADMISSION_VITAL_SIGNS.getValue().equals(item.getSource())).toList();
|
.filter(item -> DocDefinitionEnum.ADMISSION_VITAL_SIGNS.getValue().equals(item.getSource())).toList();
|
||||||
List<DocStatisticsDto> list = new ArrayList<>(data);
|
List<DocStatisticsDto> list = new ArrayList<>(data);
|
||||||
map.keySet().forEach(key -> {
|
map.keySet().forEach(key -> {
|
||||||
@@ -713,6 +684,5 @@ public class ATDManageAppServiceImpl implements IATDManageAppService {
|
|||||||
if (!list.isEmpty()) {
|
if (!list.isEmpty()) {
|
||||||
docStatisticsAppService.saveOrUpdateAdmissionSigns(list);
|
docStatisticsAppService.saveOrUpdateAdmissionSigns(list);
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,10 +21,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import com.core.common.enums.TenantOptionDict;
|
import com.core.common.enums.TenantOptionDict;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.core.common.exception.ServiceException;
|
import com.core.common.exception.ServiceException;
|
||||||
import com.core.common.utils.*;
|
import com.core.common.utils.*;
|
||||||
import com.core.common.utils.bean.BeanUtils;
|
import com.core.common.utils.bean.BeanUtils;
|
||||||
@@ -178,18 +175,18 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
Integer exeStatus = inpatientAdviceParam.getExeStatus();
|
Integer exeStatus = inpatientAdviceParam.getExeStatus();
|
||||||
inpatientAdviceParam.setExeStatus(null);
|
inpatientAdviceParam.setExeStatus(null);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<InpatientAdviceParam> queryWrapper =
|
QueryWrapper<InpatientAdviceParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(inpatientAdviceParam, null, null, null);
|
= HisQueryUtils.buildQueryWrapper(inpatientAdviceParam, null, null, null);
|
||||||
|
|
||||||
// 手动拼接住院患者id条件
|
// 手动拼接住院患者id条件
|
||||||
if (encounterIds != null && !encounterIds.isEmpty()) {
|
if (encounterIds != null && !encounterIds.isEmpty()) {
|
||||||
List<Long> encounterIdList =
|
List<Long> encounterIdList
|
||||||
Arrays.stream(encounterIds.split(CommonConstants.Common.COMMA)).map(Long::parseLong).toList();
|
= Arrays.stream(encounterIds.split(CommonConstants.Common.COMMA)).map(Long::parseLong).toList();
|
||||||
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIdList);
|
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIdList);
|
||||||
}
|
}
|
||||||
// 患者医嘱分页列表
|
// 患者医嘱分页列表
|
||||||
Page<InpatientAdviceDto> inpatientAdvicePage =
|
Page<InpatientAdviceDto> inpatientAdvicePage
|
||||||
adviceProcessAppMapper.selectInpatientAdvicePage(new Page<>(pageNo, pageSize), queryWrapper,
|
= adviceProcessAppMapper.selectInpatientAdvicePage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_SERVICE_REQUEST,
|
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_SERVICE_REQUEST,
|
||||||
RequestStatus.DRAFT.getValue(), EncounterActivityStatus.ACTIVE.getValue(), LocationForm.BED.getValue(),
|
RequestStatus.DRAFT.getValue(), EncounterActivityStatus.ACTIVE.getValue(), LocationForm.BED.getValue(),
|
||||||
ParticipantType.ADMITTING_DOCTOR.getCode(), AccountType.PERSONAL_CASH_ACCOUNT.getCode(),
|
ParticipantType.ADMITTING_DOCTOR.getCode(), AccountType.PERSONAL_CASH_ACCOUNT.getCode(),
|
||||||
@@ -444,13 +441,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 根据执行记录新增取消执行记录
|
// 根据执行记录新增取消执行记录
|
||||||
Long newProcedureId = procedureService.addProcedureRecord(procedure.getEncounterId(),
|
Long newProcedureId = procedureService.addProcedureRecord(procedure.getEncounterId(),
|
||||||
procedure.getPatientId(), procedure.getRequestId(), procedure.getRequestTable(), EventStatus.CANCEL,
|
procedure.getPatientId(), procedure.getRequestId(), procedure.getRequestTable(), EventStatus.CANCEL,
|
||||||
<<<<<<< HEAD
|
|
||||||
ProcedureCategory.INPATIENT_ADVICE, null, procedure.getOccurrenceTime(), procedure.getGroupId(),
|
|
||||||
procedure.getId());
|
|
||||||
=======
|
|
||||||
ProcedureCategory.INPATIENT_ADVICE, null, procedure.getOccurrenceTime(), exeDate,
|
ProcedureCategory.INPATIENT_ADVICE, null, procedure.getOccurrenceTime(), exeDate,
|
||||||
procedure.getGroupId(), procedure.getId());
|
procedure.getGroupId(), procedure.getId());
|
||||||
>>>>>>> v1.3
|
|
||||||
// 将旧的执行Id和新的执行Id存入map
|
// 将旧的执行Id和新的执行Id存入map
|
||||||
procedureIdMap.put(procedure.getId(), newProcedureId);
|
procedureIdMap.put(procedure.getId(), newProcedureId);
|
||||||
}
|
}
|
||||||
@@ -463,18 +455,14 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 处理长期医嘱
|
// 处理长期医嘱
|
||||||
if (!longProcIdList.isEmpty()) {
|
if (!longProcIdList.isEmpty()) {
|
||||||
// 长期药品
|
// 长期药品
|
||||||
List<MedicationDispense> longMedDispenseList =
|
List<MedicationDispense> longMedDispenseList
|
||||||
medicationDispenseService.getMedDispenseByProcedureId(longProcIdList);
|
= medicationDispenseService.getMedDispenseByProcedureId(longProcIdList);
|
||||||
// 分离已发药发药单和未发药发药单
|
// 分离已发药发药单和未发药发药单
|
||||||
for (MedicationDispense medicationDispense : longMedDispenseList) {
|
for (MedicationDispense medicationDispense : longMedDispenseList) {
|
||||||
if (DispenseStatus.COMPLETED.getValue().equals(medicationDispense.getStatusEnum())) {
|
if (DispenseStatus.COMPLETED.getValue().equals(medicationDispense.getStatusEnum())) {
|
||||||
longMedDispensedList.add(medicationDispense);
|
longMedDispensedList.add(medicationDispense);
|
||||||
<<<<<<< HEAD
|
|
||||||
} else if (DispenseStatus.PREPARATION.getValue().equals(medicationDispense.getStatusEnum())) {
|
|
||||||
=======
|
|
||||||
} else if (DispenseStatus.PREPARATION.getValue().equals(medicationDispense.getStatusEnum())
|
} else if (DispenseStatus.PREPARATION.getValue().equals(medicationDispense.getStatusEnum())
|
||||||
|| DispenseStatus.SUMMARIZED.getValue().equals(medicationDispense.getStatusEnum())) {
|
|| DispenseStatus.SUMMARIZED.getValue().equals(medicationDispense.getStatusEnum())) {
|
||||||
>>>>>>> v1.3
|
|
||||||
longMedUndispenseList.add(medicationDispense);
|
longMedUndispenseList.add(medicationDispense);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -495,18 +483,14 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 处理临时医嘱
|
// 处理临时医嘱
|
||||||
if (!tempProcIdList.isEmpty()) {
|
if (!tempProcIdList.isEmpty()) {
|
||||||
// 临时药品
|
// 临时药品
|
||||||
List<MedicationDispense> tempMedDispenseList =
|
List<MedicationDispense> tempMedDispenseList
|
||||||
medicationDispenseService.getMedDispenseByProcedureId(tempProcIdList);
|
= medicationDispenseService.getMedDispenseByProcedureId(tempProcIdList);
|
||||||
// 分离已发药发药单和未发药发药单
|
// 分离已发药发药单和未发药发药单
|
||||||
for (MedicationDispense medicationDispense : tempMedDispenseList) {
|
for (MedicationDispense medicationDispense : tempMedDispenseList) {
|
||||||
if (DispenseStatus.COMPLETED.getValue().equals(medicationDispense.getStatusEnum())) {
|
if (DispenseStatus.COMPLETED.getValue().equals(medicationDispense.getStatusEnum())) {
|
||||||
tempMedDispensedList.add(medicationDispense);
|
tempMedDispensedList.add(medicationDispense);
|
||||||
<<<<<<< HEAD
|
|
||||||
} else if (DispenseStatus.PREPARATION.getValue().equals(medicationDispense.getStatusEnum())) {
|
|
||||||
=======
|
|
||||||
} else if (DispenseStatus.PREPARATION.getValue().equals(medicationDispense.getStatusEnum())
|
} else if (DispenseStatus.PREPARATION.getValue().equals(medicationDispense.getStatusEnum())
|
||||||
|| DispenseStatus.SUMMARIZED.getValue().equals(medicationDispense.getStatusEnum())) {
|
|| DispenseStatus.SUMMARIZED.getValue().equals(medicationDispense.getStatusEnum())) {
|
||||||
>>>>>>> v1.3
|
|
||||||
tempMedUndispenseList.add(medicationDispense);
|
tempMedUndispenseList.add(medicationDispense);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -537,20 +521,20 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 重新生成汇总发药单
|
// 重新生成汇总发药单
|
||||||
if (!medUndispenseList.isEmpty()) {
|
if (!medUndispenseList.isEmpty()) {
|
||||||
// 查询所有汇总单号
|
// 查询所有汇总单号
|
||||||
List<String> summaryNoList =
|
List<String> summaryNoList
|
||||||
medUndispenseList.stream().filter(x -> x.getSummaryNo() != null && !x.getSummaryNo().isEmpty())
|
= medUndispenseList.stream().filter(x -> x.getSummaryNo() != null && !x.getSummaryNo().isEmpty())
|
||||||
.map(MedicationDispense::getSummaryNo).distinct().toList();
|
.map(MedicationDispense::getSummaryNo).distinct().toList();
|
||||||
if (!summaryNoList.isEmpty()) {
|
if (!summaryNoList.isEmpty()) {
|
||||||
// 查询所有被汇总的药品发放
|
// 查询所有被汇总的药品发放
|
||||||
List<MedicationDispense> medSummaryList =
|
List<MedicationDispense> medSummaryList
|
||||||
medicationDispenseService.getMedDispenseBySummaryNo(summaryNoList);
|
= medicationDispenseService.getMedDispenseBySummaryNo(summaryNoList);
|
||||||
// 被汇总的发药单
|
// 被汇总的发药单
|
||||||
Map<String, List<MedicationDispense>> medSummaryMap =
|
Map<String, List<MedicationDispense>> medSummaryMap
|
||||||
medSummaryList.stream().filter(x -> x.getSummaryNo() != null)
|
= medSummaryList.stream().filter(x -> x.getSummaryNo() != null)
|
||||||
.collect(Collectors.groupingBy(MedicationDispense::getSummaryNo));
|
.collect(Collectors.groupingBy(MedicationDispense::getSummaryNo));
|
||||||
// 被取消汇总的发药单
|
// 被取消汇总的发药单
|
||||||
Map<String, List<MedicationDispense>> medSummaryCancelMap =
|
Map<String, List<MedicationDispense>> medSummaryCancelMap
|
||||||
medUndispenseList.stream().filter(x -> x.getSummaryNo() != null)
|
= medUndispenseList.stream().filter(x -> x.getSummaryNo() != null)
|
||||||
.collect(Collectors.groupingBy(MedicationDispense::getSummaryNo));
|
.collect(Collectors.groupingBy(MedicationDispense::getSummaryNo));
|
||||||
// 过滤掉被取消汇总的发药单,重新做成汇总单
|
// 过滤掉被取消汇总的发药单,重新做成汇总单
|
||||||
Map<String, List<MedicationDispense>> reSummaryMap = new HashMap<>();
|
Map<String, List<MedicationDispense>> reSummaryMap = new HashMap<>();
|
||||||
@@ -563,8 +547,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 如果存在取消记录,需要过滤掉被取消的发药单
|
// 如果存在取消记录,需要过滤掉被取消的发药单
|
||||||
List<MedicationDispense> cancelDispenses = medSummaryCancelMap.get(summaryNo);
|
List<MedicationDispense> cancelDispenses = medSummaryCancelMap.get(summaryNo);
|
||||||
// 创建被取消的发药单ID集合,便于快速查找
|
// 创建被取消的发药单ID集合,便于快速查找
|
||||||
Set<Long> cancelIds =
|
Set<Long> cancelIds
|
||||||
cancelDispenses.stream().map(MedicationDispense::getId).collect(Collectors.toSet());
|
= cancelDispenses.stream().map(MedicationDispense::getId).collect(Collectors.toSet());
|
||||||
// 过滤出未被取消的发药单
|
// 过滤出未被取消的发药单
|
||||||
List<MedicationDispense> remainingDispenses = allDispenses.stream()
|
List<MedicationDispense> remainingDispenses = allDispenses.stream()
|
||||||
.filter(dispense -> !cancelIds.contains(dispense.getId())).collect(Collectors.toList());
|
.filter(dispense -> !cancelIds.contains(dispense.getId())).collect(Collectors.toList());
|
||||||
@@ -583,11 +567,10 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 汇总单据号
|
// 汇总单据号
|
||||||
String busNo = assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICINE_SUMMARY_NO.getPrefix(), 4);
|
String busNo = assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICINE_SUMMARY_NO.getPrefix(), 4);
|
||||||
// 根据相同批号的同一药品进行汇总
|
// 根据相同批号的同一药品进行汇总
|
||||||
Map<String, List<MedicationDispense>> medicationSummaryInfoMap =
|
Map<String, List<MedicationDispense>> medicationSummaryInfoMap
|
||||||
medicationDispenses.stream().collect(Collectors
|
= medicationDispenses.stream().collect(Collectors
|
||||||
.groupingBy(x -> x.getMedicationId() + CommonConstants.Common.DASH + x.getLotNumber()));
|
.groupingBy(x -> x.getMedicationId() + CommonConstants.Common.DASH + x.getLotNumber()));
|
||||||
for (Map.Entry<String,
|
for (Map.Entry<String, List<MedicationDispense>> medicationSummaryInfoList : medicationSummaryInfoMap.entrySet()) {
|
||||||
List<MedicationDispense>> medicationSummaryInfoList : medicationSummaryInfoMap.entrySet()) {
|
|
||||||
List<MedicationDispense> medicationSummaryList = medicationSummaryInfoList.getValue();
|
List<MedicationDispense> medicationSummaryList = medicationSummaryInfoList.getValue();
|
||||||
MedicationDispense medicationDispense = medicationSummaryList.get(0);
|
MedicationDispense medicationDispense = medicationSummaryList.get(0);
|
||||||
Long medicationId = medicationDispense.getMedicationId();
|
Long medicationId = medicationDispense.getMedicationId();
|
||||||
@@ -601,8 +584,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 单位
|
// 单位
|
||||||
String unitCode = null;
|
String unitCode = null;
|
||||||
// 根据药品id获取对应的药品信息
|
// 根据药品id获取对应的药品信息
|
||||||
Optional<MedicationDefinition> medicationDefinition =
|
Optional<MedicationDefinition> medicationDefinition
|
||||||
medicationDefinitions.stream().filter(x -> x.getId().equals(medicationId)).findFirst();
|
= medicationDefinitions.stream().filter(x -> x.getId().equals(medicationId)).findFirst();
|
||||||
if (medicationDefinition.isPresent()) {
|
if (medicationDefinition.isPresent()) {
|
||||||
partPercent = medicationDefinition.get().getPartPercent();
|
partPercent = medicationDefinition.get().getPartPercent();
|
||||||
minUnitCode = medicationDefinition.get().getMinUnitCode();
|
minUnitCode = medicationDefinition.get().getMinUnitCode();
|
||||||
@@ -641,8 +624,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 处理临时未发放的药品
|
// 处理临时未发放的药品
|
||||||
if (!tempMedUndispenseList.isEmpty()) {
|
if (!tempMedUndispenseList.isEmpty()) {
|
||||||
// 排除已汇总的药品
|
// 排除已汇总的药品
|
||||||
List<MedicationDispense> medicationDispenseList =
|
List<MedicationDispense> medicationDispenseList
|
||||||
tempMedUndispenseList.stream().filter(x -> x.getSummaryNo() == null).toList();
|
= tempMedUndispenseList.stream().filter(x -> x.getSummaryNo() == null).toList();
|
||||||
// 更新状态为草稿
|
// 更新状态为草稿
|
||||||
medicationDispenseService.updateDispenseStatus(
|
medicationDispenseService.updateDispenseStatus(
|
||||||
medicationDispenseList.stream().map(MedicationDispense::getId).toList(),
|
medicationDispenseList.stream().map(MedicationDispense::getId).toList(),
|
||||||
@@ -651,8 +634,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 处理长期未发的药品
|
// 处理长期未发的药品
|
||||||
if (!longMedUndispenseList.isEmpty()) {
|
if (!longMedUndispenseList.isEmpty()) {
|
||||||
// 排除已汇总的药品
|
// 排除已汇总的药品
|
||||||
List<MedicationDispense> medicationDispenseList =
|
List<MedicationDispense> medicationDispenseList
|
||||||
tempMedUndispenseList.stream().filter(x -> x.getSummaryNo() == null).toList();
|
= tempMedUndispenseList.stream().filter(x -> x.getSummaryNo() == null).toList();
|
||||||
medicationDispenseService
|
medicationDispenseService
|
||||||
.removeByIds(medicationDispenseList.stream().map(MedicationDispense::getId).toList());
|
.removeByIds(medicationDispenseList.stream().map(MedicationDispense::getId).toList());
|
||||||
}
|
}
|
||||||
@@ -674,17 +657,16 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<?> adviceVoid(AdviceExecuteParam adviceExecuteParam) {
|
public R<?> adviceVoid(AdviceExecuteParam adviceExecuteParam) {
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
// 获取当前不执行时间
|
// 获取当前不执行时间
|
||||||
Date notExeDate = DateUtils.getNowDate();
|
Date notExeDate = DateUtils.getNowDate();
|
||||||
>>>>>>> v1.3
|
|
||||||
List<AdviceExecuteDetailParam> adviceExecuteDetailList = adviceExecuteParam.getAdviceExecuteDetailList();
|
List<AdviceExecuteDetailParam> adviceExecuteDetailList = adviceExecuteParam.getAdviceExecuteDetailList();
|
||||||
|
|
||||||
// 判断是否有空的pID
|
// 判断是否有空的pID
|
||||||
for (AdviceExecuteDetailParam adviceExecuteDetailParam : adviceExecuteDetailList)
|
for (AdviceExecuteDetailParam adviceExecuteDetailParam : adviceExecuteDetailList) {
|
||||||
if (adviceExecuteDetailParam.getProcedureId() != null)
|
if (adviceExecuteDetailParam.getProcedureId() != null) {
|
||||||
return R.fail("执行失败");
|
return R.fail("执行失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (AdviceExecuteDetailParam adviceExecuteDetailParam : adviceExecuteDetailList) {
|
for (AdviceExecuteDetailParam adviceExecuteDetailParam : adviceExecuteDetailList) {
|
||||||
for (String executeTime : adviceExecuteDetailParam.getExecuteTimes()) {
|
for (String executeTime : adviceExecuteDetailParam.getExecuteTimes()) {
|
||||||
@@ -698,11 +680,7 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
procedureService.addProcedureRecord(adviceExecuteDetailParam.getEncounterId(),
|
procedureService.addProcedureRecord(adviceExecuteDetailParam.getEncounterId(),
|
||||||
adviceExecuteDetailParam.getPatientId(), adviceExecuteDetailParam.getRequestId(),
|
adviceExecuteDetailParam.getPatientId(), adviceExecuteDetailParam.getRequestId(),
|
||||||
adviceExecuteDetailParam.getAdviceTable(), EventStatus.STOPPED, ProcedureCategory.INPATIENT_ADVICE,
|
adviceExecuteDetailParam.getAdviceTable(), EventStatus.STOPPED, ProcedureCategory.INPATIENT_ADVICE,
|
||||||
<<<<<<< HEAD
|
|
||||||
null, exeDate, adviceExecuteDetailParam.getGroupId(), null);
|
|
||||||
=======
|
|
||||||
null, exeDate, notExeDate, adviceExecuteDetailParam.getGroupId(), null);
|
null, exeDate, notExeDate, adviceExecuteDetailParam.getGroupId(), null);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return R.ok("不执行成功");
|
return R.ok("不执行成功");
|
||||||
@@ -722,15 +700,11 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
List<MedicationRequestUseExe> tempMedication = medUseExeList.stream()
|
List<MedicationRequestUseExe> tempMedication = medUseExeList.stream()
|
||||||
.filter(e -> TherapyTimeType.TEMPORARY.getValue().equals(e.getTherapyEnum())).toList();
|
.filter(e -> TherapyTimeType.TEMPORARY.getValue().equals(e.getTherapyEnum())).toList();
|
||||||
// 药品定义id集合
|
// 药品定义id集合
|
||||||
List<Long> medicationDefinitionIdList =
|
List<Long> medicationDefinitionIdList
|
||||||
medUseExeList.stream().map(MedicationRequestUseExe::getMedicationId).collect(Collectors.toList());
|
= medUseExeList.stream().map(MedicationRequestUseExe::getMedicationId).collect(Collectors.toList());
|
||||||
// 医嘱详细信息
|
// 医嘱详细信息
|
||||||
List<AdviceBaseDto> medicationInfos = doctorStationAdviceAppService.getAdviceBaseInfo(null, null, null,
|
List<AdviceBaseDto> medicationInfos = doctorStationAdviceAppService.getAdviceBaseInfo(null, null, null,
|
||||||
<<<<<<< HEAD
|
|
||||||
medicationDefinitionIdList, 0L, 1, 500, Whether.NO.getValue(), List.of(1)).getRecords();
|
|
||||||
=======
|
|
||||||
medicationDefinitionIdList, 0L, 1, 500, Whether.NO.getValue(), List.of(1), null).getRecords();
|
medicationDefinitionIdList, 0L, 1, 500, Whether.NO.getValue(), List.of(1), null).getRecords();
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 当前时间
|
// 当前时间
|
||||||
Date curDate = new Date();
|
Date curDate = new Date();
|
||||||
@@ -747,49 +721,6 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
longMedicationRequest = new MedicationRequest();
|
longMedicationRequest = new MedicationRequest();
|
||||||
BeanUtils.copyProperties(medicationRequestUseExe, longMedicationRequest);
|
BeanUtils.copyProperties(medicationRequestUseExe, longMedicationRequest);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
// 生成执行记录
|
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
||||||
// 转换为 LocalDateTime
|
|
||||||
LocalDateTime localDateTime = LocalDateTime.parse(executeTime, formatter);
|
|
||||||
// 转换为 Date
|
|
||||||
Date exeDate = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
|
||||||
// 执行记录id
|
|
||||||
Long procedureId = procedureService.addProcedureRecord(longMedicationRequest.getEncounterId(),
|
|
||||||
longMedicationRequest.getPatientId(), longMedicationRequest.getId(),
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_REQUEST, EventStatus.COMPLETED,
|
|
||||||
ProcedureCategory.INPATIENT_ADVICE, null, exeDate, longMedicationRequest.getGroupId(), null);
|
|
||||||
|
|
||||||
// 生成药品发放
|
|
||||||
Long dispenseId =
|
|
||||||
medicationDispenseService.generateMedicationDispense(longMedicationRequest, procedureId, exeDate);
|
|
||||||
|
|
||||||
// 生成账单
|
|
||||||
chargeItem = new ChargeItem();
|
|
||||||
chargeItem.setStatusEnum(ChargeItemStatus.BILLABLE.getValue()); // 收费状态
|
|
||||||
chargeItem.setBusNo(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix().concat(longMedicationRequest.getBusNo()));
|
|
||||||
chargeItem.setGenerateSourceEnum(GenerateSource.ORDER_EXECUTE.getValue()); // 生成来源
|
|
||||||
chargeItem.setPrescriptionNo(longMedicationRequest.getPrescriptionNo()); // 处方号
|
|
||||||
chargeItem.setPatientId(longMedicationRequest.getPatientId()); // 患者
|
|
||||||
chargeItem.setContextEnum(ChargeItemContext.MEDICATION.getValue()); // 类型
|
|
||||||
chargeItem.setEncounterId(longMedicationRequest.getEncounterId()); // 就诊id
|
|
||||||
chargeItem.setEntererId(practitionerId);// 开立人ID
|
|
||||||
chargeItem.setRequestingOrgId(orgId); // 开立科室
|
|
||||||
chargeItem.setEnteredDate(curDate); // 开立时间
|
|
||||||
chargeItem.setServiceTable(CommonConstants.TableName.MED_MEDICATION_REQUEST);// 医疗服务类型
|
|
||||||
chargeItem.setServiceId(longMedicationRequest.getId()); // 医疗服务ID
|
|
||||||
chargeItem.setProductTable(CommonConstants.TableName.MED_MEDICATION_DEFINITION);// 产品所在表
|
|
||||||
chargeItem.setProductId(longMedicationRequest.getMedicationId());// 收费项id
|
|
||||||
chargeItem.setAccountId(medicationRequestUseExe.getAccountId());// 关联账户ID
|
|
||||||
chargeItem.setConditionId(longMedicationRequest.getConditionId()); // 诊断id
|
|
||||||
chargeItem.setEncounterDiagnosisId(longMedicationRequest.getEncounterDiagnosisId()); // 就诊诊断id
|
|
||||||
chargeItem.setProcedureId(procedureId); // 执行id
|
|
||||||
chargeItem.setDispenseTable(CommonConstants.TableName.MED_MEDICATION_DISPENSE); // 发放表名
|
|
||||||
// chargeItem.setDispenseId(dispenseId); // 发放ID
|
|
||||||
|
|
||||||
// ------------------------------ 匹配定价信息
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 根据 medicationId 查找对应的医嘱信息
|
// 根据 medicationId 查找对应的医嘱信息
|
||||||
MedicationRequest finalLongMedicationRequest = longMedicationRequest;
|
MedicationRequest finalLongMedicationRequest = longMedicationRequest;
|
||||||
Optional<AdviceBaseDto> matchedAdvice = medicationInfos.stream()
|
Optional<AdviceBaseDto> matchedAdvice = medicationInfos.stream()
|
||||||
@@ -807,32 +738,6 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 小单位
|
// 小单位
|
||||||
String minUnitCode = advice.getMinUnitCode();
|
String minUnitCode = advice.getMinUnitCode();
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
// 在 priceList 中查找匹配的定价信息
|
|
||||||
Optional<AdvicePriceDto> matchedPrice = advice.getPriceList().stream()
|
|
||||||
.filter(price -> finalLongMedicationRequest.getLotNumber().equals(price.getConditionValue()))
|
|
||||||
.findFirst();
|
|
||||||
if (matchedPrice.isEmpty()) {
|
|
||||||
throw new RuntimeException("未找到匹配的定价信息,lotNumber: " + finalLongMedicationRequest.getLotNumber());
|
|
||||||
}
|
|
||||||
AdvicePriceDto priceDto = matchedPrice.get();
|
|
||||||
// 计算价格
|
|
||||||
BigDecimal price;
|
|
||||||
if (finalLongMedicationRequest.getUnitCode().equals(priceDto.getUnitCode())) {
|
|
||||||
// (大单位)unitCode 匹配,直接取 price
|
|
||||||
price = priceDto.getPrice();
|
|
||||||
} else {
|
|
||||||
// (小单位)unitCode 不匹配,计算 price / partPercent
|
|
||||||
price = priceDto.getPrice().divide(partPercent, 6, RoundingMode.HALF_UP);
|
|
||||||
}
|
|
||||||
chargeItem.setDefinitionId(priceDto.getDefinitionId()); // 费用定价ID
|
|
||||||
chargeItem.setDefDetailId(priceDto.getDefinitionDetailId()); // 定价子表主键
|
|
||||||
chargeItem.setQuantityValue(longMedicationRequest.getQuantity()); // 数量
|
|
||||||
chargeItem.setQuantityUnit(longMedicationRequest.getUnitCode()); // 单位
|
|
||||||
chargeItem.setUnitPrice(price); // 单价
|
|
||||||
chargeItem.setTotalPrice(
|
|
||||||
longMedicationRequest.getQuantity().multiply(price).setScale(6, RoundingMode.HALF_UP)); // 总价
|
|
||||||
=======
|
|
||||||
// 生成执行记录
|
// 生成执行记录
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
// 转换为 LocalDateTime
|
// 转换为 LocalDateTime
|
||||||
@@ -907,7 +812,6 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
} else {
|
} else {
|
||||||
// 批次售卖情况
|
// 批次售卖情况
|
||||||
throw new RuntimeException("[住院]批次售卖的情况暂未处理");
|
throw new RuntimeException("[住院]批次售卖的情况暂未处理");
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/* // 需要的药品数量(小单位)
|
/* // 需要的药品数量(小单位)
|
||||||
BigDecimal minUnitQuantity = medicationRequestUseExe.getMinUnitQuantity();
|
BigDecimal minUnitQuantity = medicationRequestUseExe.getMinUnitQuantity();
|
||||||
@@ -1073,15 +977,11 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
List<ServiceRequestUseExe> tempActivity = actUseExeList.stream()
|
List<ServiceRequestUseExe> tempActivity = actUseExeList.stream()
|
||||||
.filter(e -> TherapyTimeType.TEMPORARY.getValue().equals(e.getTherapyEnum())).toList();
|
.filter(e -> TherapyTimeType.TEMPORARY.getValue().equals(e.getTherapyEnum())).toList();
|
||||||
// 诊疗定义id集合
|
// 诊疗定义id集合
|
||||||
List<Long> activityDefinitionIdList =
|
List<Long> activityDefinitionIdList
|
||||||
actUseExeList.stream().map(ServiceRequestUseExe::getActivityId).collect(Collectors.toList());
|
= actUseExeList.stream().map(ServiceRequestUseExe::getActivityId).collect(Collectors.toList());
|
||||||
// 医嘱详细信息
|
// 医嘱详细信息
|
||||||
List<AdviceBaseDto> activityInfos = doctorStationAdviceAppService.getAdviceBaseInfo(null, null, null,
|
List<AdviceBaseDto> activityInfos = doctorStationAdviceAppService.getAdviceBaseInfo(null, null, null,
|
||||||
<<<<<<< HEAD
|
|
||||||
activityDefinitionIdList, 0L, 1, 500, Whether.NO.getValue(), List.of(3)).getRecords();
|
|
||||||
=======
|
|
||||||
activityDefinitionIdList, 0L, 1, 500, Whether.NO.getValue(), List.of(3), null).getRecords();
|
activityDefinitionIdList, 0L, 1, 500, Whether.NO.getValue(), List.of(3), null).getRecords();
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 当前时间
|
// 当前时间
|
||||||
Date curDate = new Date();
|
Date curDate = new Date();
|
||||||
@@ -1158,11 +1058,6 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
.setTotalPrice(longServiceRequest.getQuantity().multiply(price).setScale(6, RoundingMode.HALF_UP)); // 总价
|
.setTotalPrice(longServiceRequest.getQuantity().multiply(price).setScale(6, RoundingMode.HALF_UP)); // 总价
|
||||||
chargeItemService.saveOrUpdate(chargeItem);
|
chargeItemService.saveOrUpdate(chargeItem);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
// 处理诊疗绑定耗材
|
|
||||||
this.handleBindDevice(longServiceRequest, procedureId, takeDeviceLocationId, curDate, practitionerId,
|
|
||||||
orgId, serviceRequestUseExe.getAccountId(), exeDate, clickDate);
|
|
||||||
=======
|
|
||||||
// 医嘱定价来源
|
// 医嘱定价来源
|
||||||
String orderPricingSource = TenantOptionUtil.getOptionContent(TenantOptionDict.ORDER_PRICING_SOURCE);
|
String orderPricingSource = TenantOptionUtil.getOptionContent(TenantOptionDict.ORDER_PRICING_SOURCE);
|
||||||
if (OrderPricingSource.RETAIL_PRICE.getCode().equals(orderPricingSource)) {
|
if (OrderPricingSource.RETAIL_PRICE.getCode().equals(orderPricingSource)) {
|
||||||
@@ -1170,7 +1065,6 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
this.handleBindDevice(longServiceRequest, procedureId, takeDeviceLocationId, curDate,
|
this.handleBindDevice(longServiceRequest, procedureId, takeDeviceLocationId, curDate,
|
||||||
practitionerId, orgId, serviceRequestUseExe.getAccountId(), expectedDate, clickDate);
|
practitionerId, orgId, serviceRequestUseExe.getAccountId(), expectedDate, clickDate);
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1202,11 +1096,6 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
.set(ChargeItem::getProcedureId, procedureId)
|
.set(ChargeItem::getProcedureId, procedureId)
|
||||||
.set(ChargeItem::getStatusEnum, ChargeItemStatus.BILLABLE.getValue()));
|
.set(ChargeItem::getStatusEnum, ChargeItemStatus.BILLABLE.getValue()));
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
// 处理诊疗绑定耗材
|
|
||||||
this.handleBindDevice(tempServiceRequest, procedureId, takeDeviceLocationId, curDate, practitionerId,
|
|
||||||
orgId, serviceRequestUseExe.getAccountId(), exeDate, clickDate);
|
|
||||||
=======
|
|
||||||
// 医嘱定价来源
|
// 医嘱定价来源
|
||||||
String orderPricingSource = TenantOptionUtil.getOptionContent(TenantOptionDict.ORDER_PRICING_SOURCE);
|
String orderPricingSource = TenantOptionUtil.getOptionContent(TenantOptionDict.ORDER_PRICING_SOURCE);
|
||||||
if (OrderPricingSource.RETAIL_PRICE.getCode().equals(orderPricingSource)) {
|
if (OrderPricingSource.RETAIL_PRICE.getCode().equals(orderPricingSource)) {
|
||||||
@@ -1214,7 +1103,6 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
this.handleBindDevice(tempServiceRequest, procedureId, takeDeviceLocationId, curDate,
|
this.handleBindDevice(tempServiceRequest, procedureId, takeDeviceLocationId, curDate,
|
||||||
practitionerId, orgId, serviceRequestUseExe.getAccountId(), expectedDate, clickDate);
|
practitionerId, orgId, serviceRequestUseExe.getAccountId(), expectedDate, clickDate);
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1236,8 +1124,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
private void handleBindDevice(ServiceRequest serviceRequest, Long procedureId, Long locationId, Date curDate,
|
private void handleBindDevice(ServiceRequest serviceRequest, Long procedureId, Long locationId, Date curDate,
|
||||||
Long practitionerId, Long orgId, Long accountId, Date exeDate, Date clickDate) {
|
Long practitionerId, Long orgId, Long accountId, Date exeDate, Date clickDate) {
|
||||||
// 查询诊疗绑定耗材的信息
|
// 查询诊疗绑定耗材的信息
|
||||||
List<ActivityBindDeviceDetailDto> activityBindDevice =
|
List<ActivityBindDeviceDetailDto> activityBindDevice
|
||||||
doctorStationAdviceAppMapper.getActivityBindDevice(serviceRequest.getActivityId() + "",
|
= doctorStationAdviceAppMapper.getActivityBindDevice(serviceRequest.getActivityId() + "",
|
||||||
PublicationStatus.ACTIVE.getValue(), CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
PublicationStatus.ACTIVE.getValue(), CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
||||||
// 满足此条件,说明诊疗绑了耗材
|
// 满足此条件,说明诊疗绑了耗材
|
||||||
if (!activityBindDevice.isEmpty()) {
|
if (!activityBindDevice.isEmpty()) {
|
||||||
@@ -1245,8 +1133,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
throw new RuntimeException("【" + serviceRequest.getBusNo() + "】诊疗请求,绑定的耗材未配置发放耗材房");
|
throw new RuntimeException("【" + serviceRequest.getBusNo() + "】诊疗请求,绑定的耗材未配置发放耗材房");
|
||||||
}
|
}
|
||||||
// 耗材定义id集合
|
// 耗材定义id集合
|
||||||
List<Long> deviceIds =
|
List<Long> deviceIds
|
||||||
activityBindDevice.stream().map(ActivityBindDeviceDetailDto::getDeviceId).collect(Collectors.toList());
|
= activityBindDevice.stream().map(ActivityBindDeviceDetailDto::getDeviceId).collect(Collectors.toList());
|
||||||
// 耗材库存集合
|
// 耗材库存集合
|
||||||
List<AdviceInventoryDto> adviceInventoryList = doctorStationAdviceAppMapper.getAdviceInventory(locationId,
|
List<AdviceInventoryDto> adviceInventoryList = doctorStationAdviceAppMapper.getAdviceInventory(locationId,
|
||||||
deviceIds, CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR, PublicationStatus.ACTIVE.getValue());
|
deviceIds, CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR, PublicationStatus.ACTIVE.getValue());
|
||||||
@@ -1255,16 +1143,12 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
||||||
DispenseStatus.DRAFT.getValue(), DispenseStatus.PREPARATION.getValue());
|
DispenseStatus.DRAFT.getValue(), DispenseStatus.PREPARATION.getValue());
|
||||||
// 预减库存
|
// 预减库存
|
||||||
List<AdviceInventoryDto> adviceInventory =
|
List<AdviceInventoryDto> adviceInventory
|
||||||
adviceUtils.subtractInventory(adviceInventoryList, adviceDraftInventoryList);
|
= adviceUtils.subtractInventory(adviceInventoryList, adviceDraftInventoryList);
|
||||||
|
|
||||||
// 耗材医嘱详细信息
|
// 耗材医嘱详细信息
|
||||||
List<AdviceBaseDto> deviceInfos = doctorStationAdviceAppService
|
List<AdviceBaseDto> deviceInfos = doctorStationAdviceAppService
|
||||||
<<<<<<< HEAD
|
|
||||||
.getAdviceBaseInfo(null, null, null, deviceIds, 0L, 1, 500, Whether.NO.getValue(), List.of(2))
|
|
||||||
=======
|
|
||||||
.getAdviceBaseInfo(null, null, null, deviceIds, 0L, 1, 500, Whether.NO.getValue(), List.of(2), null)
|
.getAdviceBaseInfo(null, null, null, deviceIds, 0L, 1, 500, Whether.NO.getValue(), List.of(2), null)
|
||||||
>>>>>>> v1.3
|
|
||||||
.getRecords();
|
.getRecords();
|
||||||
|
|
||||||
DeviceRequest deviceRequest;
|
DeviceRequest deviceRequest;
|
||||||
@@ -1293,14 +1177,10 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
if (deviceAdvice.isEmpty()) {
|
if (deviceAdvice.isEmpty()) {
|
||||||
throw new RuntimeException("未找到对应的医嘱信息,deviceId: " + activityBindDeviceDetailDto.getDeviceId());
|
throw new RuntimeException("未找到对应的医嘱信息,deviceId: " + activityBindDeviceDetailDto.getDeviceId());
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
AdviceBaseDto advice = deviceAdvice.get();
|
|
||||||
=======
|
|
||||||
// 医嘱信息
|
// 医嘱信息
|
||||||
AdviceBaseDto advice = deviceAdvice.get();
|
AdviceBaseDto advice = deviceAdvice.get();
|
||||||
// 拆零比
|
// 拆零比
|
||||||
BigDecimal partPercent = advice.getPartPercent();
|
BigDecimal partPercent = advice.getPartPercent();
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 生成耗材请求
|
// 生成耗材请求
|
||||||
deviceRequest = new DeviceRequest();
|
deviceRequest = new DeviceRequest();
|
||||||
@@ -1328,77 +1208,6 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 需要的耗材数量(小单位)
|
// 需要的耗材数量(小单位)
|
||||||
minUnitCodeQuantity = activityBindDeviceDetailDto.getMinUnitCodeQuantity();
|
minUnitCodeQuantity = activityBindDeviceDetailDto.getMinUnitCodeQuantity();
|
||||||
// 单位(小单位)
|
// 单位(小单位)
|
||||||
<<<<<<< HEAD
|
|
||||||
// String minUnitCode = activityBindDeviceDetailDto.getMinUnitCode();
|
|
||||||
// 库存集合
|
|
||||||
List<AdviceInventoryDto> inventoryList = advice.getInventoryList();
|
|
||||||
// 价格集合
|
|
||||||
List<AdvicePriceDto> priceList = advice.getPriceList();
|
|
||||||
// 剩余需要分配的数量
|
|
||||||
BigDecimal remainingQuantity = minUnitCodeQuantity;
|
|
||||||
// 按批次循环分配数量
|
|
||||||
for (AdviceInventoryDto inventory : inventoryList) {
|
|
||||||
if (remainingQuantity.compareTo(BigDecimal.ZERO) <= 0) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// 可用量
|
|
||||||
BigDecimal availableQuantity = inventory.getQuantity();
|
|
||||||
// 实际供应量
|
|
||||||
BigDecimal actualQuantity;
|
|
||||||
if (availableQuantity.compareTo(remainingQuantity) >= 0) {
|
|
||||||
// 当前批次足够满足剩余需求
|
|
||||||
actualQuantity = remainingQuantity;
|
|
||||||
remainingQuantity = BigDecimal.ZERO;
|
|
||||||
} else {
|
|
||||||
// 当前批次全部用完
|
|
||||||
actualQuantity = availableQuantity;
|
|
||||||
remainingQuantity = remainingQuantity.subtract(availableQuantity);
|
|
||||||
}
|
|
||||||
// 批次号
|
|
||||||
String lotNumber = inventory.getLotNumber();
|
|
||||||
// 查找对应批次的价格
|
|
||||||
AdvicePriceDto priceInfos = findPriceByLotNumber(inventory.getLotNumber(), priceList);
|
|
||||||
|
|
||||||
// 根据批次库存量,生成耗材发放
|
|
||||||
deviceRequest.setQuantity(actualQuantity);
|
|
||||||
deviceRequest.setLotNumber(lotNumber);
|
|
||||||
// 发放ID
|
|
||||||
Long dispenseId =
|
|
||||||
deviceDispenseService.generateDeviceDispense(deviceRequest, procedureId, locationId, exeDate);
|
|
||||||
|
|
||||||
// 根据批次库存量,生成账单
|
|
||||||
chargeItem = new ChargeItem();
|
|
||||||
chargeItem.setStatusEnum(ChargeItemStatus.BILLABLE.getValue()); // 收费状态
|
|
||||||
chargeItem.setBusNo(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix().concat(deviceRequest.getBusNo()));
|
|
||||||
chargeItem.setGenerateSourceEnum(GenerateSource.ORDER_EXECUTE.getValue()); // 生成来源
|
|
||||||
chargeItem.setPatientId(deviceRequest.getPatientId()); // 患者
|
|
||||||
chargeItem.setContextEnum(ChargeItemContext.DEVICE.getValue()); // 类型
|
|
||||||
chargeItem.setEncounterId(deviceRequest.getEncounterId()); // 就诊id
|
|
||||||
chargeItem.setDefinitionId(priceInfos.getDefinitionId()); // 费用定价ID
|
|
||||||
chargeItem.setDefDetailId(priceInfos.getDefinitionDetailId()); // 定价子表主键
|
|
||||||
chargeItem.setEntererId(practitionerId);// 开立人ID
|
|
||||||
chargeItem.setRequestingOrgId(orgId); // 开立科室
|
|
||||||
chargeItem.setEnteredDate(curDate); // 开立时间
|
|
||||||
chargeItem.setServiceTable(CommonConstants.TableName.WOR_DEVICE_REQUEST);// 医疗服务类型
|
|
||||||
chargeItem.setServiceId(deviceRequest.getId()); // 医疗服务ID
|
|
||||||
chargeItem.setProductTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION);// 产品所在表
|
|
||||||
chargeItem.setProductId(activityBindDeviceDetailDto.getDeviceId());// 收费项id
|
|
||||||
chargeItem.setAccountId(accountId);// 关联账户ID
|
|
||||||
chargeItem.setConditionId(deviceRequest.getConditionId()); // 诊断id
|
|
||||||
chargeItem.setEncounterDiagnosisId(deviceRequest.getEncounterDiagnosisId()); // 就诊诊断id
|
|
||||||
chargeItem.setDispenseTable(CommonConstants.TableName.WOR_DEVICE_DISPENSE); // 发放表名
|
|
||||||
// chargeItem.setDispenseId(dispenseId); // 发放ID
|
|
||||||
|
|
||||||
chargeItem.setQuantityValue(actualQuantity); // 数量
|
|
||||||
chargeItem.setQuantityUnit(priceInfos.getUnitCode()); // 单位
|
|
||||||
chargeItem.setUnitPrice(priceInfos.getPrice()); // 单价
|
|
||||||
chargeItem.setTotalPrice(
|
|
||||||
actualQuantity.multiply(priceInfos.getPrice()).setScale(6, RoundingMode.HALF_UP)); // 总价
|
|
||||||
|
|
||||||
chargeItemService.save(chargeItem);
|
|
||||||
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
String minUnitCode = activityBindDeviceDetailDto.getMinUnitCode();
|
String minUnitCode = activityBindDeviceDetailDto.getMinUnitCode();
|
||||||
// 价格集合
|
// 价格集合
|
||||||
List<AdvicePriceDto> priceList = advice.getPriceList();
|
List<AdvicePriceDto> priceList = advice.getPriceList();
|
||||||
@@ -1437,8 +1246,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
deviceRequest.setUnitCode(minUnitCode);
|
deviceRequest.setUnitCode(minUnitCode);
|
||||||
// deviceRequest.setLotNumber(lotNumber);
|
// deviceRequest.setLotNumber(lotNumber);
|
||||||
// 发放ID
|
// 发放ID
|
||||||
Long dispenseId =
|
Long dispenseId
|
||||||
deviceDispenseService.generateDeviceDispense(deviceRequest, procedureId, locationId, exeDate);
|
= deviceDispenseService.generateDeviceDispense(deviceRequest, procedureId, locationId, exeDate);
|
||||||
|
|
||||||
// 根据批次库存量,生成账单
|
// 根据批次库存量,生成账单
|
||||||
chargeItem = new ChargeItem();
|
chargeItem = new ChargeItem();
|
||||||
@@ -1472,7 +1281,6 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
|
|
||||||
chargeItemService.save(chargeItem);
|
chargeItemService.save(chargeItem);
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1501,14 +1309,14 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
*/
|
*/
|
||||||
private List<MedicationRequestUseExe> assemblyMedication(List<AdviceExecuteDetailParam> medicineList) {
|
private List<MedicationRequestUseExe> assemblyMedication(List<AdviceExecuteDetailParam> medicineList) {
|
||||||
// 药品请求id集合
|
// 药品请求id集合
|
||||||
List<Long> medicineRequestIdList =
|
List<Long> medicineRequestIdList
|
||||||
medicineList.stream().map(AdviceExecuteDetailParam::getRequestId).collect(Collectors.toList());
|
= medicineList.stream().map(AdviceExecuteDetailParam::getRequestId).collect(Collectors.toList());
|
||||||
// 药品请求集合
|
// 药品请求集合
|
||||||
List<MedicationRequest> medicationRequestList = medicationRequestService
|
List<MedicationRequest> medicationRequestList = medicationRequestService
|
||||||
.list(new LambdaQueryWrapper<MedicationRequest>().in(MedicationRequest::getId, medicineRequestIdList));
|
.list(new LambdaQueryWrapper<MedicationRequest>().in(MedicationRequest::getId, medicineRequestIdList));
|
||||||
// 药品定义id集合
|
// 药品定义id集合
|
||||||
List<Long> medicationDefinitionIdList =
|
List<Long> medicationDefinitionIdList
|
||||||
medicationRequestList.stream().map(MedicationRequest::getMedicationId).collect(Collectors.toList());
|
= medicationRequestList.stream().map(MedicationRequest::getMedicationId).collect(Collectors.toList());
|
||||||
// 药品定义集合
|
// 药品定义集合
|
||||||
List<MedicationDefinition> medicationDefinitionList = medicationDefinitionService.list(
|
List<MedicationDefinition> medicationDefinitionList = medicationDefinitionService.list(
|
||||||
new LambdaQueryWrapper<MedicationDefinition>().in(MedicationDefinition::getId, medicationDefinitionIdList));
|
new LambdaQueryWrapper<MedicationDefinition>().in(MedicationDefinition::getId, medicationDefinitionIdList));
|
||||||
@@ -1524,8 +1332,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
}
|
}
|
||||||
BeanUtils.copyProperties(medicationRequest, useExe);
|
BeanUtils.copyProperties(medicationRequest, useExe);
|
||||||
// 匹配 executeTimes:根据 medicationRequest 的 id 在 medicineList 中查找匹配的 executeTimes
|
// 匹配 executeTimes:根据 medicationRequest 的 id 在 medicineList 中查找匹配的 executeTimes
|
||||||
List<String> matchedExecuteTimes =
|
List<String> matchedExecuteTimes
|
||||||
medicineList.stream().filter(medicine -> medicine.getRequestId().equals(medicationRequest.getId()))
|
= medicineList.stream().filter(medicine -> medicine.getRequestId().equals(medicationRequest.getId()))
|
||||||
.findFirst().map(AdviceExecuteDetailParam::getExecuteTimes).orElse(null);
|
.findFirst().map(AdviceExecuteDetailParam::getExecuteTimes).orElse(null);
|
||||||
useExe.setExecuteTimes(matchedExecuteTimes);
|
useExe.setExecuteTimes(matchedExecuteTimes);
|
||||||
// 计算 executeTimesNum:executeTimes 的集合大小,转换为 BigDecimal
|
// 计算 executeTimesNum:executeTimes 的集合大小,转换为 BigDecimal
|
||||||
@@ -1567,8 +1375,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
*/
|
*/
|
||||||
private List<ServiceRequestUseExe> assemblyActivity(List<AdviceExecuteDetailParam> activityList) {
|
private List<ServiceRequestUseExe> assemblyActivity(List<AdviceExecuteDetailParam> activityList) {
|
||||||
// 诊疗请求id集合
|
// 诊疗请求id集合
|
||||||
List<Long> activityRequestIdList =
|
List<Long> activityRequestIdList
|
||||||
activityList.stream().map(AdviceExecuteDetailParam::getRequestId).collect(Collectors.toList());
|
= activityList.stream().map(AdviceExecuteDetailParam::getRequestId).collect(Collectors.toList());
|
||||||
// 诊疗请求集合
|
// 诊疗请求集合
|
||||||
List<ServiceRequest> activityRequestList = serviceRequestService
|
List<ServiceRequest> activityRequestList = serviceRequestService
|
||||||
.list(new LambdaQueryWrapper<ServiceRequest>().in(ServiceRequest::getId, activityRequestIdList));
|
.list(new LambdaQueryWrapper<ServiceRequest>().in(ServiceRequest::getId, activityRequestIdList));
|
||||||
@@ -1584,8 +1392,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
}
|
}
|
||||||
BeanUtils.copyProperties(serviceRequest, useExe);
|
BeanUtils.copyProperties(serviceRequest, useExe);
|
||||||
// 匹配 executeTimes:根据 serviceRequest 的 id 在 activityList 中查找匹配的 executeTimes
|
// 匹配 executeTimes:根据 serviceRequest 的 id 在 activityList 中查找匹配的 executeTimes
|
||||||
List<String> matchedExecuteTimes =
|
List<String> matchedExecuteTimes
|
||||||
activityList.stream().filter(activity -> activity.getRequestId().equals(serviceRequest.getId()))
|
= activityList.stream().filter(activity -> activity.getRequestId().equals(serviceRequest.getId()))
|
||||||
.findFirst().map(AdviceExecuteDetailParam::getExecuteTimes).orElse(null);
|
.findFirst().map(AdviceExecuteDetailParam::getExecuteTimes).orElse(null);
|
||||||
useExe.setExecuteTimes(matchedExecuteTimes);
|
useExe.setExecuteTimes(matchedExecuteTimes);
|
||||||
// 计算 executeTimesNum:executeTimes 的集合大小,转换为 BigDecimal
|
// 计算 executeTimesNum:executeTimes 的集合大小,转换为 BigDecimal
|
||||||
@@ -1613,11 +1421,7 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
// 药品发放编码
|
// 药品发放编码
|
||||||
medicationDispense.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_DIS_NO.getPrefix(), 4));
|
medicationDispense.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_DIS_NO.getPrefix(), 4));
|
||||||
// 退药状态
|
// 退药状态
|
||||||
<<<<<<< HEAD
|
|
||||||
medicationDispense.setStatusEnum(DispenseStatus.PREPARATION.getValue());
|
|
||||||
=======
|
|
||||||
medicationDispense.setStatusEnum(DispenseStatus.PENDING_REFUND.getValue());
|
medicationDispense.setStatusEnum(DispenseStatus.PENDING_REFUND.getValue());
|
||||||
>>>>>>> v1.3
|
|
||||||
// 状态变更时间
|
// 状态变更时间
|
||||||
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
|
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
|
||||||
// 取消执行id
|
// 取消执行id
|
||||||
|
|||||||
@@ -30,14 +30,8 @@ import com.openhis.web.inhospitalnursestation.dto.MedicineDispenseFormDto;
|
|||||||
import com.openhis.web.inhospitalnursestation.dto.MedicineSummaryFormDto;
|
import com.openhis.web.inhospitalnursestation.dto.MedicineSummaryFormDto;
|
||||||
import com.openhis.web.inhospitalnursestation.dto.MedicineSummaryParam;
|
import com.openhis.web.inhospitalnursestation.dto.MedicineSummaryParam;
|
||||||
import com.openhis.web.inhospitalnursestation.mapper.MedicineSummaryAppMapper;
|
import com.openhis.web.inhospitalnursestation.mapper.MedicineSummaryAppMapper;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.web.pharmacymanage.dto.UnDispenseInventoryDto;
|
|
||||||
import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper;
|
|
||||||
import com.openhis.workflow.domain.InventoryItem;
|
|
||||||
=======
|
|
||||||
import com.openhis.web.pharmacymanage.dto.DispenseInitDto;
|
import com.openhis.web.pharmacymanage.dto.DispenseInitDto;
|
||||||
import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper;
|
import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.workflow.service.ISupplyDeliveryService;
|
import com.openhis.workflow.service.ISupplyDeliveryService;
|
||||||
import com.openhis.workflow.service.ISupplyRequestService;
|
import com.openhis.workflow.service.ISupplyRequestService;
|
||||||
|
|
||||||
@@ -72,59 +66,6 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
|
|||||||
private ReturnMedicineMapper returnMedicineMapper;
|
private ReturnMedicineMapper returnMedicineMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 查询发药单信息
|
|
||||||
*
|
|
||||||
* @param dispenseFormSearchParam 查询条件
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求
|
|
||||||
* @return 发药单信息
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> getMedicineDispenseFormPage(DispenseFormSearchParam dispenseFormSearchParam, Integer pageNo,
|
|
||||||
Integer pageSize, HttpServletRequest request) {
|
|
||||||
// 初始化查询参数
|
|
||||||
String encounterIds = dispenseFormSearchParam.getEncounterIds();
|
|
||||||
dispenseFormSearchParam.setEncounterIds(null);
|
|
||||||
// 构建查询条件
|
|
||||||
QueryWrapper<DispenseFormSearchParam> queryWrapper =
|
|
||||||
HisQueryUtils.buildQueryWrapper(dispenseFormSearchParam, null, null, request);
|
|
||||||
|
|
||||||
// 手动拼接住院患者id条件
|
|
||||||
if (encounterIds != null && !encounterIds.isEmpty()) {
|
|
||||||
List<Long> encounterIdList =
|
|
||||||
Arrays.stream(encounterIds.split(CommonConstants.Common.COMMA)).map(Long::parseLong).toList();
|
|
||||||
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIdList);
|
|
||||||
}
|
|
||||||
// 领药信息列表
|
|
||||||
Page<MedicineDispenseFormDto> medicineDispenseFormPage =
|
|
||||||
medicineSummaryAppMapper.selectMedicineDispenseFormPage(new Page<>(pageNo, pageSize), queryWrapper,
|
|
||||||
RequestStatus.COMPLETED.getValue(), EncounterActivityStatus.ACTIVE.getValue(),
|
|
||||||
LocationForm.BED.getValue(), ParticipantType.ADMITTING_DOCTOR.getCode(),
|
|
||||||
AccountType.PERSONAL_CASH_ACCOUNT.getCode(), ChargeItemStatus.BILLABLE.getValue(),
|
|
||||||
ChargeItemStatus.BILLED.getValue(), ChargeItemStatus.REFUNDED.getValue(),
|
|
||||||
DispenseStatus.SUMMARIZED.getValue());
|
|
||||||
medicineDispenseFormPage.getRecords().forEach(e -> {
|
|
||||||
// 是否皮试
|
|
||||||
e.setSkinTestFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getSkinTestFlag()));
|
|
||||||
// 是否为注射药物
|
|
||||||
e.setInjectFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getInjectFlag()));
|
|
||||||
// 医嘱类型
|
|
||||||
e.setTherapyEnum_enumText(EnumUtils.getInfoByValue(TherapyTimeType.class, e.getTherapyEnum()));
|
|
||||||
// 性别枚举
|
|
||||||
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
|
|
||||||
// 计算年龄
|
|
||||||
if (e.getBirthDate() != null) {
|
|
||||||
e.setAge(AgeCalculatorUtil.getAge(e.getBirthDate()));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return R.ok(medicineDispenseFormPage);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询药品汇总单
|
|
||||||
=======
|
|
||||||
* 药品汇总单初始化
|
* 药品汇总单初始化
|
||||||
*
|
*
|
||||||
* @return 初始化信息
|
* @return 初始化信息
|
||||||
@@ -133,8 +74,8 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
|
|||||||
public R<?> getMedicineSummaryInit() {
|
public R<?> getMedicineSummaryInit() {
|
||||||
DispenseInitDto initDto = new DispenseInitDto();
|
DispenseInitDto initDto = new DispenseInitDto();
|
||||||
// 未发药原因下拉选列表
|
// 未发药原因下拉选列表
|
||||||
List<DispenseInitDto.NotPerformedReasonOption> notPerformedReasonOptions =
|
List<DispenseInitDto.NotPerformedReasonOption> notPerformedReasonOptions
|
||||||
Stream.of(NotPerformedReasonEnum.values())
|
= Stream.of(NotPerformedReasonEnum.values())
|
||||||
.map(notPerformedReason -> new DispenseInitDto.NotPerformedReasonOption(notPerformedReason.getValue(),
|
.map(notPerformedReason -> new DispenseInitDto.NotPerformedReasonOption(notPerformedReason.getValue(),
|
||||||
notPerformedReason.getInfo()))
|
notPerformedReason.getInfo()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
@@ -151,42 +92,10 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询发药单信息
|
* 查询发药单信息
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param dispenseFormSearchParam 查询条件
|
* @param dispenseFormSearchParam 查询条件
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param request 请求
|
|
||||||
* @return 药品汇总单
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> getMedicineSummaryFormPage(DispenseFormSearchParam dispenseFormSearchParam, Integer pageNo,
|
|
||||||
Integer pageSize, String searchKey, HttpServletRequest request) {
|
|
||||||
// 构建查询条件
|
|
||||||
QueryWrapper<DispenseFormSearchParam> queryWrapper = HisQueryUtils.buildQueryWrapper(dispenseFormSearchParam,
|
|
||||||
searchKey, new HashSet<>(List.of(CommonConstants.FieldName.BusNo)), request);
|
|
||||||
|
|
||||||
// 汇总单分页列表
|
|
||||||
Page<MedicineSummaryFormDto> medicineSummaryFormPage = medicineSummaryAppMapper.selectMedicineSummaryFormPage(
|
|
||||||
new Page<>(pageNo, pageSize), queryWrapper, DispenseStatus.COMPLETED.getValue(),
|
|
||||||
DispenseStatus.IN_PROGRESS.getValue(), SupplyType.SUMMARY_DISPENSE.getValue());
|
|
||||||
medicineSummaryFormPage.getRecords().forEach(e -> {
|
|
||||||
// 发药状态
|
|
||||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(DispenseStatus.class, e.getStatusEnum()));
|
|
||||||
});
|
|
||||||
return R.ok(medicineSummaryFormPage);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询药品汇总单详情
|
|
||||||
*
|
|
||||||
* @param summaryNo 汇总单号
|
|
||||||
* @return 药品汇总单详情
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
=======
|
|
||||||
* @param request 请求
|
* @param request 请求
|
||||||
* @return 发药单信息
|
* @return 发药单信息
|
||||||
*/
|
*/
|
||||||
@@ -197,18 +106,18 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
|
|||||||
String encounterIds = dispenseFormSearchParam.getEncounterIds();
|
String encounterIds = dispenseFormSearchParam.getEncounterIds();
|
||||||
dispenseFormSearchParam.setEncounterIds(null);
|
dispenseFormSearchParam.setEncounterIds(null);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<DispenseFormSearchParam> queryWrapper =
|
QueryWrapper<DispenseFormSearchParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(dispenseFormSearchParam, null, null, request);
|
= HisQueryUtils.buildQueryWrapper(dispenseFormSearchParam, null, null, request);
|
||||||
|
|
||||||
// 手动拼接住院患者id条件
|
// 手动拼接住院患者id条件
|
||||||
if (encounterIds != null && !encounterIds.isEmpty()) {
|
if (encounterIds != null && !encounterIds.isEmpty()) {
|
||||||
List<Long> encounterIdList =
|
List<Long> encounterIdList
|
||||||
Arrays.stream(encounterIds.split(CommonConstants.Common.COMMA)).map(Long::parseLong).toList();
|
= Arrays.stream(encounterIds.split(CommonConstants.Common.COMMA)).map(Long::parseLong).toList();
|
||||||
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIdList);
|
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIdList);
|
||||||
}
|
}
|
||||||
// 领药信息列表
|
// 领药信息列表
|
||||||
Page<MedicineDispenseFormDto> medicineDispenseFormPage =
|
Page<MedicineDispenseFormDto> medicineDispenseFormPage
|
||||||
medicineSummaryAppMapper.selectMedicineDispenseFormPage(new Page<>(pageNo, pageSize), queryWrapper,
|
= medicineSummaryAppMapper.selectMedicineDispenseFormPage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
RequestStatus.COMPLETED.getValue(), EncounterActivityStatus.ACTIVE.getValue(),
|
RequestStatus.COMPLETED.getValue(), EncounterActivityStatus.ACTIVE.getValue(),
|
||||||
LocationForm.BED.getValue(), ParticipantType.ADMITTING_DOCTOR.getCode(),
|
LocationForm.BED.getValue(), ParticipantType.ADMITTING_DOCTOR.getCode(),
|
||||||
AccountType.PERSONAL_CASH_ACCOUNT.getCode(), ChargeItemStatus.BILLABLE.getValue(),
|
AccountType.PERSONAL_CASH_ACCOUNT.getCode(), ChargeItemStatus.BILLABLE.getValue(),
|
||||||
@@ -266,7 +175,6 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
|
|||||||
* @return 药品汇总单详情
|
* @return 药品汇总单详情
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
>>>>>>> v1.3
|
|
||||||
public R<?> getMedicineSummaryFormDetail(String summaryNo) {
|
public R<?> getMedicineSummaryFormDetail(String summaryNo) {
|
||||||
// 药品汇总单详情
|
// 药品汇总单详情
|
||||||
return R.ok(medicineSummaryAppMapper.selectMedicineSummaryFormDetail(summaryNo));
|
return R.ok(medicineSummaryAppMapper.selectMedicineSummaryFormDetail(summaryNo));
|
||||||
@@ -287,8 +195,8 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
|
|||||||
// 申请人
|
// 申请人
|
||||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||||
// 药品发放id
|
// 药品发放id
|
||||||
List<Long> medDispenseIdList =
|
List<Long> medDispenseIdList
|
||||||
medicineSummaryParamList.stream().map(MedicineSummaryParam::getDispenseId).toList();
|
= medicineSummaryParamList.stream().map(MedicineSummaryParam::getDispenseId).toList();
|
||||||
// 药品发放信息列表
|
// 药品发放信息列表
|
||||||
List<MedicationDispense> medicationDispenseList = medicationDispenseService.listByIds(medDispenseIdList);
|
List<MedicationDispense> medicationDispenseList = medicationDispenseService.listByIds(medDispenseIdList);
|
||||||
if (medicationDispenseList == null || medicationDispenseList.isEmpty()) {
|
if (medicationDispenseList == null || medicationDispenseList.isEmpty()) {
|
||||||
@@ -302,8 +210,8 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
|
|||||||
List<MedicationDefinition> medicationDefinitions = medicationDefinitionService
|
List<MedicationDefinition> medicationDefinitions = medicationDefinitionService
|
||||||
.listByIds(medicationDispenseList.stream().map(MedicationDispense::getMedicationId).toList());
|
.listByIds(medicationDispenseList.stream().map(MedicationDispense::getMedicationId).toList());
|
||||||
// 根据发放药房分组
|
// 根据发放药房分组
|
||||||
Map<Long, List<MedicationDispense>> medicationLocationMap =
|
Map<Long, List<MedicationDispense>> medicationLocationMap
|
||||||
medicationDispenseList.stream().collect(Collectors.groupingBy(MedicationDispense::getLocationId));
|
= medicationDispenseList.stream().collect(Collectors.groupingBy(MedicationDispense::getLocationId));
|
||||||
// 循环每个药房
|
// 循环每个药房
|
||||||
for (Map.Entry<Long, List<MedicationDispense>> entry : medicationLocationMap.entrySet()) {
|
for (Map.Entry<Long, List<MedicationDispense>> entry : medicationLocationMap.entrySet()) {
|
||||||
// 汇总单据号
|
// 汇总单据号
|
||||||
@@ -328,8 +236,8 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
|
|||||||
// 单位
|
// 单位
|
||||||
String unitCode = null;
|
String unitCode = null;
|
||||||
// 根据药品id获取对应的药品信息
|
// 根据药品id获取对应的药品信息
|
||||||
Optional<MedicationDefinition> medicationDefinition =
|
Optional<MedicationDefinition> medicationDefinition
|
||||||
medicationDefinitions.stream().filter(x -> x.getId().equals(medicationId)).findFirst();
|
= medicationDefinitions.stream().filter(x -> x.getId().equals(medicationId)).findFirst();
|
||||||
if (medicationDefinition.isPresent()) {
|
if (medicationDefinition.isPresent()) {
|
||||||
partPercent = medicationDefinition.get().getPartPercent();
|
partPercent = medicationDefinition.get().getPartPercent();
|
||||||
minUnitCode = medicationDefinition.get().getMinUnitCode();
|
minUnitCode = medicationDefinition.get().getMinUnitCode();
|
||||||
@@ -367,56 +275,6 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
|
|||||||
* @return 处理结果
|
* @return 处理结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> checkInventoryItem(List<Long> devDispenseId, List<Long> medDispenseId) {
|
|
||||||
|
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
|
||||||
// 获取库存信息
|
|
||||||
List<UnDispenseInventoryDto> inventoryList = returnMedicineMapper.selectInventoryInfoList(devDispenseId, medDispenseId,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
// 按每个药品分组
|
|
||||||
Map<Long, List<UnDispenseInventoryDto>> groupedByItemId =
|
|
||||||
inventoryList.stream().collect(Collectors.groupingBy(UnDispenseInventoryDto::getItemId));
|
|
||||||
// 遍历每个分组校验库存状态
|
|
||||||
for (Map.Entry<Long, List<UnDispenseInventoryDto>> entry : groupedByItemId.entrySet()) {
|
|
||||||
List<UnDispenseInventoryDto> groupItems = entry.getValue();
|
|
||||||
if (groupItems.stream().map(UnDispenseInventoryDto::getInventoryStatusEnum)
|
|
||||||
.allMatch(x -> x.equals(PublicationStatus.RETIRED.getValue()))) {
|
|
||||||
// 库存停供校验
|
|
||||||
return R.fail(groupItems.get(0).getItemName() + "库存已停供");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!inventoryList.isEmpty()) {
|
|
||||||
for (UnDispenseInventoryDto unDispenseInventoryDto : inventoryList) {
|
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())) {
|
|
||||||
InventoryItem inventoryItem = new InventoryItem();
|
|
||||||
// 库存数量判定
|
|
||||||
if (unDispenseInventoryDto.getDispenseUnit().equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-请求数量
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity().subtract(unDispenseInventoryDto.getQuantity());
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-拆零数量(拆零比×请求数量)
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity()
|
|
||||||
.subtract(unDispenseInventoryDto.getPartPercent().multiply(unDispenseInventoryDto.getQuantity()));
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
inventoryItemList.add(inventoryItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
public R<?> cancelSummary(String summaryNo) {
|
public R<?> cancelSummary(String summaryNo) {
|
||||||
// 取消汇总申请(软删除)
|
// 取消汇总申请(软删除)
|
||||||
List<Long> requestIdList = supplyRequestService.cancelSummarySupplyRequest(List.of(summaryNo));
|
List<Long> requestIdList = supplyRequestService.cancelSummarySupplyRequest(List.of(summaryNo));
|
||||||
@@ -429,7 +287,6 @@ public class MedicineSummaryAppServiceImpl implements IMedicineSummaryAppService
|
|||||||
boolean result = medicationDispenseService.cancelMedicationSummary(List.of(summaryNo));
|
boolean result = medicationDispenseService.cancelMedicationSummary(List.of(summaryNo));
|
||||||
if (!result) {
|
if (!result) {
|
||||||
return R.fail("取消汇总申请失败");
|
return R.fail("取消汇总申请失败");
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"取消"}));
|
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[]{"取消"}));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,37 +1,5 @@
|
|||||||
package com.openhis.web.inhospitalnursestation.appservice.impl;
|
package com.openhis.web.inhospitalnursestation.appservice.impl;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
import com.core.common.core.domain.model.LoginUser;
|
|
||||||
import com.core.common.exception.ServiceException;
|
|
||||||
import com.core.common.utils.AssignSeqUtil;
|
|
||||||
import com.core.common.utils.SecurityUtils;
|
|
||||||
import com.openhis.administration.domain.ChargeItem;
|
|
||||||
import com.openhis.administration.service.IChargeItemService;
|
|
||||||
import com.openhis.common.constant.CommonConstants;
|
|
||||||
import com.openhis.common.enums.*;
|
|
||||||
import com.openhis.web.doctorstation.dto.AdviceSaveDto;
|
|
||||||
import com.openhis.web.doctorstation.utils.AdviceUtils;
|
|
||||||
import com.openhis.web.inhospitalnursestation.appservice.INurseBillingAppService;
|
|
||||||
import com.openhis.web.regdoctorstation.dto.RegAdviceSaveDto;
|
|
||||||
import com.openhis.web.regdoctorstation.dto.RegAdviceSaveParam;
|
|
||||||
import com.openhis.workflow.domain.DeviceRequest;
|
|
||||||
import com.openhis.workflow.service.IDeviceDispenseService;
|
|
||||||
import com.openhis.workflow.service.IDeviceRequestService;
|
|
||||||
import com.openhis.workflow.service.IServiceRequestService;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院护士站划价服务实现类
|
|
||||||
* 核心功能:临时耗材/诊疗活动划价签发、关联费用项管理、库存校验、医嘱删除(已收费校验)等
|
|
||||||
=======
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -83,56 +51,13 @@ import com.openhis.workflow.service.IDeviceRequestService;
|
|||||||
import com.openhis.workflow.service.IServiceRequestService;
|
import com.openhis.workflow.service.IServiceRequestService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 住院护士站划价服务实现类 核心职责: 1. 临时耗材划价签发(含耗材请求生成、发放记录创建、费用项关联) 2. 诊疗活动划价签发(含服务请求生成、子项处理、费用项关联) 3. 划价参数校验(非空校验、库房校验等) 4.
|
* 住院护士站划价服务实现类 核心职责: 1. 临时耗材划价签发(含耗材请求生成、发放记录创建、费用项关联) 2.
|
||||||
* 已收费项目删除限制(避免误删已结算数据) 5. 关联数据一致性管理(请求表、执行表、费用表、发放表联动)
|
* 诊疗活动划价签发(含服务请求生成、子项处理、费用项关联) 3. 划价参数校验(非空校验、库房校验等) 4. 已收费项目删除限制(避免误删已结算数据) 5.
|
||||||
>>>>>>> v1.3
|
* 关联数据一致性管理(请求表、执行表、费用表、发放表联动)
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class NurseBillingAppService implements INurseBillingAppService {
|
public class NurseBillingAppService implements INurseBillingAppService {
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
// 依赖注入:保留@Resource注解,按原有方式注入依赖
|
|
||||||
@Resource
|
|
||||||
private AdviceUtils adviceUtils;
|
|
||||||
@Resource
|
|
||||||
private AssignSeqUtil assignSeqUtil;
|
|
||||||
@Resource
|
|
||||||
private IDeviceRequestService iDeviceRequestService;
|
|
||||||
@Resource
|
|
||||||
private IServiceRequestService iServiceRequestService;
|
|
||||||
@Resource
|
|
||||||
private IChargeItemService iChargeItemService;
|
|
||||||
@Resource
|
|
||||||
private IDeviceDispenseService iDeviceDispenseService;
|
|
||||||
|
|
||||||
// 常量提取:避免魔法值,提高代码可维护性和可读性
|
|
||||||
/** 耗材请求服务表名(关联费用项使用) */
|
|
||||||
private static final String SERVICE_TABLE_DEVICE_REQUEST = CommonConstants.TableName.WOR_DEVICE_REQUEST;
|
|
||||||
private static final String SERVICE_TABLE_SERVICE_REQUEST = CommonConstants.TableName.WOR_SERVICE_REQUEST;
|
|
||||||
/** 费用项业务编号前缀 */
|
|
||||||
private static final String CHARGE_ITEM_BUS_NO_PREFIX = AssignSeqEnum.CHARGE_ITEM_NO.getPrefix();
|
|
||||||
/** 耗材申请单号序列号长度(按日生成) */
|
|
||||||
private static final int DEVICE_RES_NO_SEQ_LENGTH = 4;
|
|
||||||
/** 医嘱签发编码序列号长度 */
|
|
||||||
private static final int ADVICE_SIGN_SEQ_LENGTH = 10;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增住院护士站划价
|
|
||||||
* 完整流程:参数初始化 → 入参校验 → 医嘱分类(耗材/诊疗活动)→ 生成签发编码 → 处理耗材划价 → 处理诊疗活动划价
|
|
||||||
*
|
|
||||||
* @param regAdviceSaveParam 划价请求参数(含患者信息、医嘱列表、科室ID等核心数据)
|
|
||||||
* @return R<?> 划价结果响应(成功/失败信息、状态码)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Transactional(rollbackFor = Exception.class) // 事务管理:划价相关操作原子性,任一环节失败整体回滚
|
|
||||||
public R<?> addInNurseBilling(RegAdviceSaveParam regAdviceSaveParam) {
|
|
||||||
// 1. 时间参数初始化:默认使用当前时间,支持入参指定
|
|
||||||
Date curDate = new Date();
|
|
||||||
Date startTime = regAdviceSaveParam.getStartTime() == null ? curDate : regAdviceSaveParam.getStartTime();
|
|
||||||
Date authoredTime = regAdviceSaveParam.getAuthoredTime() == null ? curDate : regAdviceSaveParam.getAuthoredTime();
|
|
||||||
|
|
||||||
// 2. 入参校验:非空校验 + 库存校验,校验失败直接返回错误响应
|
|
||||||
=======
|
|
||||||
// ======================== 常量定义(关联表名/编码规则)========================
|
// ======================== 常量定义(关联表名/编码规则)========================
|
||||||
/**
|
/**
|
||||||
* 耗材请求服务关联表名(用于费用项关联数据源)
|
* 耗材请求服务关联表名(用于费用项关联数据源)
|
||||||
@@ -215,11 +140,12 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
private IOrganizationService organizationService;
|
private IOrganizationService organizationService;
|
||||||
|
|
||||||
// ======================== 核心业务方法(划价新增)========================
|
// ======================== 核心业务方法(划价新增)========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增住院护士站划价(核心入口方法) 完整流程:参数初始化 → 入参校验 → 医嘱分类 → 生成全局签发编码 → 分类处理划价 → 返回结果 事务特性:所有操作原子化,任一环节失败则整体回滚(避免数据不一致)
|
* 新增住院护士站划价(核心入口方法) 完整流程:参数初始化 → 入参校验 → 医嘱分类 → 生成全局签发编码 → 分类处理划价 → 返回结果
|
||||||
|
* 事务特性:所有操作原子化,任一环节失败则整体回滚(避免数据不一致)
|
||||||
*
|
*
|
||||||
* @param regAdviceSaveParam 划价请求参数体 包含:患者ID、就诊ID、住院科室ID、医嘱列表(耗材/诊疗活动)、操作时间等核心数据
|
* @param regAdviceSaveParam 划价请求参数体
|
||||||
|
* 包含:患者ID、就诊ID、住院科室ID、医嘱列表(耗材/诊疗活动)、操作时间等核心数据
|
||||||
* @return R<?> 划价结果响应 成功:返回操作成功提示(编码M00002) 失败:返回具体错误信息(如参数缺失、库房为空等)
|
* @return R<?> 划价结果响应 成功:返回操作成功提示(编码M00002) 失败:返回具体错误信息(如参数缺失、库房为空等)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@@ -231,292 +157,15 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
// 1. 时间参数初始化:优先使用入参指定时间,无则默认当前系统时间
|
// 1. 时间参数初始化:优先使用入参指定时间,无则默认当前系统时间
|
||||||
Date curDate = new Date();
|
Date curDate = new Date();
|
||||||
Date startTime = regAdviceSaveParam.getStartTime() == null ? curDate : regAdviceSaveParam.getStartTime();
|
Date startTime = regAdviceSaveParam.getStartTime() == null ? curDate : regAdviceSaveParam.getStartTime();
|
||||||
Date authoredTime =
|
Date authoredTime
|
||||||
regAdviceSaveParam.getAuthoredTime() == null ? curDate : regAdviceSaveParam.getAuthoredTime();
|
= regAdviceSaveParam.getAuthoredTime() == null ? curDate : regAdviceSaveParam.getAuthoredTime();
|
||||||
|
|
||||||
// 2. 入参校验:校验不通过直接返回错误响应(避免后续无效处理)
|
// 2. 入参校验:校验不通过直接返回错误响应(避免后续无效处理)
|
||||||
>>>>>>> v1.3
|
|
||||||
R<?> checkResult = checkNurseBillingParam(regAdviceSaveParam);
|
R<?> checkResult = checkNurseBillingParam(regAdviceSaveParam);
|
||||||
if (checkResult.getCode() != R.SUCCESS) {
|
if (checkResult.getCode() != R.SUCCESS) {
|
||||||
return checkResult;
|
return checkResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
// 3. 提取核心业务参数
|
|
||||||
Long organizationId = regAdviceSaveParam.getOrganizationId(); // 患者住院科室ID
|
|
||||||
List<RegAdviceSaveDto> allAdviceList = regAdviceSaveParam.getRegAdviceSaveList(); // 所有待处理医嘱列表
|
|
||||||
|
|
||||||
// 4. 按医嘱类型分类:拆分耗材类和诊疗活动类(分别处理)
|
|
||||||
List<RegAdviceSaveDto> deviceAdviceList = filterDeviceAdvice(allAdviceList); // 耗材类医嘱
|
|
||||||
List<RegAdviceSaveDto> activityAdviceList = filterActivityAdvice(allAdviceList); // 诊疗活动类医嘱
|
|
||||||
|
|
||||||
// 5. 生成全局唯一的医嘱签发编码
|
|
||||||
String signCode = assignSeqUtil.getSeq(AssignSeqEnum.ADVICE_SIGN.getPrefix(), ADVICE_SIGN_SEQ_LENGTH);
|
|
||||||
|
|
||||||
// 6. 处理耗材类医嘱划价(新增/修改/删除逻辑)
|
|
||||||
handleDeviceBilling(deviceAdviceList, null, signCode, organizationId, curDate);
|
|
||||||
|
|
||||||
// 7. 处理诊疗活动类医嘱划价(原代码未实现,保留扩展入口)
|
|
||||||
handleActivityBilling(activityAdviceList, signCode, organizationId, curDate, startTime, authoredTime);
|
|
||||||
|
|
||||||
// 8. 划价成功返回响应
|
|
||||||
return R.ok("住院划价签发成功");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 筛选耗材类医嘱
|
|
||||||
* 按医嘱类型枚举(ItemType.DEVICE)过滤,仅保留耗材相关医嘱
|
|
||||||
*
|
|
||||||
* @param allAdviceList 所有待处理医嘱列表
|
|
||||||
* @return List<RegAdviceSaveDto> 耗材类医嘱列表
|
|
||||||
*/
|
|
||||||
private List<RegAdviceSaveDto> filterDeviceAdvice(List<RegAdviceSaveDto> allAdviceList) {
|
|
||||||
return allAdviceList.stream()
|
|
||||||
.filter(advice -> ItemType.DEVICE.getValue().equals(advice.getAdviceType()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 筛选诊疗活动类医嘱
|
|
||||||
* 按医嘱类型枚举(ItemType.ACTIVITY)过滤,仅保留诊疗活动相关医嘱
|
|
||||||
*
|
|
||||||
* @param allAdviceList 所有待处理医嘱列表
|
|
||||||
* @return List<RegAdviceSaveDto> 诊疗活动类医嘱列表
|
|
||||||
*/
|
|
||||||
private List<RegAdviceSaveDto> filterActivityAdvice(List<RegAdviceSaveDto> allAdviceList) {
|
|
||||||
return allAdviceList.stream()
|
|
||||||
.filter(advice -> ItemType.ACTIVITY.getValue().equals(advice.getAdviceType()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理耗材类医嘱划价
|
|
||||||
* 核心流程:筛选临时耗材 → 处理删除(已收费校验)→ 新增/修改耗材记录 → 同步发放+费用项
|
|
||||||
*
|
|
||||||
* @param deviceAdviceList 耗材类医嘱列表
|
|
||||||
* @param deleteList 待删除的耗材医嘱列表(可为null,暂无删除场景传null)
|
|
||||||
* @param signCode 医嘱签发编码(全局唯一)
|
|
||||||
* @param organizationId 患者住院科室ID
|
|
||||||
* @param curDate 当前操作时间
|
|
||||||
*/
|
|
||||||
private void handleDeviceBilling(List<RegAdviceSaveDto> deviceAdviceList, List<AdviceSaveDto> deleteList,
|
|
||||||
String signCode, Long organizationId, Date curDate) {
|
|
||||||
// 1. 筛选临时类型耗材:仅处理临时医嘱(TherapyTimeType.TEMPORARY)的新增/修改
|
|
||||||
List<AdviceSaveDto> tempDeviceList = deviceAdviceList.stream()
|
|
||||||
.filter(advice -> TherapyTimeType.TEMPORARY.getValue().equals(advice.getTherapyEnum()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
// 2. 处理耗材删除:校验已收费状态 + 关联数据删除
|
|
||||||
handleDelRequest(deleteList,SERVICE_TABLE_DEVICE_REQUEST);
|
|
||||||
|
|
||||||
// 3. 处理耗材新增/修改:同步保存耗材请求、发放记录、费用项
|
|
||||||
handleDeviceInsertOrUpdate(tempDeviceList, organizationId, curDate);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理诊疗活动类医嘱划价
|
|
||||||
* (扩展入口:原代码未实现,可参考耗材处理逻辑,关联服务请求表、费用项等)
|
|
||||||
*
|
|
||||||
* @param activityAdviceList 诊疗活动类医嘱列表
|
|
||||||
* @param signCode 医嘱签发编码
|
|
||||||
* @param organizationId 住院科室ID
|
|
||||||
* @param curDate 当前操作时间
|
|
||||||
* @param startTime 医嘱开始时间
|
|
||||||
* @param authoredTime 医嘱签发时间
|
|
||||||
*/
|
|
||||||
private void handleActivityBilling(List<RegAdviceSaveDto> activityAdviceList, String signCode,
|
|
||||||
Long organizationId, Date curDate, Date startTime, Date authoredTime) {
|
|
||||||
// 注:诊疗活动划价逻辑待实现,建议流程:
|
|
||||||
// 1. 筛选临时类型诊疗活动
|
|
||||||
// 2. 处理删除(如需)
|
|
||||||
// 3. 新增/修改服务请求记录(IServiceRequestService)
|
|
||||||
// 4. 同步生成/更新费用项(IChargeItemService)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理耗材删除逻辑
|
|
||||||
* 关键校验:已收费的耗材项目不允许删除
|
|
||||||
* 关联删除:耗材请求表 → 耗材发放记录 → 费用项表(级联删除关联数据)
|
|
||||||
*
|
|
||||||
* @param deleteList 待删除的耗材医嘱列表(可为null)
|
|
||||||
*/
|
|
||||||
private void handleDelRequest(List<AdviceSaveDto> deleteList,String serviceTable) {
|
|
||||||
// 空列表直接返回,避免无效循环和查询
|
|
||||||
if (deleteList == null || deleteList.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// 提取待删除请求ID列表(用于查询费用状态)
|
|
||||||
List<Long> delRequestIds = deleteList.stream()
|
|
||||||
.map(AdviceSaveDto::getRequestId)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
// 校验:待删除项是否已收费,已收费则抛出异常阻止删除
|
|
||||||
checkDeletedDeviceChargeStatus(delRequestIds);
|
|
||||||
|
|
||||||
// 执行级联删除:循环处理每个待删除项的关联数据
|
|
||||||
for (AdviceSaveDto deleteDto : deleteList) {
|
|
||||||
Long requestId = deleteDto.getRequestId();
|
|
||||||
if (serviceTable.equals(SERVICE_TABLE_DEVICE_REQUEST)){
|
|
||||||
iDeviceRequestService.removeById(requestId); // 删除耗材请求主记录
|
|
||||||
iDeviceDispenseService.deleteDeviceDispense(requestId); // 删除关联的耗材发放记录
|
|
||||||
}
|
|
||||||
// 删除关联的费用项(按服务表+服务ID关联)
|
|
||||||
iChargeItemService.deleteByServiceTableAndId(SERVICE_TABLE_DEVICE_REQUEST, requestId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验待删除耗材的费用状态
|
|
||||||
* 查询待删除项对应的费用项,若存在已收费(ChargeItemStatus.BILLED)状态则抛出业务异常
|
|
||||||
*
|
|
||||||
* @param delRequestIds 待删除的耗材请求ID列表
|
|
||||||
*/
|
|
||||||
private void checkDeletedDeviceChargeStatus(List<Long> delRequestIds) {
|
|
||||||
if (delRequestIds.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查询待删除耗材对应的费用项列表
|
|
||||||
List<ChargeItem> chargeItemList = iChargeItemService.getChargeItemInfoByReqId(delRequestIds);
|
|
||||||
if (chargeItemList == null || chargeItemList.isEmpty()) {
|
|
||||||
return; // 无关联费用项,直接允许删除
|
|
||||||
}
|
|
||||||
|
|
||||||
// 校验是否存在已收费项:使用stream.anyMatch简化循环判断
|
|
||||||
boolean hasBilledItem = chargeItemList.stream()
|
|
||||||
.anyMatch(ci -> ChargeItemStatus.BILLED.getValue().equals(ci.getStatusEnum()));
|
|
||||||
if (hasBilledItem) {
|
|
||||||
throw new ServiceException("删除失败:部分项目已完成收费,不支持直接删除,请联系收费人员处理后重试");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处理耗材新增/修改
|
|
||||||
* 流程:构建耗材请求对象 → 保存/更新 → 处理耗材发放 → 构建费用项 → 保存/更新费用项
|
|
||||||
*
|
|
||||||
* @param tempDeviceList 临时耗材医嘱列表(新增/修改)
|
|
||||||
* @param organizationId 住院科室ID
|
|
||||||
* @param curDate 当前操作时间
|
|
||||||
*/
|
|
||||||
private void handleDeviceInsertOrUpdate(List<AdviceSaveDto> tempDeviceList, Long organizationId, Date curDate) {
|
|
||||||
if (tempDeviceList.isEmpty()) {
|
|
||||||
return; // 无临时耗材需处理,直接返回
|
|
||||||
}
|
|
||||||
|
|
||||||
// 循环处理每个临时耗材医嘱
|
|
||||||
for (AdviceSaveDto adviceDto : tempDeviceList) {
|
|
||||||
// 1. 构建耗材请求对象(DeviceRequest)并执行保存/更新
|
|
||||||
if (adviceDto.getRequestId() == null) {
|
|
||||||
adviceDto.setDbOpType(DbOpType.INSERT.getCode()); // 新增时设置操作类型
|
|
||||||
}else {
|
|
||||||
adviceDto.setDbOpType(DbOpType.UPDATE.getCode()); // 修改时设置操作类型
|
|
||||||
}
|
|
||||||
DeviceRequest deviceRequest = buildDeviceRequest(adviceDto, curDate);
|
|
||||||
iDeviceRequestService.saveOrUpdate(deviceRequest);
|
|
||||||
|
|
||||||
// 2. 同步处理耗材发放:根据操作类型(新增/修改)执行发放逻辑
|
|
||||||
iDeviceDispenseService.handleDeviceDispense(deviceRequest, adviceDto.getDbOpType());
|
|
||||||
|
|
||||||
// 3. 构建费用项对象(ChargeItem)并执行保存/更新
|
|
||||||
ChargeItem chargeItem = buildChargeItem(adviceDto, deviceRequest, curDate);
|
|
||||||
iChargeItemService.saveOrUpdate(chargeItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 构建耗材请求对象(DeviceRequest)
|
|
||||||
* 功能:将医嘱DTO(AdviceSaveDto)的属性映射到耗材请求实体,设置默认状态和业务编号
|
|
||||||
*
|
|
||||||
* @param adviceDto 耗材医嘱DTO(含请求参数)
|
|
||||||
* @param curDate 当前操作时间
|
|
||||||
* @return DeviceRequest 构建完成的耗材请求实体
|
|
||||||
*/
|
|
||||||
private DeviceRequest buildDeviceRequest(AdviceSaveDto adviceDto, Date curDate) {
|
|
||||||
DeviceRequest deviceRequest = new DeviceRequest();
|
|
||||||
|
|
||||||
// 基础配置:主键、状态、业务编号
|
|
||||||
deviceRequest.setId(adviceDto.getRequestId()); // 主键ID(新增为null,修改为已有ID)
|
|
||||||
deviceRequest.setStatusEnum(RequestStatus.ACTIVE.getValue()); // 划价时直接签发,状态为"激活"
|
|
||||||
// 按日生成业务编号:前缀+4位序列号(确保每日唯一)
|
|
||||||
deviceRequest.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.DEVICE_RES_NO.getPrefix(), DEVICE_RES_NO_SEQ_LENGTH));
|
|
||||||
deviceRequest.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源:医生处方
|
|
||||||
|
|
||||||
// 业务属性映射:从DTO映射到实体
|
|
||||||
deviceRequest.setQuantity(adviceDto.getQuantity()); // 请求数量
|
|
||||||
deviceRequest.setUnitCode(adviceDto.getUnitCode()); // 单位编码
|
|
||||||
deviceRequest.setLotNumber(adviceDto.getLotNumber()); // 产品批号
|
|
||||||
deviceRequest.setCategoryEnum(adviceDto.getCategoryEnum()); // 请求类型(枚举)
|
|
||||||
deviceRequest.setDeviceDefId(adviceDto.getAdviceDefinitionId()); // 耗材定义ID
|
|
||||||
deviceRequest.setPatientId(adviceDto.getPatientId()); // 患者ID
|
|
||||||
deviceRequest.setRequesterId(adviceDto.getPractitionerId()); // 开方医生ID
|
|
||||||
deviceRequest.setOrgId(adviceDto.getFounderOrgId()); // 开方人科室ID
|
|
||||||
deviceRequest.setReqAuthoredTime(curDate); // 请求开始时间
|
|
||||||
deviceRequest.setPerformLocation(adviceDto.getLocationId()); // 发放耗材房ID
|
|
||||||
deviceRequest.setEncounterId(adviceDto.getEncounterId()); // 就诊ID
|
|
||||||
deviceRequest.setPackageId(adviceDto.getPackageId()); // 组套ID
|
|
||||||
deviceRequest.setContentJson(adviceDto.getContentJson()); // 请求内容JSON(扩展信息)
|
|
||||||
deviceRequest.setYbClassEnum(adviceDto.getYbClassEnum()); // 医保类别编码
|
|
||||||
deviceRequest.setConditionId(adviceDto.getConditionId()); // 诊断ID
|
|
||||||
deviceRequest.setEncounterDiagnosisId(adviceDto.getEncounterDiagnosisId()); // 就诊诊断ID
|
|
||||||
|
|
||||||
return deviceRequest;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 构建费用项对象(ChargeItem)
|
|
||||||
* 功能:关联耗材请求实体和医嘱DTO,映射费用相关属性,设置默认状态和业务编号
|
|
||||||
*
|
|
||||||
* @param adviceDto 耗材医嘱DTO(含费用参数)
|
|
||||||
* @param deviceRequest 已保存的耗材请求实体(关联服务ID)
|
|
||||||
* @param curDate 当前操作时间
|
|
||||||
* @return ChargeItem 构建完成的费用项实体
|
|
||||||
*/
|
|
||||||
private ChargeItem buildChargeItem(AdviceSaveDto adviceDto, DeviceRequest deviceRequest,Date curDate) {
|
|
||||||
ChargeItem chargeItem = new ChargeItem();
|
|
||||||
|
|
||||||
// 基础配置:主键、状态、业务编号
|
|
||||||
chargeItem.setId(adviceDto.getChargeItemId()); // 费用项ID(新增为null,修改为已有ID)
|
|
||||||
chargeItem.setStatusEnum(ChargeItemStatus.DRAFT.getValue()); // 初始状态:草稿(未收费)
|
|
||||||
// 业务编号:费用项前缀+耗材请求编号(确保与耗材请求一一关联)
|
|
||||||
chargeItem.setBusNo(CHARGE_ITEM_BUS_NO_PREFIX.concat(deviceRequest.getBusNo()));
|
|
||||||
chargeItem.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源:医生处方
|
|
||||||
|
|
||||||
// 业务属性映射:患者、就诊、定价相关信息
|
|
||||||
chargeItem.setPatientId(adviceDto.getPatientId()); // 患者ID
|
|
||||||
chargeItem.setContextEnum(adviceDto.getAdviceType()); // 费用类型(耗材)
|
|
||||||
chargeItem.setEncounterId(adviceDto.getEncounterId()); // 就诊ID
|
|
||||||
chargeItem.setDefinitionId(adviceDto.getDefinitionId()); // 费用定价ID
|
|
||||||
chargeItem.setDefDetailId(adviceDto.getDefinitionDetailId()); // 定价子表主键(明细定价)
|
|
||||||
chargeItem.setEntererId(adviceDto.getPractitionerId()); // 开立人ID(开方医生)
|
|
||||||
chargeItem.setRequestingOrgId(SecurityUtils.getLoginUser().getOrgId()); // 开立科室ID
|
|
||||||
chargeItem.setEnteredDate(curDate); // 开立时间
|
|
||||||
chargeItem.setServiceTable(SERVICE_TABLE_DEVICE_REQUEST); // 医疗服务类型(关联耗材请求表)
|
|
||||||
chargeItem.setServiceId(deviceRequest.getId()); // 医疗服务ID(关联耗材请求ID)
|
|
||||||
chargeItem.setProductTable(SERVICE_TABLE_DEVICE_REQUEST);// 产品所在表(耗材表)
|
|
||||||
chargeItem.setProductId(adviceDto.getAdviceDefinitionId());// 产品ID(耗材定义ID)
|
|
||||||
chargeItem.setAccountId(adviceDto.getAccountId()); // 关联账户ID(患者账户)
|
|
||||||
chargeItem.setConditionId(adviceDto.getConditionId()); // 诊断ID
|
|
||||||
chargeItem.setEncounterDiagnosisId(adviceDto.getEncounterDiagnosisId()); // 就诊诊断ID
|
|
||||||
|
|
||||||
// 费用核心属性:数量、单位、单价、总价
|
|
||||||
chargeItem.setQuantityValue(adviceDto.getQuantity()); // 数量(与耗材请求一致)
|
|
||||||
chargeItem.setQuantityUnit(adviceDto.getUnitCode()); // 单位(与耗材请求一致)
|
|
||||||
chargeItem.setUnitPrice(adviceDto.getUnitPrice()); // 单价(从DTO传入,已定价)
|
|
||||||
chargeItem.setTotalPrice(adviceDto.getTotalPrice()); // 总价(数量×单价,DTO已计算)
|
|
||||||
|
|
||||||
return chargeItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 划价入参校验
|
|
||||||
* 校验规则:1. 参数非空 2. 科室ID非空 3. 医嘱列表非空 4. 临时耗材库存校验
|
|
||||||
*
|
|
||||||
* @param regAdviceSaveParam 划价请求参数
|
|
||||||
* @return R<?> 校验结果(成功返回R.ok(),失败返回R.fail())
|
|
||||||
*/
|
|
||||||
private R<?> checkNurseBillingParam(RegAdviceSaveParam regAdviceSaveParam) {
|
|
||||||
// 1. 整体参数非空校验
|
|
||||||
=======
|
|
||||||
// 3. 提取核心业务参数:住院科室ID(优先入参,无则取登录用户所属科室)
|
// 3. 提取核心业务参数:住院科室ID(优先入参,无则取登录用户所属科室)
|
||||||
Long organizationId = regAdviceSaveParam.getOrganizationId() == null ? loginUser.getOrgId()
|
Long organizationId = regAdviceSaveParam.getOrganizationId() == null ? loginUser.getOrgId()
|
||||||
: regAdviceSaveParam.getOrganizationId();
|
: regAdviceSaveParam.getOrganizationId();
|
||||||
@@ -543,7 +192,8 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除住院划价记录(核心实现) 流程:参数校验 → 分类筛选医嘱 → 已收费状态校验 → 级联删除关联数据 → 返回结果 事务特性:所有删除操作原子化,任一环节失败整体回滚
|
* 删除住院划价记录(核心实现) 流程:参数校验 → 分类筛选医嘱 → 已收费状态校验 → 级联删除关联数据 → 返回结果
|
||||||
|
* 事务特性:所有删除操作原子化,任一环节失败整体回滚
|
||||||
*
|
*
|
||||||
* @return R<?> 删除结果响应
|
* @return R<?> 删除结果响应
|
||||||
*/
|
*/
|
||||||
@@ -588,18 +238,18 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
Integer exeStatus = inpatientAdviceParam.getExeStatus();
|
Integer exeStatus = inpatientAdviceParam.getExeStatus();
|
||||||
inpatientAdviceParam.setExeStatus(null);
|
inpatientAdviceParam.setExeStatus(null);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<InpatientAdviceParam> queryWrapper =
|
QueryWrapper<InpatientAdviceParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(inpatientAdviceParam, null, null, null);
|
= HisQueryUtils.buildQueryWrapper(inpatientAdviceParam, null, null, null);
|
||||||
|
|
||||||
// 手动拼接住院患者id条件
|
// 手动拼接住院患者id条件
|
||||||
if (encounterIds != null && !encounterIds.isEmpty()) {
|
if (encounterIds != null && !encounterIds.isEmpty()) {
|
||||||
List<Long> encounterIdList =
|
List<Long> encounterIdList
|
||||||
Arrays.stream(encounterIds.split(CommonConstants.Common.COMMA)).map(Long::parseLong).toList();
|
= Arrays.stream(encounterIds.split(CommonConstants.Common.COMMA)).map(Long::parseLong).toList();
|
||||||
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIdList);
|
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIdList);
|
||||||
}
|
}
|
||||||
// 患者医嘱分页列表
|
// 患者医嘱分页列表
|
||||||
Page<InpatientAdviceDto> inpatientAdvicePage =
|
Page<InpatientAdviceDto> inpatientAdvicePage
|
||||||
nurseBillingAppMapper.getInNurseBillingPage(new Page<>(pageNo, pageSize), queryWrapper,
|
= nurseBillingAppMapper.getInNurseBillingPage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
CommonConstants.TableName.WOR_DEVICE_REQUEST, CommonConstants.TableName.WOR_SERVICE_REQUEST,
|
CommonConstants.TableName.WOR_DEVICE_REQUEST, CommonConstants.TableName.WOR_SERVICE_REQUEST,
|
||||||
RequestStatus.DRAFT.getValue(), EncounterActivityStatus.ACTIVE.getValue(), LocationForm.BED.getValue(),
|
RequestStatus.DRAFT.getValue(), EncounterActivityStatus.ACTIVE.getValue(), LocationForm.BED.getValue(),
|
||||||
ParticipantType.ADMITTING_DOCTOR.getCode(), AccountType.PERSONAL_CASH_ACCOUNT.getCode(),
|
ParticipantType.ADMITTING_DOCTOR.getCode(), AccountType.PERSONAL_CASH_ACCOUNT.getCode(),
|
||||||
@@ -622,112 +272,47 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ======================== 入参校验方法 ========================
|
// ======================== 入参校验方法 ========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 划价入参校验(通用校验逻辑) 校验规则:1. 参数非空 2. 住院科室ID非空 3. 医嘱列表非空 4. 隐含库房校验(耗材类单独校验) 校验失败直接返回错误响应,不进入后续业务逻辑
|
* 划价入参校验(通用校验逻辑) 校验规则:1. 参数非空 2. 住院科室ID非空 3. 医嘱列表非空 4. 隐含库房校验(耗材类单独校验)
|
||||||
|
* 校验失败直接返回错误响应,不进入后续业务逻辑
|
||||||
*
|
*
|
||||||
* @param regAdviceSaveParam 划价请求参数体
|
* @param regAdviceSaveParam 划价请求参数体
|
||||||
* @return R<?> 校验结果:成功返回R.ok(),失败返回R.fail(错误信息)
|
* @return R<?> 校验结果:成功返回R.ok(),失败返回R.fail(错误信息)
|
||||||
*/
|
*/
|
||||||
private R<?> checkNurseBillingParam(RegAdviceSaveParam regAdviceSaveParam) {
|
private R<?> checkNurseBillingParam(RegAdviceSaveParam regAdviceSaveParam) {
|
||||||
// 1. 整体参数非空校验:请求体为null直接返回失败
|
// 1. 整体参数非空校验:请求体为null直接返回失败
|
||||||
>>>>>>> v1.3
|
|
||||||
if (regAdviceSaveParam == null) {
|
if (regAdviceSaveParam == null) {
|
||||||
return R.fail("划价请求失败:未获取到有效请求数据,请重新提交");
|
return R.fail("划价请求失败:未获取到有效请求数据,请重新提交");
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
// 2. 核心字段非空校验:患者住院科室ID
|
|
||||||
=======
|
|
||||||
// 2. 核心字段非空校验:患者住院科室ID不能为空
|
// 2. 核心字段非空校验:患者住院科室ID不能为空
|
||||||
>>>>>>> v1.3
|
|
||||||
if (regAdviceSaveParam.getOrganizationId() == null) {
|
if (regAdviceSaveParam.getOrganizationId() == null) {
|
||||||
return R.fail("划价请求失败:患者住院科室信息缺失,请确认患者科室后重试");
|
return R.fail("划价请求失败:患者住院科室信息缺失,请确认患者科室后重试");
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
// 3. 医嘱列表非空校验
|
|
||||||
=======
|
|
||||||
// 3. 医嘱列表非空校验:必须选择至少一个待划价项目
|
// 3. 医嘱列表非空校验:必须选择至少一个待划价项目
|
||||||
>>>>>>> v1.3
|
|
||||||
List<RegAdviceSaveDto> adviceList = regAdviceSaveParam.getRegAdviceSaveList();
|
List<RegAdviceSaveDto> adviceList = regAdviceSaveParam.getRegAdviceSaveList();
|
||||||
if (adviceList == null || adviceList.isEmpty()) {
|
if (adviceList == null || adviceList.isEmpty()) {
|
||||||
return R.fail("划价请求失败:未选择任何待划价项目,请添加医嘱后提交");
|
return R.fail("划价请求失败:未选择任何待划价项目,请添加医嘱后提交");
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
// 4. 临时耗材库存校验:仅校验非删除、非诊疗活动的临时医嘱
|
|
||||||
=======
|
|
||||||
// 4. 库存校验:临时注释(当前需求:划价不校验库存,实际发放时校验)
|
// 4. 库存校验:临时注释(当前需求:划价不校验库存,实际发放时校验)
|
||||||
// 若后续需要恢复库存校验,可解除以下注释
|
// 若后续需要恢复库存校验,可解除以下注释
|
||||||
/*
|
/*
|
||||||
>>>>>>> v1.3
|
|
||||||
List<AdviceSaveDto> needCheckInventoryList = adviceList.stream()
|
List<AdviceSaveDto> needCheckInventoryList = adviceList.stream()
|
||||||
.filter(advice -> TherapyTimeType.TEMPORARY.getValue().equals(advice.getTherapyEnum())
|
.filter(advice -> TherapyTimeType.TEMPORARY.getValue().equals(advice.getTherapyEnum())
|
||||||
&& !DbOpType.DELETE.getCode().equals(advice.getDbOpType())
|
&& !DbOpType.DELETE.getCode().equals(advice.getDbOpType())
|
||||||
&& !ItemType.ACTIVITY.getValue().equals(advice.getAdviceType()))
|
&& !ItemType.ACTIVITY.getValue().equals(advice.getAdviceType()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
// 调用工具类校验库存,返回非null则表示库存不足
|
|
||||||
String inventoryTip = adviceUtils.checkInventory(new ArrayList<>(needCheckInventoryList));
|
|
||||||
if (inventoryTip != null) {
|
|
||||||
// 库存提示已包含具体耗材名称和短缺数量,直接拼接操作建议
|
|
||||||
return R.fail("划价失败:" + inventoryTip + ",请联系库房确认库存或调整申请数量");
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
|
|
||||||
String inventoryTip = adviceUtils.checkInventory(new ArrayList<>(needCheckInventoryList));
|
String inventoryTip = adviceUtils.checkInventory(new ArrayList<>(needCheckInventoryList));
|
||||||
if (inventoryTip != null) {
|
if (inventoryTip != null) {
|
||||||
return R.fail("划价失败:" + inventoryTip + ",请联系库房确认库存或调整申请数量");
|
return R.fail("划价失败:" + inventoryTip + ",请联系库房确认库存或调整申请数量");
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 所有校验通过
|
// 所有校验通过
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
// ======================== 以下方法原代码未实现,保留接口方法签名 ========================
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public R<?> getBillingListByEncounterId() {
|
|
||||||
// 功能:根据就诊ID查询划价列表(待实现)
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public R<?> deleteInNurseBilling() {
|
|
||||||
// 功能:删除住院划价记录(待实现)
|
|
||||||
// List<AdviceSaveDto> deleteList
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public R<?> addOrderBilling() {
|
|
||||||
// 功能:新增订单划价(待实现)
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public R<?> deleteOrderBilling() {
|
|
||||||
// 功能:删除订单划价(待实现)
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public R<?> updateOrderBilling() {
|
|
||||||
// 功能:修改订单划价(待实现)
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public R<?> getOrderBillingByRequestId() {
|
|
||||||
// 功能:根据请求ID查询订单划价(待实现)
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
// ======================== 医嘱分类工具方法 ========================
|
// ======================== 医嘱分类工具方法 ========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -753,9 +338,9 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ======================== 耗材类划价处理 ========================
|
// ======================== 耗材类划价处理 ========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理耗材类医嘱划价(核心子流程) 流程:筛选临时耗材 → 校验发放库房 → 生成耗材请求 → 生成执行记录 → 生成耗材发放 → 生成费用项 特殊规则:临时耗材划价不校验库存、不预减库存(仅记录发放需求,实际发放时扣库)
|
* 处理耗材类医嘱划价(核心子流程) 流程:筛选临时耗材 → 校验发放库房 → 生成耗材请求 → 生成执行记录 → 生成耗材发放 → 生成费用项
|
||||||
|
* 特殊规则:临时耗材划价不校验库存、不预减库存(仅记录发放需求,实际发放时扣库)
|
||||||
*
|
*
|
||||||
* @param deviceAdviceList 耗材类医嘱列表(已筛选)
|
* @param deviceAdviceList 耗材类医嘱列表(已筛选)
|
||||||
* @param signCode 全局签发编码(关联同一批次划价)
|
* @param signCode 全局签发编码(关联同一批次划价)
|
||||||
@@ -801,9 +386,9 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ======================== 诊疗活动类划价处理 ========================
|
// ======================== 诊疗活动类划价处理 ========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理诊疗活动类医嘱划价(核心子流程) 流程:生成服务请求 → 生成执行记录 → 生成费用项 → 处理诊疗子项(如有) 特殊规则:诊疗活动可能包含子项(如套餐类活动),需递归处理子项划价
|
* 处理诊疗活动类医嘱划价(核心子流程) 流程:生成服务请求 → 生成执行记录 → 生成费用项 → 处理诊疗子项(如有)
|
||||||
|
* 特殊规则:诊疗活动可能包含子项(如套餐类活动),需递归处理子项划价
|
||||||
*
|
*
|
||||||
* @param activityAdviceList 诊疗活动类医嘱列表(已筛选)
|
* @param activityAdviceList 诊疗活动类医嘱列表(已筛选)
|
||||||
* @param signCode 全局签发编码(关联同一批次划价)
|
* @param signCode 全局签发编码(关联同一批次划价)
|
||||||
@@ -817,8 +402,8 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
// 循环处理每个诊疗活动医嘱
|
// 循环处理每个诊疗活动医嘱
|
||||||
for (AdviceSaveDto adviceDto : activityAdviceList) {
|
for (AdviceSaveDto adviceDto : activityAdviceList) {
|
||||||
// 1. 生成诊疗活动请求记录(WOR_SERVICE_REQUEST):状态设为激活,来源标记为护士划价
|
// 1. 生成诊疗活动请求记录(WOR_SERVICE_REQUEST):状态设为激活,来源标记为护士划价
|
||||||
ServiceRequest serviceRequest =
|
ServiceRequest serviceRequest
|
||||||
this.buildActivityRequest(adviceDto, signCode, organizationId, curDate, startTime, authoredTime);
|
= this.buildActivityRequest(adviceDto, signCode, organizationId, curDate, startTime, authoredTime);
|
||||||
|
|
||||||
// 2. 生成医嘱执行记录(CLIN_PROCEDURE):关联服务请求,记录执行状态
|
// 2. 生成医嘱执行记录(CLIN_PROCEDURE):关联服务请求,记录执行状态
|
||||||
Long procedureId = this.addProcedureRecord(serviceRequest.getEncounterId(), // 就诊ID
|
Long procedureId = this.addProcedureRecord(serviceRequest.getEncounterId(), // 就诊ID
|
||||||
@@ -842,7 +427,6 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ======================== 执行记录工具方法 ========================
|
// ======================== 执行记录工具方法 ========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成医嘱执行记录(通用方法,支持耗材/诊疗活动两种类型) 功能:调用执行记录服务,创建CLIN_PROCEDURE表记录,关联请求数据与执行信息
|
* 生成医嘱执行记录(通用方法,支持耗材/诊疗活动两种类型) 功能:调用执行记录服务,创建CLIN_PROCEDURE表记录,关联请求数据与执行信息
|
||||||
*
|
*
|
||||||
@@ -867,7 +451,6 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ======================== 实体构建工具方法(请求/费用项)========================
|
// ======================== 实体构建工具方法(请求/费用项)========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建耗材请求实体(DeviceRequest) 功能:将医嘱DTO参数映射为耗材请求实体,填充默认配置(状态、业务编号、来源等)
|
* 构建耗材请求实体(DeviceRequest) 功能:将医嘱DTO参数映射为耗材请求实体,填充默认配置(状态、业务编号、来源等)
|
||||||
*
|
*
|
||||||
@@ -1011,7 +594,8 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建费用项实体(ChargeItem) 功能:关联请求记录(耗材/诊疗)与费用信息,生成待结算的费用项(ADM_CHARGE_ITEM表) 通用性:支持耗材、诊疗活动两种类型的费用项构建
|
* 构建费用项实体(ChargeItem) 功能:关联请求记录(耗材/诊疗)与费用信息,生成待结算的费用项(ADM_CHARGE_ITEM表)
|
||||||
|
* 通用性:支持耗材、诊疗活动两种类型的费用项构建
|
||||||
*
|
*
|
||||||
* @param adviceDto 医嘱DTO(含费用相关参数:单价、总价等)
|
* @param adviceDto 医嘱DTO(含费用相关参数:单价、总价等)
|
||||||
* @param requestBusNo 关联请求的业务编号(耗材/服务请求的busNo)
|
* @param requestBusNo 关联请求的业务编号(耗材/服务请求的busNo)
|
||||||
@@ -1066,9 +650,9 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ======================== 耗材删除相关方法 ========================
|
// ======================== 耗材删除相关方法 ========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理耗材删除逻辑(级联删除关联数据) 核心规则:已收费的耗材项目不允许删除,未收费项目级联删除关联数据 级联删除顺序:耗材请求表 → 耗材发放表 → 费用项表
|
* 处理耗材删除逻辑(级联删除关联数据) 核心规则:已收费的耗材项目不允许删除,未收费项目级联删除关联数据 级联删除顺序:耗材请求表 → 耗材发放表
|
||||||
|
* → 费用项表
|
||||||
*
|
*
|
||||||
* @param requestIds 待删除的耗材医嘱列表(可为null)
|
* @param requestIds 待删除的耗材医嘱列表(可为null)
|
||||||
* @param serviceTable 关联服务表名(此处为耗材请求表)
|
* @param serviceTable 关联服务表名(此处为耗材请求表)
|
||||||
@@ -1123,15 +707,14 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 2. 校验是否存在已收费项(状态为BILLED)
|
// 2. 校验是否存在已收费项(状态为BILLED)
|
||||||
boolean hasBilledItem =
|
boolean hasBilledItem
|
||||||
chargeItemList.stream().anyMatch(ci -> ChargeItemStatus.BILLED.getValue().equals(ci.getStatusEnum()));
|
= chargeItemList.stream().anyMatch(ci -> ChargeItemStatus.BILLED.getValue().equals(ci.getStatusEnum()));
|
||||||
if (hasBilledItem) {
|
if (hasBilledItem) {
|
||||||
throw new ServiceException("删除失败:部分项目已完成收费(结算),不支持直接删除,请联系收费人员处理后重试");
|
throw new ServiceException("删除失败:部分项目已完成收费(结算),不支持直接删除,请联系收费人员处理后重试");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ======================== 未实现接口方法(保留签名,待扩展)========================
|
// ======================== 未实现接口方法(保留签名,待扩展)========================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增订单划价(待实现) 功能:针对订单类型的划价(如患者自主购买耗材/服务),生成对应的费用项
|
* 新增订单划价(待实现) 功能:针对订单类型的划价(如患者自主购买耗材/服务),生成对应的费用项
|
||||||
*
|
*
|
||||||
@@ -1180,8 +763,8 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
return R.fail("就诊ID不能为空");
|
return R.fail("就诊ID不能为空");
|
||||||
}
|
}
|
||||||
costDetailSearchParam.setEncounterIds(null);
|
costDetailSearchParam.setEncounterIds(null);
|
||||||
QueryWrapper<CostDetailSearchParam> queryWrapper =
|
QueryWrapper<CostDetailSearchParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(costDetailSearchParam, null, null, request);
|
= HisQueryUtils.buildQueryWrapper(costDetailSearchParam, null, null, request);
|
||||||
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIds);
|
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIds);
|
||||||
List<CostDetailDto> list = iChargeItemService.getCostDetails(queryWrapper, ChargeItemStatus.BILLABLE.getValue(),
|
List<CostDetailDto> list = iChargeItemService.getCostDetails(queryWrapper, ChargeItemStatus.BILLABLE.getValue(),
|
||||||
ChargeItemStatus.BILLED.getValue(), ChargeItemStatus.REFUNDED.getValue(),
|
ChargeItemStatus.BILLED.getValue(), ChargeItemStatus.REFUNDED.getValue(),
|
||||||
@@ -1208,16 +791,16 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
costDetailDto.setOrgName(organizationService.getById(orgId).getName());
|
costDetailDto.setOrgName(organizationService.getById(orgId).getName());
|
||||||
});
|
});
|
||||||
// 根据EncounterId分组
|
// 根据EncounterId分组
|
||||||
Map<Long, List<CostDetailDto>> map =
|
Map<Long, List<CostDetailDto>> map
|
||||||
dataList.stream().collect(Collectors.groupingBy(CostDetailDto::getEncounterId));
|
= dataList.stream().collect(Collectors.groupingBy(CostDetailDto::getEncounterId));
|
||||||
map.forEach((key, value) -> {
|
map.forEach((key, value) -> {
|
||||||
// 新加一条小计
|
// 新加一条小计
|
||||||
value.add(new CostDetailDto().setEncounterId(key).setChargeName("小计").setTotalPrice(
|
value.add(new CostDetailDto().setEncounterId(key).setChargeName("小计").setTotalPrice(
|
||||||
value.stream().map(CostDetailDto::getTotalPrice).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
value.stream().map(CostDetailDto::getTotalPrice).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
||||||
});
|
});
|
||||||
// 收集要导出的数据
|
// 收集要导出的数据
|
||||||
List<CostDetailExcelOutDto> excelOutList =
|
List<CostDetailExcelOutDto> excelOutList
|
||||||
map.entrySet().stream().map(entry -> new CostDetailExcelOutDto(entry.getKey(), entry.getValue(),
|
= map.entrySet().stream().map(entry -> new CostDetailExcelOutDto(entry.getKey(), entry.getValue(),
|
||||||
entry.getValue().get(0).getPatientName())).toList();
|
entry.getValue().get(0).getPatientName())).toList();
|
||||||
try {
|
try {
|
||||||
// 住院记账-费用明细 导出
|
// 住院记账-费用明细 导出
|
||||||
@@ -1229,5 +812,4 @@ public class NurseBillingAppService implements INurseBillingAppService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
@@ -8,26 +8,16 @@ import com.core.common.utils.AssignSeqUtil;
|
|||||||
import com.core.common.utils.DateUtils;
|
import com.core.common.utils.DateUtils;
|
||||||
import com.core.common.utils.SecurityUtils;
|
import com.core.common.utils.SecurityUtils;
|
||||||
import com.openhis.common.constant.CommonConstants;
|
import com.openhis.common.constant.CommonConstants;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.common.enums.AssignSeqEnum;
|
|
||||||
import com.openhis.common.enums.PublicationStatus;
|
|
||||||
import com.openhis.common.utils.HisQueryUtils;
|
|
||||||
=======
|
|
||||||
import com.openhis.common.enums.*;
|
import com.openhis.common.enums.*;
|
||||||
import com.openhis.common.utils.HisQueryUtils;
|
import com.openhis.common.utils.HisQueryUtils;
|
||||||
import com.openhis.web.common.appservice.impl.CommonServiceImpl;
|
import com.openhis.web.common.appservice.impl.CommonServiceImpl;
|
||||||
import com.openhis.web.common.dto.LocationDto;
|
import com.openhis.web.common.dto.LocationDto;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.web.common.dto.UnitDto;
|
import com.openhis.web.common.dto.UnitDto;
|
||||||
import com.openhis.web.inhospitalnursestation.appservice.IOrgDeviceStockTakeAppService;
|
import com.openhis.web.inhospitalnursestation.appservice.IOrgDeviceStockTakeAppService;
|
||||||
import com.openhis.web.inhospitalnursestation.dto.OrgDeviceDto;
|
import com.openhis.web.inhospitalnursestation.dto.OrgDeviceDto;
|
||||||
import com.openhis.web.inhospitalnursestation.dto.OrgDeviceSummaryFromDto;
|
import com.openhis.web.inhospitalnursestation.dto.OrgDeviceSummaryFromDto;
|
||||||
import com.openhis.web.inhospitalnursestation.dto.OrgDeviceSummaryParam;
|
import com.openhis.web.inhospitalnursestation.dto.OrgDeviceSummaryParam;
|
||||||
import com.openhis.web.inhospitalnursestation.mapper.OrgDeviceStockTakeAppMapper;
|
import com.openhis.web.inhospitalnursestation.mapper.OrgDeviceStockTakeAppMapper;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.workflow.domain.InventoryItem;
|
import com.openhis.workflow.domain.InventoryItem;
|
||||||
import com.openhis.workflow.mapper.InventoryItemMapper;
|
import com.openhis.workflow.mapper.InventoryItemMapper;
|
||||||
import com.openhis.workflow.service.IDeviceDispenseService;
|
import com.openhis.workflow.service.IDeviceDispenseService;
|
||||||
@@ -39,10 +29,6 @@ import org.springframework.stereotype.Service;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
<<<<<<< HEAD
|
|
||||||
import java.time.LocalDate;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -76,8 +62,6 @@ public class OrgDeviceStockTakeAppServiceImpl implements IOrgDeviceStockTakeAppS
|
|||||||
@Resource
|
@Resource
|
||||||
private InventoryItemMapper inventoryItemMapper;
|
private InventoryItemMapper inventoryItemMapper;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
@Resource
|
@Resource
|
||||||
private CommonServiceImpl commonService;
|
private CommonServiceImpl commonService;
|
||||||
|
|
||||||
@@ -92,16 +76,10 @@ public class OrgDeviceStockTakeAppServiceImpl implements IOrgDeviceStockTakeAppS
|
|||||||
return R.ok(inventoryPharmacyList);
|
return R.ok(inventoryPharmacyList);
|
||||||
}
|
}
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/**
|
/**
|
||||||
* 查询科室耗材汇总
|
* 查询科室耗材汇总
|
||||||
*
|
*
|
||||||
* @param orgDeviceSummaryParam 查询条件
|
* @param orgDeviceSummaryParam 查询条件
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param startTime 开始时间
|
|
||||||
* @param endTime 结束时间
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
@@ -109,115 +87,24 @@ public class OrgDeviceStockTakeAppServiceImpl implements IOrgDeviceStockTakeAppS
|
|||||||
* @return 科室耗材汇总单
|
* @return 科室耗材汇总单
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getOrgDeviceSummaryFromPage(OrgDeviceSummaryParam orgDeviceSummaryParam, String startTime,
|
|
||||||
String endTime, Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) {
|
|
||||||
=======
|
|
||||||
public R<?> getOrgDeviceSummaryFromPage(OrgDeviceSummaryParam orgDeviceSummaryParam, Integer pageNo,
|
public R<?> getOrgDeviceSummaryFromPage(OrgDeviceSummaryParam orgDeviceSummaryParam, Integer pageNo,
|
||||||
Integer pageSize, String searchKey, HttpServletRequest request) {
|
Integer pageSize, String searchKey, HttpServletRequest request) {
|
||||||
>>>>>>> v1.3
|
|
||||||
pageSize = Integer.MAX_VALUE;
|
pageSize = Integer.MAX_VALUE;
|
||||||
|
|
||||||
QueryWrapper<OrgDeviceDto> queryWrapper = HisQueryUtils.buildQueryWrapper(orgDeviceSummaryParam, searchKey,
|
QueryWrapper<OrgDeviceDto> queryWrapper = HisQueryUtils.buildQueryWrapper(orgDeviceSummaryParam, searchKey,
|
||||||
new HashSet<>(List.of(CommonConstants.FieldName.ItemName)), request);
|
new HashSet<>(List.of(CommonConstants.FieldName.ItemName)), request);
|
||||||
<<<<<<< HEAD
|
|
||||||
if (!(startTime == null || endTime == null)) {
|
|
||||||
queryWrapper.between(CommonConstants.FieldName.ApplyTime, LocalDate.parse(startTime),
|
|
||||||
LocalDate.parse(endTime));
|
|
||||||
}
|
|
||||||
|
|
||||||
Page<OrgDeviceDto> orgDeviceDtoPage =
|
Page<OrgDeviceDto> orgDeviceDtoPage
|
||||||
orgDeviceStockTakeAppMapper.selectOrgDeviceInfo(new Page<>(pageNo, pageSize), queryWrapper);
|
= orgDeviceStockTakeAppMapper.selectOrgDeviceInfo(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
|
|
||||||
List<OrgDeviceDto> orgDeviceList =
|
|
||||||
new ArrayList<>(orgDeviceDtoPage.getRecords()).stream().filter(x -> x.getDispenseId() != null).toList();
|
|
||||||
|
|
||||||
=======
|
|
||||||
|
|
||||||
Page<OrgDeviceDto> orgDeviceDtoPage =
|
|
||||||
orgDeviceStockTakeAppMapper.selectOrgDeviceInfo(new Page<>(pageNo, pageSize), queryWrapper,
|
|
||||||
EncounterClass.IMP.getValue(), RequestStatus.COMPLETED.getValue(),
|
EncounterClass.IMP.getValue(), RequestStatus.COMPLETED.getValue(),
|
||||||
DispenseStatus.PREPARATION.getValue(), ChargeItemStatus.BILLABLE.getValue());
|
DispenseStatus.PREPARATION.getValue(), ChargeItemStatus.BILLABLE.getValue());
|
||||||
|
|
||||||
List<OrgDeviceDto> orgDeviceList = new ArrayList<>(orgDeviceDtoPage.getRecords());
|
List<OrgDeviceDto> orgDeviceList = new ArrayList<>(orgDeviceDtoPage.getRecords());
|
||||||
>>>>>>> v1.3
|
|
||||||
// 根据项目id + 批次号 + 库房号分组
|
// 根据项目id + 批次号 + 库房号分组
|
||||||
Map<String, List<OrgDeviceDto>> orgDeviceGroupBy =
|
Map<String, List<OrgDeviceDto>> orgDeviceGroupBy
|
||||||
orgDeviceList.stream().collect(Collectors.groupingBy(item -> item.getItemId() + CommonConstants.Common.DASH
|
= orgDeviceList.stream().collect(Collectors.groupingBy(item -> item.getItemId() + CommonConstants.Common.DASH
|
||||||
+ item.getLotNumber() + CommonConstants.Common.DASH + item.getSourceLocationId()));
|
+ item.getLotNumber() + CommonConstants.Common.DASH + item.getSourceLocationId()));
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
ArrayList<OrgDeviceSummaryFromDto> orgDeviceSummaryFromDtoList = new ArrayList<>();
|
|
||||||
|
|
||||||
orgDeviceGroupBy.forEach((k, v) -> {
|
|
||||||
OrgDeviceSummaryFromDto orgDeviceSummaryFromDto = new OrgDeviceSummaryFromDto();
|
|
||||||
|
|
||||||
String itemId = k.split(CommonConstants.Common.DASH)[0];
|
|
||||||
String lotNumber = k.split(CommonConstants.Common.DASH)[1];
|
|
||||||
String sourceLocationId = k.split(CommonConstants.Common.DASH)[2];
|
|
||||||
|
|
||||||
OrgDeviceDto orgDeviceDtoFirst = v.get(0);
|
|
||||||
// 拆零比例
|
|
||||||
BigDecimal partPercent = orgDeviceDtoFirst.getPartPercent();
|
|
||||||
// 最小单位
|
|
||||||
String minUnitCode = orgDeviceDtoFirst.getMinUnitCode();
|
|
||||||
// 常规单位
|
|
||||||
String unitCode = orgDeviceDtoFirst.getMaxUnitCode();
|
|
||||||
if (minUnitCode == null || unitCode == null || partPercent == null) {
|
|
||||||
throw new ServiceException("耗材信息有误,请联系管理员");
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Long> dispenseIdList = new ArrayList<>();
|
|
||||||
|
|
||||||
// 最小单位数量
|
|
||||||
BigDecimal minQuantity = BigDecimal.ZERO;
|
|
||||||
for (OrgDeviceDto orgDeviceDto : v) {
|
|
||||||
BigDecimal quantity = orgDeviceDto.getQuantity();
|
|
||||||
if (unitCode.equals(orgDeviceDto.getUnitCode())) {
|
|
||||||
// 转换为小单位进行累加
|
|
||||||
quantity = orgDeviceDto.getQuantity().multiply(partPercent);
|
|
||||||
}
|
|
||||||
minQuantity = minQuantity.add(quantity);
|
|
||||||
dispenseIdList.add(orgDeviceDto.getDispenseId());
|
|
||||||
}
|
|
||||||
|
|
||||||
List<UnitDto> unitList = new ArrayList<>();
|
|
||||||
UnitDto unitDto = new UnitDto();
|
|
||||||
// 单位列表
|
|
||||||
unitDto.setUnitCode(orgDeviceDtoFirst.getUnitCode()).setMinUnitCode(minUnitCode);
|
|
||||||
unitList.add(unitDto);
|
|
||||||
|
|
||||||
orgDeviceSummaryFromDto.setItemId(Long.valueOf(itemId)) // 器材id
|
|
||||||
.setName(orgDeviceDtoFirst.getItemName()) // 器材名称
|
|
||||||
.setTotalVolume(orgDeviceDtoFirst.getTotalVolume()) // 规格
|
|
||||||
.setManufacturer(orgDeviceDtoFirst.getManufacturer()) // 厂家
|
|
||||||
.setLotNumber(lotNumber) // 批号
|
|
||||||
.setUnitPrice(orgDeviceDtoFirst.getUnitPrice()) // 单价
|
|
||||||
.setDispenseQuantity(minQuantity) // 发放数量
|
|
||||||
.setUnitCode(orgDeviceDtoFirst.getUnitCode()) // 单位
|
|
||||||
.setMinUnitCode(minUnitCode) // 最小单位
|
|
||||||
.setPartPercent(partPercent) // 拆零比
|
|
||||||
.setUnitCode_dictText(orgDeviceDtoFirst.getUnitCode_dictText()) // 单位文字
|
|
||||||
.setSourceLocationId(Long.valueOf(sourceLocationId)) // 发放地点
|
|
||||||
.setDispenseIdList(dispenseIdList) // 发放id列表
|
|
||||||
.setUnitList(unitList); // 单位列表
|
|
||||||
|
|
||||||
orgDeviceSummaryFromDtoList.add(orgDeviceSummaryFromDto);
|
|
||||||
});
|
|
||||||
|
|
||||||
List<Long> itemIdList = orgDeviceSummaryFromDtoList.stream().map(OrgDeviceSummaryFromDto::getItemId).toList();
|
|
||||||
List<InventoryItem> inventoryItemList = inventoryItemService.selectInventoryByItemIdList(itemIdList, 1);
|
|
||||||
for (InventoryItem inventoryItem : inventoryItemList)
|
|
||||||
for (OrgDeviceSummaryFromDto orgDeviceSummaryFromDto : orgDeviceSummaryFromDtoList)
|
|
||||||
if (orgDeviceSummaryFromDto.getItemId().equals(inventoryItem.getItemId())
|
|
||||||
&& orgDeviceSummaryFromDto.getLotNumber().equals(inventoryItem.getLotNumber())
|
|
||||||
&& orgDeviceSummaryFromDto.getSourceLocationId().equals(inventoryItem.getLocationId())) {
|
|
||||||
// 库存数量
|
|
||||||
orgDeviceSummaryFromDto.setQuantity(inventoryItem.getQuantity());
|
|
||||||
// 库存id
|
|
||||||
orgDeviceSummaryFromDto.setInventoryItemId(inventoryItem.getId());
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
List<OrgDeviceSummaryFromDto> orgDeviceSummaryFromDtoList = new ArrayList<>();
|
List<OrgDeviceSummaryFromDto> orgDeviceSummaryFromDtoList = new ArrayList<>();
|
||||||
|
|
||||||
// 对分组后的数量进行汇总
|
// 对分组后的数量进行汇总
|
||||||
@@ -291,8 +178,8 @@ public class OrgDeviceStockTakeAppServiceImpl implements IOrgDeviceStockTakeAppS
|
|||||||
if (!itemIdList.isEmpty()) {
|
if (!itemIdList.isEmpty()) {
|
||||||
List<InventoryItem> inventoryItemList = inventoryItemService.selectInventoryByItemIdList(itemIdList,
|
List<InventoryItem> inventoryItemList = inventoryItemService.selectInventoryByItemIdList(itemIdList,
|
||||||
SecurityUtils.getLoginUser().getTenantId());
|
SecurityUtils.getLoginUser().getTenantId());
|
||||||
for (InventoryItem inventoryItem : inventoryItemList)
|
for (InventoryItem inventoryItem : inventoryItemList) {
|
||||||
for (OrgDeviceSummaryFromDto orgDeviceSummaryFromDto : orgDeviceSummaryFromDtoList)
|
for (OrgDeviceSummaryFromDto orgDeviceSummaryFromDto : orgDeviceSummaryFromDtoList) {
|
||||||
if (orgDeviceSummaryFromDto.getItemId().equals(inventoryItem.getItemId())
|
if (orgDeviceSummaryFromDto.getItemId().equals(inventoryItem.getItemId())
|
||||||
&& orgDeviceSummaryFromDto.getLotNumber().equals(inventoryItem.getLotNumber())
|
&& orgDeviceSummaryFromDto.getLotNumber().equals(inventoryItem.getLotNumber())
|
||||||
&& orgDeviceSummaryFromDto.getSourceLocationId().equals(inventoryItem.getLocationId())) {
|
&& orgDeviceSummaryFromDto.getSourceLocationId().equals(inventoryItem.getLocationId())) {
|
||||||
@@ -302,7 +189,8 @@ public class OrgDeviceStockTakeAppServiceImpl implements IOrgDeviceStockTakeAppS
|
|||||||
orgDeviceSummaryFromDto.setInventoryItemId(inventoryItem.getId());
|
orgDeviceSummaryFromDto.setInventoryItemId(inventoryItem.getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return R.ok(orgDeviceSummaryFromDtoList);
|
return R.ok(orgDeviceSummaryFromDtoList);
|
||||||
}
|
}
|
||||||
@@ -313,77 +201,11 @@ public class OrgDeviceStockTakeAppServiceImpl implements IOrgDeviceStockTakeAppS
|
|||||||
* @return 科室耗材汇总单
|
* @return 科室耗材汇总单
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> orgDeviceSummary(OrgDeviceSummaryParam orgDeviceSummaryParam) {
|
|
||||||
=======
|
|
||||||
public R<?> orgDeviceSummary(List<OrgDeviceSummaryParam> orgDeviceSummaryParamList) {
|
public R<?> orgDeviceSummary(List<OrgDeviceSummaryParam> orgDeviceSummaryParamList) {
|
||||||
>>>>>>> v1.3
|
|
||||||
// 申请时间
|
// 申请时间
|
||||||
Date now = DateUtils.getNowDate();
|
Date now = DateUtils.getNowDate();
|
||||||
// 申请人
|
// 申请人
|
||||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||||
<<<<<<< HEAD
|
|
||||||
// 汇总单据号
|
|
||||||
String busNo = assignSeqUtil.getSeqByDay(AssignSeqEnum.DEVICE_SUMMARY_NO.getPrefix(), 4);
|
|
||||||
|
|
||||||
// 数量
|
|
||||||
BigDecimal stockTakeQuantity = orgDeviceSummaryParam.getStockTakeQuantity();
|
|
||||||
// 使用单位
|
|
||||||
String useUnitCode = orgDeviceSummaryParam.getUseUnitCode();
|
|
||||||
// 最小单位
|
|
||||||
String minUnitCode = orgDeviceSummaryParam.getMinUnitCode();
|
|
||||||
// 拆零比
|
|
||||||
BigDecimal partPercent = orgDeviceSummaryParam.getPartPercent();
|
|
||||||
// 发放id列表
|
|
||||||
List<Long> dispenseIdList = orgDeviceSummaryParam.getDispenseIdList();
|
|
||||||
|
|
||||||
if (orgDeviceSummaryParam.getInventoryItemId() == null) {
|
|
||||||
return R.ok("未匹配到库存");
|
|
||||||
}
|
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
|
||||||
// 获取库存信息
|
|
||||||
InventoryItem inventoryItem = inventoryItemMapper.selectById(orgDeviceSummaryParam.getInventoryItemId());
|
|
||||||
if (inventoryItem != null) {
|
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(inventoryItem.getInventoryStatusEnum())) {
|
|
||||||
// 库存数量判定
|
|
||||||
if (useUnitCode.equals(inventoryItem.getUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-请求数量
|
|
||||||
BigDecimal quantity = inventoryItem.getQuantity().subtract(stockTakeQuantity);
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail("当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setQuantity(quantity);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-拆零数量(拆零比×请求数量)
|
|
||||||
BigDecimal quantity = inventoryItem.getQuantity().subtract(partPercent.multiply(stockTakeQuantity));
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail("当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setQuantity(quantity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
inventoryItemList.add(inventoryItem);
|
|
||||||
}
|
|
||||||
// 库存更新
|
|
||||||
inventoryItemService.updateBatchById(inventoryItemList);
|
|
||||||
// 添加汇总单
|
|
||||||
Long supplyRequestId = supplyRequestService.createDeviceSummarySupplyRequest(
|
|
||||||
orgDeviceSummaryParam.getItemId(), orgDeviceSummaryParam.getSourceLocationId(),
|
|
||||||
orgDeviceSummaryParam.getLotNumber(), stockTakeQuantity, minUnitCode, practitionerId, now, busNo);
|
|
||||||
supplyDeliveryService.createDeviceSummarySupplyDelivery(orgDeviceSummaryParam.getItemId(),
|
|
||||||
orgDeviceSummaryParam.getLotNumber(), stockTakeQuantity, minUnitCode, supplyRequestId);
|
|
||||||
|
|
||||||
// 耗材发放状态更新
|
|
||||||
deviceDispenseService.updateDispenseStatusSummarized(dispenseIdList, busNo);
|
|
||||||
return R.ok("盘点成功");
|
|
||||||
}
|
|
||||||
return R.fail("未找到对应库存数据");
|
|
||||||
=======
|
|
||||||
|
|
||||||
for (OrgDeviceSummaryParam orgDeviceSummaryParam : orgDeviceSummaryParamList) {
|
for (OrgDeviceSummaryParam orgDeviceSummaryParam : orgDeviceSummaryParamList) {
|
||||||
// 汇总单据号
|
// 汇总单据号
|
||||||
@@ -424,8 +246,8 @@ public class OrgDeviceStockTakeAppServiceImpl implements IOrgDeviceStockTakeAppS
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-拆零数量(拆零比×请求数量)
|
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-拆零数量(拆零比×请求数量)
|
||||||
BigDecimal quantity =
|
BigDecimal quantity
|
||||||
inventoryItem.getQuantity().subtract(partPercent.multiply(stockTakeQuantity));
|
= inventoryItem.getQuantity().subtract(partPercent.multiply(stockTakeQuantity));
|
||||||
// 库存数量判定
|
// 库存数量判定
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
||||||
// 库存数量不足
|
// 库存数量不足
|
||||||
@@ -452,7 +274,6 @@ public class OrgDeviceStockTakeAppServiceImpl implements IOrgDeviceStockTakeAppS
|
|||||||
return R.fail("未查询到" + orgDeviceSummaryParam.getName() + "对应库存数据");
|
return R.fail("未查询到" + orgDeviceSummaryParam.getName() + "对应库存数据");
|
||||||
}
|
}
|
||||||
return R.ok("盘点成功");
|
return R.ok("盘点成功");
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,15 +88,6 @@ public class ATDManageController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 住院患者待处理信息列表
|
* 住院患者待处理信息列表
|
||||||
<<<<<<< HEAD
|
|
||||||
*
|
|
||||||
* @param encounterId 住院id
|
|
||||||
* @return 待处理信息列表
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/patient-pending")
|
|
||||||
public R<?> getInPatientPendingList(Long encounterId) {
|
|
||||||
return atdManageAppService.getInPatientPendingList(encounterId);
|
|
||||||
=======
|
|
||||||
*
|
*
|
||||||
* @param inpatientAdviceParam 查询条件
|
* @param inpatientAdviceParam 查询条件
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
@@ -108,7 +99,6 @@ public class ATDManageController {
|
|||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||||
return atdManageAppService.getInPatientPendingList(inpatientAdviceParam, pageNo, pageSize);
|
return atdManageAppService.getInPatientPendingList(inpatientAdviceParam, pageNo, pageSize);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -125,11 +115,7 @@ public class ATDManageController {
|
|||||||
/**
|
/**
|
||||||
* 转科
|
* 转科
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param encounterId 住院id
|
|
||||||
=======
|
|
||||||
* @param encounterId 住院患者id
|
* @param encounterId 住院患者id
|
||||||
>>>>>>> v1.3
|
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@PutMapping(value = "/transfer-department")
|
@PutMapping(value = "/transfer-department")
|
||||||
@@ -140,19 +126,13 @@ public class ATDManageController {
|
|||||||
/**
|
/**
|
||||||
* 出院
|
* 出院
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param encounterId 住院id
|
|
||||||
=======
|
|
||||||
* @param encounterId 住院患者id
|
* @param encounterId 住院患者id
|
||||||
>>>>>>> v1.3
|
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@PutMapping(value = "/hospital-discharge")
|
@PutMapping(value = "/hospital-discharge")
|
||||||
public R<?> hospitalDischarge(Long encounterId) {
|
public R<?> hospitalDischarge(Long encounterId) {
|
||||||
return atdManageAppService.hospitalDischarge(encounterId);
|
return atdManageAppService.hospitalDischarge(encounterId);
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 清床
|
* 清床
|
||||||
@@ -170,7 +150,8 @@ public class ATDManageController {
|
|||||||
*
|
*
|
||||||
* @param encounterId 诊断id
|
* @param encounterId 诊断id
|
||||||
* @return EncounterAccountDto 诊断账户金额
|
* @return EncounterAccountDto 诊断账户金额
|
||||||
**/
|
*
|
||||||
|
*/
|
||||||
@GetMapping(value = "/get-amount")
|
@GetMapping(value = "/get-amount")
|
||||||
public R<?> getAmount(Long encounterId) {
|
public R<?> getAmount(Long encounterId) {
|
||||||
return atdManageAppService.getAmount(encounterId);
|
return atdManageAppService.getAmount(encounterId);
|
||||||
@@ -181,10 +162,10 @@ public class ATDManageController {
|
|||||||
*
|
*
|
||||||
* @param encounterId 诊断id
|
* @param encounterId 诊断id
|
||||||
* @return PendingMedicationDto 待配/退药
|
* @return PendingMedicationDto 待配/退药
|
||||||
**/
|
*
|
||||||
|
*/
|
||||||
@GetMapping(value = "/get-dr-medication")
|
@GetMapping(value = "/get-dr-medication")
|
||||||
public R<?> getPendingMedication(Long encounterId) {
|
public R<?> getPendingMedication(Long encounterId) {
|
||||||
return atdManageAppService.getPendingMedication(encounterId);
|
return atdManageAppService.getPendingMedication(encounterId);
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,26 +31,6 @@ public class MedicineSummaryController {
|
|||||||
public IMedicineSummaryAppService medicineSummaryAppService;
|
public IMedicineSummaryAppService medicineSummaryAppService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 查询发药单信息
|
|
||||||
*
|
|
||||||
* @param dispenseFormSearchParam 查询条件
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求
|
|
||||||
* @return 发药单信息
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/dispensing-form")
|
|
||||||
public R<?> getMedicineDispenseFormPage(DispenseFormSearchParam dispenseFormSearchParam,
|
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
|
||||||
return medicineSummaryAppService.getMedicineDispenseFormPage(dispenseFormSearchParam, pageNo, pageSize,
|
|
||||||
request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询药品汇总单
|
|
||||||
=======
|
|
||||||
* 药品汇总单初始化
|
* 药品汇总单初始化
|
||||||
*
|
*
|
||||||
* @return 初始化信息
|
* @return 初始化信息
|
||||||
@@ -62,32 +42,10 @@ public class MedicineSummaryController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询发药单信息
|
* 查询发药单信息
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param dispenseFormSearchParam 查询条件
|
* @param dispenseFormSearchParam 查询条件
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param request 请求
|
|
||||||
* @return 药品汇总单
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/summary-form")
|
|
||||||
public R<?> getMedicineSummaryFormPage(DispenseFormSearchParam dispenseFormSearchParam,
|
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, String searchKey,
|
|
||||||
HttpServletRequest request) {
|
|
||||||
return medicineSummaryAppService.getMedicineSummaryFormPage(dispenseFormSearchParam, pageNo, pageSize,
|
|
||||||
searchKey, request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询药品汇总单详情
|
|
||||||
*
|
|
||||||
* @param summaryNo 汇总单号
|
|
||||||
* @return 药品汇总单详情
|
|
||||||
*/
|
|
||||||
=======
|
|
||||||
* @param request 请求
|
* @param request 请求
|
||||||
* @return 发药单信息
|
* @return 发药单信息
|
||||||
*/
|
*/
|
||||||
@@ -124,7 +82,6 @@ public class MedicineSummaryController {
|
|||||||
* @param summaryNo 汇总单号
|
* @param summaryNo 汇总单号
|
||||||
* @return 药品汇总单详情
|
* @return 药品汇总单详情
|
||||||
*/
|
*/
|
||||||
>>>>>>> v1.3
|
|
||||||
@GetMapping(value = "/summary-form-detail")
|
@GetMapping(value = "/summary-form-detail")
|
||||||
public R<?> getMedicineSummaryFormDetail(String summaryNo) {
|
public R<?> getMedicineSummaryFormDetail(String summaryNo) {
|
||||||
return medicineSummaryAppService.getMedicineSummaryFormDetail(summaryNo);
|
return medicineSummaryAppService.getMedicineSummaryFormDetail(summaryNo);
|
||||||
|
|||||||
@@ -1,26 +1,5 @@
|
|||||||
package com.openhis.web.inhospitalnursestation.controller;
|
package com.openhis.web.inhospitalnursestation.controller;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
import com.openhis.web.regdoctorstation.dto.RegAdviceSaveParam;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author whm
|
|
||||||
* @date 2025/11/10 16:00
|
|
||||||
* @description 住院护士 患者划价、医嘱计费
|
|
||||||
*/
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/inhospitalnursestation/innursebilling")
|
|
||||||
@Slf4j
|
|
||||||
@AllArgsConstructor
|
|
||||||
public class NurseBillingController {
|
|
||||||
// TODO: Implement InNurseBillingController
|
|
||||||
=======
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -44,70 +23,28 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
/**
|
/**
|
||||||
* 住院护士 患者划价、医嘱计费
|
* 住院护士 患者划价、医嘱计费
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/inhospitalnursestation/nursebilling")
|
@RequestMapping("/inhospitalnursestation/nursebilling")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class NurseBillingController {
|
public class NurseBillingController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private INurseBillingAppService iNurseBillingAppService;
|
private INurseBillingAppService iNurseBillingAppService;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/*
|
/*
|
||||||
* 新增住院护士划价
|
* 新增住院护士划价
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> addInNurseBilling(RegAdviceSaveParam regAdviceSaveParam) {
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* 住院护士 划价列表 根据护士encounterId查询
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public R<?> getBillingListByEncounterId() {
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
@PostMapping("/add-billing")
|
@PostMapping("/add-billing")
|
||||||
public R<?> addInNurseBilling(@RequestBody RegAdviceSaveParam regAdviceSaveParam) {
|
public R<?> addInNurseBilling(@RequestBody RegAdviceSaveParam regAdviceSaveParam) {
|
||||||
return iNurseBillingAppService.addInNurseBilling(regAdviceSaveParam);
|
return iNurseBillingAppService.addInNurseBilling(regAdviceSaveParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/*
|
/*
|
||||||
* 住院护士撤销划价
|
* 住院护士撤销划价
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> deleteInNurseBilling() {
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* 医嘱计费添加 诊疗 耗材
|
|
||||||
*/
|
|
||||||
public R<?> addOrderBilling() {
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* 医嘱计费删除 诊疗 耗材
|
|
||||||
*/
|
|
||||||
public R<?> deleteOrderBilling() {
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* 医嘱计费修改 诊疗 耗材
|
|
||||||
*/
|
|
||||||
public R<?> updateOrderBilling() {
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
根据医嘱id查询已计费的 耗材列表
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public R<?> getOrderBillingByRequestId() {
|
|
||||||
=======
|
|
||||||
@PostMapping("/del-billing")
|
@PostMapping("/del-billing")
|
||||||
public R<?> deleteInNurseBilling(@RequestBody List<AdviceBatchOpParam> paramList) {
|
public R<?> deleteInNurseBilling(@RequestBody List<AdviceBatchOpParam> paramList) {
|
||||||
return iNurseBillingAppService.deleteInNurseBilling(paramList);
|
return iNurseBillingAppService.deleteInNurseBilling(paramList);
|
||||||
@@ -174,7 +111,6 @@ public class NurseBillingController {
|
|||||||
* 医嘱计费修改 诊疗 耗材
|
* 医嘱计费修改 诊疗 耗材
|
||||||
*/
|
*/
|
||||||
public R<?> updateOrderBilling() {
|
public R<?> updateOrderBilling() {
|
||||||
>>>>>>> v1.3
|
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,5 @@
|
|||||||
package com.openhis.web.inhospitalnursestation.controller;
|
package com.openhis.web.inhospitalnursestation.controller;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
import com.openhis.web.inhospitalnursestation.appservice.IOrgDeviceStockTakeAppService;
|
|
||||||
import com.openhis.web.inhospitalnursestation.dto.OrgDeviceSummaryParam;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
=======
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
@@ -24,7 +13,6 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 科室耗材盘点
|
* 科室耗材盘点
|
||||||
@@ -33,11 +21,7 @@ import java.util.List;
|
|||||||
* @date 2025/11/05
|
* @date 2025/11/05
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
<<<<<<< HEAD
|
|
||||||
@RequestMapping("/nurse-station/orgdevice-stocktake")
|
|
||||||
=======
|
|
||||||
@RequestMapping("/nurse-station/org-device-stockTake")
|
@RequestMapping("/nurse-station/org-device-stockTake")
|
||||||
>>>>>>> v1.3
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class OrgDeviceStockTakeController {
|
public class OrgDeviceStockTakeController {
|
||||||
@@ -46,13 +30,6 @@ public class OrgDeviceStockTakeController {
|
|||||||
private IOrgDeviceStockTakeAppService orgDeviceStockTakeService;
|
private IOrgDeviceStockTakeAppService orgDeviceStockTakeService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 查询科室耗材汇总
|
|
||||||
*
|
|
||||||
* @param orgDeviceSummaryParam 查询条件
|
|
||||||
* @param startTime 开始时间
|
|
||||||
* @param endTime 结束时间
|
|
||||||
=======
|
|
||||||
* 页面初始化
|
* 页面初始化
|
||||||
*
|
*
|
||||||
* @return 初始化信息
|
* @return 初始化信息
|
||||||
@@ -66,7 +43,6 @@ public class OrgDeviceStockTakeController {
|
|||||||
* 查询科室耗材汇总
|
* 查询科室耗材汇总
|
||||||
*
|
*
|
||||||
* @param orgDeviceSummaryParam 查询条件
|
* @param orgDeviceSummaryParam 查询条件
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
@@ -74,21 +50,12 @@ public class OrgDeviceStockTakeController {
|
|||||||
* @return 科室耗材汇总单
|
* @return 科室耗材汇总单
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/summary-from")
|
@GetMapping(value = "/summary-from")
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getOrgDeviceSummaryFromPage(OrgDeviceSummaryParam orgDeviceSummaryParam, String startTime,
|
|
||||||
String endTime, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, String searchKey,
|
|
||||||
HttpServletRequest request) {
|
|
||||||
return orgDeviceStockTakeService.getOrgDeviceSummaryFromPage(orgDeviceSummaryParam, startTime, endTime, pageNo,
|
|
||||||
pageSize, searchKey, request);
|
|
||||||
=======
|
|
||||||
public R<?> getOrgDeviceSummaryFromPage(OrgDeviceSummaryParam orgDeviceSummaryParam,
|
public R<?> getOrgDeviceSummaryFromPage(OrgDeviceSummaryParam orgDeviceSummaryParam,
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, String searchKey,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, String searchKey,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
return orgDeviceStockTakeService.getOrgDeviceSummaryFromPage(orgDeviceSummaryParam, pageNo, pageSize, searchKey,
|
return orgDeviceStockTakeService.getOrgDeviceSummaryFromPage(orgDeviceSummaryParam, pageNo, pageSize, searchKey,
|
||||||
request);
|
request);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -96,15 +63,9 @@ public class OrgDeviceStockTakeController {
|
|||||||
*
|
*
|
||||||
* @return 科室耗材汇总单
|
* @return 科室耗材汇总单
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@PutMapping(value = "/orgdevice-summary")
|
|
||||||
public R<?> orgDeviceSummary(OrgDeviceSummaryParam orgDeviceSummaryParam) {
|
|
||||||
return orgDeviceStockTakeService.orgDeviceSummary(orgDeviceSummaryParam);
|
|
||||||
=======
|
|
||||||
@PutMapping(value = "/org-device-summary")
|
@PutMapping(value = "/org-device-summary")
|
||||||
public R<?> orgDeviceSummary(@RequestBody List<OrgDeviceSummaryParam> orgDeviceSummaryParamList) {
|
public R<?> orgDeviceSummary(@RequestBody List<OrgDeviceSummaryParam> orgDeviceSummaryParamList) {
|
||||||
return orgDeviceStockTakeService.orgDeviceSummary(orgDeviceSummaryParamList);
|
return orgDeviceStockTakeService.orgDeviceSummary(orgDeviceSummaryParamList);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,38 +21,52 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class AdviceExecuteDetailParam {
|
public class AdviceExecuteDetailParam {
|
||||||
|
|
||||||
/** 医嘱请求id */
|
/**
|
||||||
|
* 医嘱请求id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long requestId;
|
private Long requestId;
|
||||||
|
|
||||||
/** 就诊Id */
|
/**
|
||||||
|
* 就诊Id
|
||||||
|
*/
|
||||||
private Long encounterId;
|
private Long encounterId;
|
||||||
|
|
||||||
/** 患者Id */
|
/**
|
||||||
|
* 患者Id
|
||||||
|
*/
|
||||||
private Long patientId;
|
private Long patientId;
|
||||||
|
|
||||||
/** 账号id */
|
/**
|
||||||
|
* 账号id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long accountId;
|
private Long accountId;
|
||||||
|
|
||||||
/** 执行id */
|
/**
|
||||||
|
* 执行id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long procedureId;
|
private Long procedureId;
|
||||||
|
|
||||||
/** 医嘱类型 */
|
/**
|
||||||
|
* 医嘱类型
|
||||||
|
*/
|
||||||
private Integer therapyEnum;
|
private Integer therapyEnum;
|
||||||
|
|
||||||
/** 医嘱请求所在表 */
|
/**
|
||||||
|
* 医嘱请求所在表
|
||||||
|
*/
|
||||||
private String adviceTable;
|
private String adviceTable;
|
||||||
|
|
||||||
/** 组号 */
|
/**
|
||||||
|
* 组号
|
||||||
|
*/
|
||||||
private Long groupId;
|
private Long groupId;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
/**
|
||||||
/** 执行时间点集合 */
|
* 预计执行时间点集合
|
||||||
=======
|
*/
|
||||||
/** 预计执行时间点集合 */
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private List<String> executeTimes;
|
private List<String> executeTimes;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,33 +22,46 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class DispenseFormSearchParam implements Serializable {
|
public class DispenseFormSearchParam implements Serializable {
|
||||||
|
|
||||||
/** 汇总状态 */
|
/**
|
||||||
|
* 汇总状态
|
||||||
|
*/
|
||||||
private Integer SummaryStatus;
|
private Integer SummaryStatus;
|
||||||
|
|
||||||
/** 中药标识 */
|
/**
|
||||||
|
* 中药标识
|
||||||
|
*/
|
||||||
private Integer tcmFlag;
|
private Integer tcmFlag;
|
||||||
|
|
||||||
/** 医嘱类型 */
|
/**
|
||||||
|
* 医嘱类型
|
||||||
|
*/
|
||||||
private Integer therapyEnum;
|
private Integer therapyEnum;
|
||||||
|
|
||||||
/** 就诊ids */
|
/**
|
||||||
|
* 就诊ids
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private String encounterIds;
|
private String encounterIds;
|
||||||
|
|
||||||
/** 发放药房id */
|
/**
|
||||||
|
* 发放药房id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long locationId;
|
private Long locationId;
|
||||||
|
|
||||||
/** 执行时间 */
|
/**
|
||||||
|
* 执行时间
|
||||||
|
*/
|
||||||
private Date exeTime;
|
private Date exeTime;
|
||||||
|
|
||||||
/** 汇总人id */
|
/**
|
||||||
|
* 汇总人id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long applicantId;
|
private Long applicantId;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/** 发放状态 */
|
/**
|
||||||
|
* 发放状态
|
||||||
|
*/
|
||||||
private Integer statusEnum;
|
private Integer statusEnum;
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,9 @@ public class MedicineSummaryInfoDto {
|
|||||||
*/
|
*/
|
||||||
private String totalVolume;
|
private String totalVolume;
|
||||||
|
|
||||||
/** 拆零比 */
|
/**
|
||||||
|
* 拆零比
|
||||||
|
*/
|
||||||
private BigDecimal partPercent;
|
private BigDecimal partPercent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,8 +58,6 @@ public class MedicineSummaryInfoDto {
|
|||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
private String unitCode_dictText;
|
private String unitCode_dictText;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 药品类型
|
* 药品类型
|
||||||
@@ -70,5 +70,4 @@ public class MedicineSummaryInfoDto {
|
|||||||
* 生产厂家
|
* 生产厂家
|
||||||
*/
|
*/
|
||||||
private String manufacturerText;
|
private String manufacturerText;
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,57 +18,67 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class OrgDeviceSummaryParam {
|
public class OrgDeviceSummaryParam {
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
/**
|
||||||
/** 发放地点 */
|
* 发放地点
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long sourceLocationId;
|
private Long sourceLocationId;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/** 项目id */
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long itemId;
|
private Long itemId;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
/**
|
||||||
=======
|
* 器材名称
|
||||||
/** 器材名称 */
|
*/
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
/**
|
||||||
/** 库存id */
|
* 库存id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long inventoryItemId;
|
private Long inventoryItemId;
|
||||||
|
|
||||||
/** 发放数量 */
|
/**
|
||||||
|
* 发放数量
|
||||||
|
*/
|
||||||
private BigDecimal dispenseQuantity;
|
private BigDecimal dispenseQuantity;
|
||||||
|
|
||||||
/** 盈亏数量 */
|
/**
|
||||||
|
* 盈亏数量
|
||||||
|
*/
|
||||||
private BigDecimal stockTakeQuantity;
|
private BigDecimal stockTakeQuantity;
|
||||||
|
|
||||||
/** 批号 */
|
/**
|
||||||
|
* 批号
|
||||||
|
*/
|
||||||
private String lotNumber;
|
private String lotNumber;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
/**
|
||||||
/** 发放地点 */
|
* 使用单位
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
*/
|
||||||
private Long sourceLocationId;
|
|
||||||
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/** 使用单位 */
|
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String useUnitCode;
|
private String useUnitCode;
|
||||||
private String useUnitCode_dictText;
|
private String useUnitCode_dictText;
|
||||||
|
|
||||||
/** 最小单位 */
|
/**
|
||||||
|
* 最小单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String minUnitCode;
|
private String minUnitCode;
|
||||||
private String minUnitCode_dictText;
|
private String minUnitCode_dictText;
|
||||||
|
|
||||||
/** 拆零比 */
|
/**
|
||||||
|
* 拆零比
|
||||||
|
*/
|
||||||
private BigDecimal partPercent;
|
private BigDecimal partPercent;
|
||||||
|
|
||||||
/** 发放id列表 */
|
/**
|
||||||
|
* 发放id列表
|
||||||
|
*/
|
||||||
private List<Long> dispenseIdList;
|
private List<Long> dispenseIdList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,21 +48,13 @@ public interface MedicineSummaryAppMapper {
|
|||||||
* @param page 分页信息
|
* @param page 分页信息
|
||||||
* @param queryWrapper 查询条件
|
* @param queryWrapper 查询条件
|
||||||
* @param completed 发药状态:已完成
|
* @param completed 发药状态:已完成
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param inProgress 发药状态:待发药
|
|
||||||
=======
|
|
||||||
* @param preparation 发药状态:待配药
|
* @param preparation 发药状态:待配药
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param summaryDispense 单据类型:汇总发药
|
* @param summaryDispense 单据类型:汇总发药
|
||||||
* @return 汇总单列表
|
* @return 汇总单列表
|
||||||
*/
|
*/
|
||||||
Page<MedicineSummaryFormDto> selectMedicineSummaryFormPage(@Param("page") Page<MedicineSummaryFormDto> page,
|
Page<MedicineSummaryFormDto> selectMedicineSummaryFormPage(@Param("page") Page<MedicineSummaryFormDto> page,
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<DispenseFormSearchParam> queryWrapper,
|
@Param(Constants.WRAPPER) QueryWrapper<DispenseFormSearchParam> queryWrapper,
|
||||||
<<<<<<< HEAD
|
|
||||||
@Param("completed") Integer completed, @Param("inProgress") Integer inProgress,
|
|
||||||
=======
|
|
||||||
@Param("completed") Integer completed, @Param("preparation") Integer preparation,
|
@Param("completed") Integer completed, @Param("preparation") Integer preparation,
|
||||||
>>>>>>> v1.3
|
|
||||||
@Param("summaryDispense") Integer summaryDispense);
|
@Param("summaryDispense") Integer summaryDispense);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,11 +1,5 @@
|
|||||||
package com.openhis.web.inhospitalnursestation.mapper;
|
package com.openhis.web.inhospitalnursestation.mapper;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import org.springframework.stereotype.Repository;
|
|
||||||
|
|
||||||
@Repository
|
|
||||||
public interface NurseBillingAppMapper {
|
|
||||||
=======
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@@ -52,5 +46,4 @@ public interface NurseBillingAppMapper {
|
|||||||
@Param("billable") Integer billable, @Param("billed") Integer billed, @Param("refunded") Integer refunded,
|
@Param("billable") Integer billable, @Param("billed") Integer billed, @Param("refunded") Integer refunded,
|
||||||
@Param("imp") Integer imp, @Param("generateSourceEnum") Integer generateSourceEnum,
|
@Param("imp") Integer imp, @Param("generateSourceEnum") Integer generateSourceEnum,
|
||||||
@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
|
@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,11 +18,7 @@ public interface OrgDeviceStockTakeAppMapper {
|
|||||||
* @return 科室耗材信息
|
* @return 科室耗材信息
|
||||||
*/
|
*/
|
||||||
Page<OrgDeviceDto> selectOrgDeviceInfo(@Param("page") Page<OrgDeviceDto> page,
|
Page<OrgDeviceDto> selectOrgDeviceInfo(@Param("page") Page<OrgDeviceDto> page,
|
||||||
<<<<<<< HEAD
|
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<OrgDeviceDto> queryWrapper);
|
|
||||||
=======
|
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<OrgDeviceDto> queryWrapper, @Param("imp") Integer imp,
|
@Param(Constants.WRAPPER) QueryWrapper<OrgDeviceDto> queryWrapper, @Param("imp") Integer imp,
|
||||||
@Param("requestStatus") Integer requestStatus, @Param("dispenseStatus") Integer dispenseStatus,
|
@Param("requestStatus") Integer requestStatus, @Param("dispenseStatus") Integer dispenseStatus,
|
||||||
@Param("chargeItemStatus") Integer chargeItemStatus);
|
@Param("chargeItemStatus") Integer chargeItemStatus);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,8 +100,6 @@ public interface ILossReportFormAppService {
|
|||||||
*/
|
*/
|
||||||
R<?> getMonthlySettlementDetail(Long locationId, String startTime, String endTime, Integer pageNo,
|
R<?> getMonthlySettlementDetail(Long locationId, String startTime, String endTime, Integer pageNo,
|
||||||
Integer pageSize);
|
Integer pageSize);
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报损单据明细导出
|
* 报损单据明细导出
|
||||||
@@ -118,5 +116,4 @@ public interface ILossReportFormAppService {
|
|||||||
* @return 报损单据详情(DTO : LossReceiptDetailDto)
|
* @return 报损单据详情(DTO : LossReceiptDetailDto)
|
||||||
*/
|
*/
|
||||||
R<List<LossReceiptDetailDto>> getLossDetail(String busNo);
|
R<List<LossReceiptDetailDto>> getLossDetail(String busNo);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,6 @@ package com.openhis.web.inventorymanage.appservice;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
import com.openhis.web.inventorymanage.dto.ProductDetailSearchParam;
|
|
||||||
|
|
||||||
=======
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.openhis.web.inventorymanage.dto.ProductDetailPageDto;
|
import com.openhis.web.inventorymanage.dto.ProductDetailPageDto;
|
||||||
@@ -15,7 +10,6 @@ import com.openhis.web.inventorymanage.dto.ProductDetailSearchParam;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/**
|
/**
|
||||||
* 库存商品明细 appService
|
* 库存商品明细 appService
|
||||||
*
|
*
|
||||||
@@ -41,30 +35,6 @@ public interface IProductDetailAppService {
|
|||||||
* @param request 请求数据
|
* @param request 请求数据
|
||||||
* @return 库存商品明细分页列表
|
* @return 库存商品明细分页列表
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
R<?> getProductDetailPage(ProductDetailSearchParam productDetailSearchParam, Integer pageNo, Integer pageSize,
|
|
||||||
String searchKey, HttpServletRequest request);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 操作:停供
|
|
||||||
*
|
|
||||||
* @param inventoryId 库存项目管理ID
|
|
||||||
* @return 操作结果
|
|
||||||
*/
|
|
||||||
R<?> stopSupplyById(Long inventoryId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 操作:取消停供
|
|
||||||
*
|
|
||||||
* @param inventoryId 库存项目管理ID
|
|
||||||
* @return 操作结果
|
|
||||||
*/
|
|
||||||
R<?> cancelSupplyById(Long inventoryId);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 库存明细表导出
|
|
||||||
=======
|
|
||||||
R<Page<ProductDetailPageDto>> getProductDetailPage(ProductDetailSearchParam productDetailSearchParam,
|
R<Page<ProductDetailPageDto>> getProductDetailPage(ProductDetailSearchParam productDetailSearchParam,
|
||||||
Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
||||||
|
|
||||||
@@ -73,22 +43,12 @@ public interface IProductDetailAppService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询库存备份商品明细分页列表
|
* 查询库存备份商品明细分页列表
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
* @param request 请求数据
|
* @param request 请求数据
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param response 响应数据
|
|
||||||
*/
|
|
||||||
void makeExcelFile(ProductDetailSearchParam productDetailSearchParam, Integer pageNo, Integer pageSize,
|
|
||||||
String searchKey, HttpServletRequest request, HttpServletResponse response);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询库存商品明细统计数据
|
|
||||||
=======
|
|
||||||
* @return 库存备份商品明细
|
* @return 库存备份商品明细
|
||||||
*/
|
*/
|
||||||
R<Page<ProductDetailPageDto>> getProductDetailBackupPage(ProductDetailSearchParam productDetailSearchParam,
|
R<Page<ProductDetailPageDto>> getProductDetailBackupPage(ProductDetailSearchParam productDetailSearchParam,
|
||||||
@@ -96,16 +56,10 @@ public interface IProductDetailAppService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询库存商品备份明细统计数据
|
* 查询库存商品备份明细统计数据
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
* @param request 请求数据
|
* @param request 请求数据
|
||||||
<<<<<<< HEAD
|
|
||||||
* @return 库存商品明细统计数据
|
|
||||||
*/
|
|
||||||
R<?> getProductDetailStatistics(ProductDetailSearchParam productDetailSearchParam, String searchKey, HttpServletRequest request);
|
|
||||||
=======
|
|
||||||
* @return 库存商品备份明细统计数据
|
* @return 库存商品备份明细统计数据
|
||||||
*/
|
*/
|
||||||
R<?> getProductDetailBackupStatistics(ProductDetailSearchParam productDetailSearchParam, String searchKey,
|
R<?> getProductDetailBackupStatistics(ProductDetailSearchParam productDetailSearchParam, String searchKey,
|
||||||
@@ -139,5 +93,4 @@ public interface IProductDetailAppService {
|
|||||||
HttpServletResponse response);
|
HttpServletResponse response);
|
||||||
|
|
||||||
void exportExcel(ProductDetailSearchParam productDetailSearchParam, Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request, HttpServletResponse response);
|
void exportExcel(ProductDetailSearchParam productDetailSearchParam, Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request, HttpServletResponse response);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,11 +25,7 @@ import com.openhis.administration.service.IChargeItemDefDetailService;
|
|||||||
import com.openhis.administration.service.IChargeItemDefinitionService;
|
import com.openhis.administration.service.IChargeItemDefinitionService;
|
||||||
import com.openhis.common.constant.CommonConstants;
|
import com.openhis.common.constant.CommonConstants;
|
||||||
import com.openhis.common.enums.ConditionCode;
|
import com.openhis.common.enums.ConditionCode;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.common.enums.DelFlag;
|
|
||||||
=======
|
|
||||||
import com.core.common.enums.DelFlag;
|
import com.core.common.enums.DelFlag;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.common.enums.SupplyStatus;
|
import com.openhis.common.enums.SupplyStatus;
|
||||||
import com.openhis.common.enums.SupplyType;
|
import com.openhis.common.enums.SupplyType;
|
||||||
import com.openhis.common.utils.EnumUtils;
|
import com.openhis.common.utils.EnumUtils;
|
||||||
@@ -49,9 +45,11 @@ import com.openhis.web.inventorymanage.mapper.InventoryAdjustPriceMapper;
|
|||||||
* @Author raymond
|
* @Author raymond
|
||||||
* @Date 2025/10/23 14:57
|
* @Date 2025/10/23 14:57
|
||||||
* @Version 1.0
|
* @Version 1.0
|
||||||
**/
|
*
|
||||||
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class IInventoryAdjustPriceServiceImpl implements IInventoryAdjustPriceService {
|
public class IInventoryAdjustPriceServiceImpl implements IInventoryAdjustPriceService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IChargeItemDefinitionService chargeItemDefinitionService;
|
private IChargeItemDefinitionService chargeItemDefinitionService;
|
||||||
@Resource
|
@Resource
|
||||||
@@ -70,8 +68,8 @@ public class IInventoryAdjustPriceServiceImpl implements IInventoryAdjustPriceSe
|
|||||||
HashSet<String> searchFields = new HashSet<>();
|
HashSet<String> searchFields = new HashSet<>();
|
||||||
searchFields.add(CommonConstants.FieldName.SupplyBusNo);
|
searchFields.add(CommonConstants.FieldName.SupplyBusNo);
|
||||||
|
|
||||||
QueryWrapper<ReceiptApprovalSearchParam> queryWrapper =
|
QueryWrapper<ReceiptApprovalSearchParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(adjustPriceManagerSearchParam, searchKey, searchFields, request);
|
= HisQueryUtils.buildQueryWrapper(adjustPriceManagerSearchParam, searchKey, searchFields, request);
|
||||||
// 查询单据分页列表
|
// 查询单据分页列表
|
||||||
Page<ChangePricePageDto> receiptPage = inventoryAdjustPriceMapper.searchPageByExamine(
|
Page<ChangePricePageDto> receiptPage = inventoryAdjustPriceMapper.searchPageByExamine(
|
||||||
new Page<>(pageNo, pageSize), queryWrapper, SupplyStatus.APPROVAL.getValue(), SupplyStatus.AGREE.getValue(),
|
new Page<>(pageNo, pageSize), queryWrapper, SupplyStatus.APPROVAL.getValue(), SupplyStatus.AGREE.getValue(),
|
||||||
@@ -89,8 +87,8 @@ public class IInventoryAdjustPriceServiceImpl implements IInventoryAdjustPriceSe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R<?> updateExamineByRejected(String busNo) {
|
public R<?> updateExamineByRejected(String busNo) {
|
||||||
List<ChangePriceRecord> changePriceRecordList =
|
List<ChangePriceRecord> changePriceRecordList
|
||||||
this.changePriceRecordService.searchChangePriceDataForBusNo(busNo);
|
= this.changePriceRecordService.searchChangePriceDataForBusNo(busNo);
|
||||||
if (changePriceRecordList.isEmpty()) {
|
if (changePriceRecordList.isEmpty()) {
|
||||||
return R.fail();
|
return R.fail();
|
||||||
}
|
}
|
||||||
@@ -119,8 +117,8 @@ public class IInventoryAdjustPriceServiceImpl implements IInventoryAdjustPriceSe
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public R<?> updateExamineByApproved(String busNo) {
|
public R<?> updateExamineByApproved(String busNo) {
|
||||||
List<ChangePriceRecord> changePriceRecordList =
|
List<ChangePriceRecord> changePriceRecordList
|
||||||
this.changePriceRecordService.searchChangePriceDataForBusNo(busNo);
|
= this.changePriceRecordService.searchChangePriceDataForBusNo(busNo);
|
||||||
if (changePriceRecordList.isEmpty()) {
|
if (changePriceRecordList.isEmpty()) {
|
||||||
return R.fail();
|
return R.fail();
|
||||||
}
|
}
|
||||||
@@ -141,10 +139,11 @@ public class IInventoryAdjustPriceServiceImpl implements IInventoryAdjustPriceSe
|
|||||||
* @Author raymond
|
* @Author raymond
|
||||||
* @Date 22:16 2025/10/18
|
* @Date 22:16 2025/10/18
|
||||||
* @return com.core.common.core.domain.R<?>
|
* @return com.core.common.core.domain.R<?>
|
||||||
**/
|
*
|
||||||
|
*/
|
||||||
public void executeBusiness(String busNo) {
|
public void executeBusiness(String busNo) {
|
||||||
List<ChangePriceDataDto> changePriceDataDtoList =
|
List<ChangePriceDataDto> changePriceDataDtoList
|
||||||
this.changePriceRecordService.searchChangePriceRecordDataByBusNo(busNo, SupplyStatus.APPROVAL.getValue());
|
= this.changePriceRecordService.searchChangePriceRecordDataByBusNo(busNo, SupplyStatus.APPROVAL.getValue());
|
||||||
// 零售价
|
// 零售价
|
||||||
List<ChargeItemDefDetail> itemDefDetailRetailList = new LinkedList<>();
|
List<ChargeItemDefDetail> itemDefDetailRetailList = new LinkedList<>();
|
||||||
// 进货价
|
// 进货价
|
||||||
@@ -157,12 +156,12 @@ public class IInventoryAdjustPriceServiceImpl implements IInventoryAdjustPriceSe
|
|||||||
chargeItemDefinition.setPrice(data.getNewRetailPrice());
|
chargeItemDefinition.setPrice(data.getNewRetailPrice());
|
||||||
this.chargeItemDefinitionService.updateById(chargeItemDefinition);
|
this.chargeItemDefinitionService.updateById(chargeItemDefinition);
|
||||||
// 零售价
|
// 零售价
|
||||||
List<ChargeItemDefDetail> defDetailRetailList =
|
List<ChargeItemDefDetail> defDetailRetailList
|
||||||
this.chargeItemDefDetailService.searchChargeItemDefDetailByIds(chargeItemDefinition.getId(),
|
= this.chargeItemDefDetailService.searchChargeItemDefDetailByIds(chargeItemDefinition.getId(),
|
||||||
ConditionCode.LOT_NUMBER_PRICE.getCode(), data.getLotNumber());
|
ConditionCode.LOT_NUMBER_PRICE.getCode(), data.getLotNumber());
|
||||||
// 进货价
|
// 进货价
|
||||||
List<ChargeItemDefDetail> defDetailBuyingList =
|
List<ChargeItemDefDetail> defDetailBuyingList
|
||||||
this.chargeItemDefDetailService.searchChargeItemDefDetailByIds(chargeItemDefinition.getId(),
|
= this.chargeItemDefDetailService.searchChargeItemDefDetailByIds(chargeItemDefinition.getId(),
|
||||||
ConditionCode.LOT_NUMBER_COST.getCode(), data.getLotNumber());
|
ConditionCode.LOT_NUMBER_COST.getCode(), data.getLotNumber());
|
||||||
// 采购价
|
// 采购价
|
||||||
List<ChargeItemDefDetail> purchasePriceList = this.chargeItemDefDetailService
|
List<ChargeItemDefDetail> purchasePriceList = this.chargeItemDefDetailService
|
||||||
|
|||||||
@@ -10,12 +10,8 @@ import javax.annotation.Resource;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.utils.poi.ExcelUtil;
|
|
||||||
=======
|
|
||||||
import com.core.common.utils.*;
|
import com.core.common.utils.*;
|
||||||
import com.openhis.web.inventorymanage.dto.ProductTransferPageDto;
|
import com.openhis.web.inventorymanage.dto.ProductTransferPageDto;
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@@ -25,14 +21,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.core.common.core.domain.model.LoginUser;
|
import com.core.common.core.domain.model.LoginUser;
|
||||||
import com.core.common.enums.TenantOptionDict;
|
import com.core.common.enums.TenantOptionDict;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.utils.DateUtils;
|
|
||||||
import com.core.common.utils.MessageUtils;
|
|
||||||
import com.core.common.utils.SecurityUtils;
|
|
||||||
=======
|
|
||||||
import com.core.common.exception.NonCaptureException;
|
import com.core.common.exception.NonCaptureException;
|
||||||
import com.core.common.utils.poi.ExcelUtil;
|
import com.core.common.utils.poi.ExcelUtil;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.core.web.util.TenantOptionUtil;
|
import com.core.web.util.TenantOptionUtil;
|
||||||
import com.openhis.administration.domain.ChargeItemDefDetail;
|
import com.openhis.administration.domain.ChargeItemDefDetail;
|
||||||
import com.openhis.administration.service.IChargeItemDefDetailService;
|
import com.openhis.administration.service.IChargeItemDefDetailService;
|
||||||
@@ -47,10 +37,6 @@ import com.openhis.web.inventorymanage.dto.ProductDetailInitDto;
|
|||||||
import com.openhis.web.inventorymanage.dto.ProductDetailPageDto;
|
import com.openhis.web.inventorymanage.dto.ProductDetailPageDto;
|
||||||
import com.openhis.web.inventorymanage.dto.ProductDetailSearchParam;
|
import com.openhis.web.inventorymanage.dto.ProductDetailSearchParam;
|
||||||
import com.openhis.web.inventorymanage.mapper.ProductDetailAppMapper;
|
import com.openhis.web.inventorymanage.mapper.ProductDetailAppMapper;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.web.reportmanage.utils.ExcelFillerUtil;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.workflow.domain.InventoryItem;
|
import com.openhis.workflow.domain.InventoryItem;
|
||||||
import com.openhis.workflow.mapper.InventoryItemMapper;
|
import com.openhis.workflow.mapper.InventoryItemMapper;
|
||||||
|
|
||||||
@@ -97,19 +83,12 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
* @return 库存商品明细分页列表
|
* @return 库存商品明细分页列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getProductDetailPage(ProductDetailSearchParam productDetailSearchParam, Integer pageNo,
|
|
||||||
Integer pageSize, String searchKey, HttpServletRequest request) {
|
|
||||||
// 项目类型
|
|
||||||
Integer categoryCode = productDetailSearchParam.getCategoryCode();
|
|
||||||
=======
|
|
||||||
public R<Page<ProductDetailPageDto>> getProductDetailPage(ProductDetailSearchParam productDetailSearchParam,
|
public R<Page<ProductDetailPageDto>> getProductDetailPage(ProductDetailSearchParam productDetailSearchParam,
|
||||||
Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) {
|
Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) {
|
||||||
// 药品类型
|
// 药品类型
|
||||||
List<String> medCategoryCodes = productDetailSearchParam.getMedCategoryCodes();
|
List<String> medCategoryCodes = productDetailSearchParam.getMedCategoryCodes();
|
||||||
// 药品类型
|
// 药品类型
|
||||||
List<String> devCategoryCodes = productDetailSearchParam.getDevCategoryCodes();
|
List<String> devCategoryCodes = productDetailSearchParam.getDevCategoryCodes();
|
||||||
>>>>>>> v1.3
|
|
||||||
// 库存是否为零
|
// 库存是否为零
|
||||||
Integer zeroFlag = productDetailSearchParam.getZeroFlag();
|
Integer zeroFlag = productDetailSearchParam.getZeroFlag();
|
||||||
// 过期天数
|
// 过期天数
|
||||||
@@ -118,38 +97,19 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
List<Long> locationIds = productDetailSearchParam.getLocationIds();
|
List<Long> locationIds = productDetailSearchParam.getLocationIds();
|
||||||
// 供应商
|
// 供应商
|
||||||
List<Long> supplierIds = productDetailSearchParam.getSupplierIds();
|
List<Long> supplierIds = productDetailSearchParam.getSupplierIds();
|
||||||
<<<<<<< HEAD
|
|
||||||
productDetailSearchParam.setCategoryCode(null).setZeroFlag(null).setRemainingDays(null).setLocationIds(null)
|
|
||||||
.setSupplierIds(null);
|
|
||||||
=======
|
|
||||||
productDetailSearchParam.setZeroFlag(null).setRemainingDays(null).setLocationIds(null).setSupplierIds(null)
|
productDetailSearchParam.setZeroFlag(null).setRemainingDays(null).setLocationIds(null).setSupplierIds(null)
|
||||||
.setMedCategoryCodes(null).setDevCategoryCodes(null);
|
.setMedCategoryCodes(null).setDevCategoryCodes(null);
|
||||||
>>>>>>> v1.3
|
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<ProductDetailSearchParam> queryWrapper = HisQueryUtils.buildQueryWrapper(
|
QueryWrapper<ProductDetailSearchParam> queryWrapper = HisQueryUtils.buildQueryWrapper(
|
||||||
productDetailSearchParam, searchKey, new HashSet<>(Arrays.asList(CommonConstants.FieldName.ItemName,
|
productDetailSearchParam, searchKey, new HashSet<>(Arrays.asList(CommonConstants.FieldName.ItemName,
|
||||||
CommonConstants.FieldName.BusNo, CommonConstants.FieldName.PyStr, CommonConstants.FieldName.WbStr)),
|
CommonConstants.FieldName.BusNo, CommonConstants.FieldName.PyStr, CommonConstants.FieldName.WbStr)),
|
||||||
request);
|
request);
|
||||||
// 根据不同分类拼接查询条件
|
// 根据不同分类拼接查询条件
|
||||||
<<<<<<< HEAD
|
|
||||||
if (categoryCode != null) {
|
|
||||||
if (categoryCode.equals(ItemCategoryCode.CHINESE_PATENT_DRUG.getValue())
|
|
||||||
|| categoryCode.equals(ItemCategoryCode.WESTERN_MEDICINE.getValue())
|
|
||||||
|| categoryCode.equals(ItemCategoryCode.EXTERNALLY_PROCURED_DRUGS.getValue())
|
|
||||||
|| categoryCode.equals(ItemCategoryCode.CHINESE_HERBAL_MEDICINE.getValue())) {
|
|
||||||
queryWrapper.eq(CommonConstants.FieldName.ItemTable,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION);
|
|
||||||
queryWrapper.eq(CommonConstants.FieldName.MedCategoryCode, categoryCode.toString());
|
|
||||||
} else if (categoryCode.equals(ItemCategoryCode.DEVICE.getValue())) {
|
|
||||||
queryWrapper.eq(CommonConstants.FieldName.ItemTable, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
if (medCategoryCodes != null && !medCategoryCodes.isEmpty()) {
|
if (medCategoryCodes != null && !medCategoryCodes.isEmpty()) {
|
||||||
queryWrapper.in(CommonConstants.FieldName.MedCategoryCode, medCategoryCodes);
|
queryWrapper.in(CommonConstants.FieldName.MedCategoryCode, medCategoryCodes);
|
||||||
}
|
}
|
||||||
if (devCategoryCodes != null && !devCategoryCodes.isEmpty()) {
|
if (devCategoryCodes != null && !devCategoryCodes.isEmpty()) {
|
||||||
queryWrapper.in(CommonConstants.FieldName.DevCategoryCode, devCategoryCodes);
|
queryWrapper.in(CommonConstants.FieldName.DevCategoryCode, devCategoryCodes);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
// 库存是否为零
|
// 库存是否为零
|
||||||
if (zeroFlag != null) {
|
if (zeroFlag != null) {
|
||||||
@@ -183,29 +143,25 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
// 批次售价需查询定价子表
|
// 批次售价需查询定价子表
|
||||||
if (OrderPricingSource.BATCH_SELLING_PRICE.getCode().equals(orderPricingSource)) {
|
if (OrderPricingSource.BATCH_SELLING_PRICE.getCode().equals(orderPricingSource)) {
|
||||||
// 收集所有定价ID
|
// 收集所有定价ID
|
||||||
List<Long> chargeItemDefIdList =
|
List<Long> chargeItemDefIdList
|
||||||
productDetailList.stream().map(ProductDetailPageDto::getChargeItemDefId).filter(Objects::nonNull)
|
= productDetailList.stream().map(ProductDetailPageDto::getChargeItemDefId).filter(Objects::nonNull)
|
||||||
.distinct().collect(Collectors.toList());
|
.distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
// 查询批次售价信息
|
// 查询批次售价信息
|
||||||
if (!chargeItemDefIdList.isEmpty()) {
|
if (!chargeItemDefIdList.isEmpty()) {
|
||||||
List<ChargeItemDefDetail> lotNumberPriceList =
|
List<ChargeItemDefDetail> lotNumberPriceList
|
||||||
chargeItemDefDetailService.getLotNumberPriceByDefIds(chargeItemDefIdList);
|
= chargeItemDefDetailService.getLotNumberPriceByDefIds(chargeItemDefIdList);
|
||||||
if (lotNumberPriceList != null && !lotNumberPriceList.isEmpty()) {
|
if (lotNumberPriceList != null && !lotNumberPriceList.isEmpty()) {
|
||||||
// 创建批次号到售价的映射
|
// 创建批次号到售价的映射
|
||||||
Map<String, BigDecimal> lotPriceMap =
|
Map<String, BigDecimal> lotPriceMap
|
||||||
lotNumberPriceList.stream().collect(Collectors.toMap(ChargeItemDefDetail::getConditionValue,
|
= lotNumberPriceList.stream().collect(Collectors.toMap(ChargeItemDefDetail::getConditionValue,
|
||||||
ChargeItemDefDetail::getAmount, (existing, replacement) -> existing)); // 处理重复键的情况
|
ChargeItemDefDetail::getAmount, (existing, replacement) -> existing)); // 处理重复键的情况
|
||||||
|
|
||||||
// 更新原始列表中的售价
|
// 更新原始列表中的售价
|
||||||
for (ProductDetailPageDto productDetail : productDetailList) {
|
for (ProductDetailPageDto productDetail : productDetailList) {
|
||||||
BigDecimal price = lotPriceMap.get(productDetail.getLotNumber());
|
BigDecimal price = lotPriceMap.get(productDetail.getLotNumber());
|
||||||
if (price != null) {
|
if (price != null) {
|
||||||
<<<<<<< HEAD
|
|
||||||
productDetail.setTotalSalePrice(price);
|
|
||||||
=======
|
|
||||||
productDetail.setSalePrice(price);
|
productDetail.setSalePrice(price);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -221,8 +177,8 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
EnumUtils.getInfoByValue(PublicationStatus.class, productDetailPageDto.getInventoryStatusEnum()));
|
EnumUtils.getInfoByValue(PublicationStatus.class, productDetailPageDto.getInventoryStatusEnum()));
|
||||||
|
|
||||||
// 计算包装单位数量
|
// 计算包装单位数量
|
||||||
BigDecimal[] results =
|
BigDecimal[] results
|
||||||
productDetailPageDto.getQuantity().divideAndRemainder(productDetailPageDto.getPartPercent());
|
= productDetailPageDto.getQuantity().divideAndRemainder(productDetailPageDto.getPartPercent());
|
||||||
// 整数
|
// 整数
|
||||||
productDetailPageDto.setNumber(results[0]);
|
productDetailPageDto.setNumber(results[0]);
|
||||||
// 余数
|
// 余数
|
||||||
@@ -250,8 +206,6 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
* 查询库存备份商品明细分页列表
|
* 查询库存备份商品明细分页列表
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
@@ -311,8 +265,8 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
queryWrapper.le(CommonConstants.FieldName.RemainingDays, remainingDays);
|
queryWrapper.le(CommonConstants.FieldName.RemainingDays, remainingDays);
|
||||||
}
|
}
|
||||||
// 查询库存商品备份明细分页列表
|
// 查询库存商品备份明细分页列表
|
||||||
Page<ProductDetailPageDto> productDetailsBackupPage =
|
Page<ProductDetailPageDto> productDetailsBackupPage
|
||||||
productDetailsMapper.selectProductDetailsBackupPage(new Page<>(pageNo, pageSize), queryWrapper);
|
= productDetailsMapper.selectProductDetailsBackupPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||||
productDetailsBackupPage.getRecords().forEach(e -> {
|
productDetailsBackupPage.getRecords().forEach(e -> {
|
||||||
// 医保等级
|
// 医保等级
|
||||||
e.setChrgitmLv_enumText(EnumUtils.getInfoByValue(YbChrgitmLv.class, e.getChrgitmLv()));
|
e.setChrgitmLv_enumText(EnumUtils.getInfoByValue(YbChrgitmLv.class, e.getChrgitmLv()));
|
||||||
@@ -324,7 +278,6 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
>>>>>>> v1.3
|
|
||||||
* 查询库存商品明细统计数据
|
* 查询库存商品明细统计数据
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
@@ -336,17 +289,10 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
public R<?> getProductDetailStatistics(ProductDetailSearchParam productDetailSearchParam, String searchKey,
|
public R<?> getProductDetailStatistics(ProductDetailSearchParam productDetailSearchParam, String searchKey,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
// 查询库存商品明细分页列表
|
// 查询库存商品明细分页列表
|
||||||
<<<<<<< HEAD
|
Page<ProductDetailPageDto> productDetailPage
|
||||||
R<?> result = this.getProductDetailPage(productDetailSearchParam, 1, 30000, searchKey, request);
|
= this.getProductDetailPage(productDetailSearchParam, 1, 30000, searchKey, request).getData();
|
||||||
ProductDetailPageDto productDetail = new ProductDetailPageDto();
|
|
||||||
if (result != null && result.getData() != null) {
|
|
||||||
Page<ProductDetailPageDto> productDetailPage = (Page<ProductDetailPageDto>)result.getData();
|
|
||||||
=======
|
|
||||||
Page<ProductDetailPageDto> productDetailPage =
|
|
||||||
this.getProductDetailPage(productDetailSearchParam, 1, 30000, searchKey, request).getData();
|
|
||||||
ProductDetailPageDto productDetail = new ProductDetailPageDto();
|
ProductDetailPageDto productDetail = new ProductDetailPageDto();
|
||||||
if (productDetailPage != null && productDetailPage.getTotal() > 0) {
|
if (productDetailPage != null && productDetailPage.getTotal() > 0) {
|
||||||
>>>>>>> v1.3
|
|
||||||
List<ProductDetailPageDto> productDetailList = productDetailPage.getRecords();
|
List<ProductDetailPageDto> productDetailList = productDetailPage.getRecords();
|
||||||
// 统计库房总金额
|
// 统计库房总金额
|
||||||
productDetail
|
productDetail
|
||||||
@@ -359,15 +305,6 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 操作:停供
|
|
||||||
*
|
|
||||||
* @param inventoryId 库存项目管理ID
|
|
||||||
* @return 操作结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> stopSupplyById(Long inventoryId) {
|
|
||||||
=======
|
|
||||||
* 查询库存商品备份明细统计数据
|
* 查询库存商品备份明细统计数据
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
@@ -379,8 +316,8 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
public R<?> getProductDetailBackupStatistics(ProductDetailSearchParam productDetailSearchParam, String searchKey,
|
public R<?> getProductDetailBackupStatistics(ProductDetailSearchParam productDetailSearchParam, String searchKey,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
// 查询库存商品备份明细分页列表
|
// 查询库存商品备份明细分页列表
|
||||||
Page<ProductDetailPageDto> productDetailPage =
|
Page<ProductDetailPageDto> productDetailPage
|
||||||
this.getProductDetailBackupPage(productDetailSearchParam, 1, 30000, searchKey, request).getData();
|
= this.getProductDetailBackupPage(productDetailSearchParam, 1, 30000, searchKey, request).getData();
|
||||||
ProductDetailPageDto productDetailBackup = new ProductDetailPageDto();
|
ProductDetailPageDto productDetailBackup = new ProductDetailPageDto();
|
||||||
if (productDetailPage != null && productDetailPage.getTotal() > 0) {
|
if (productDetailPage != null && productDetailPage.getTotal() > 0) {
|
||||||
List<ProductDetailPageDto> productDetailBackupList = productDetailPage.getRecords();
|
List<ProductDetailPageDto> productDetailBackupList = productDetailPage.getRecords();
|
||||||
@@ -403,7 +340,6 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<?> stopSupplyById(List<Long> inventoryIdList) {
|
public R<?> stopSupplyById(List<Long> inventoryIdList) {
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 获取当前时间
|
// 获取当前时间
|
||||||
Date now = DateUtils.getNowDate();
|
Date now = DateUtils.getNowDate();
|
||||||
@@ -412,11 +348,7 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
|
|
||||||
// 停供按钮压下,更新库存项目管理表的库存状态:已停供
|
// 停供按钮压下,更新库存项目管理表的库存状态:已停供
|
||||||
int updateCount = baseMapper.update(null,
|
int updateCount = baseMapper.update(null,
|
||||||
<<<<<<< HEAD
|
|
||||||
new LambdaUpdateWrapper<InventoryItem>().eq(InventoryItem::getId, inventoryId)
|
|
||||||
=======
|
|
||||||
new LambdaUpdateWrapper<InventoryItem>().in(InventoryItem::getId, inventoryIdList)
|
new LambdaUpdateWrapper<InventoryItem>().in(InventoryItem::getId, inventoryIdList)
|
||||||
>>>>>>> v1.3
|
|
||||||
.set(InventoryItem::getUpdateTime, now).set(InventoryItem::getUpdateBy, loginUser.getUserId())
|
.set(InventoryItem::getUpdateTime, now).set(InventoryItem::getUpdateBy, loginUser.getUserId())
|
||||||
.set(InventoryItem::getInventoryStatusEnum, PublicationStatus.RETIRED.getValue()));
|
.set(InventoryItem::getInventoryStatusEnum, PublicationStatus.RETIRED.getValue()));
|
||||||
|
|
||||||
@@ -427,19 +359,11 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
/**
|
/**
|
||||||
* 操作:取消停供
|
* 操作:取消停供
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param inventoryId 库存项目管理ID
|
|
||||||
* @return 操作结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> cancelSupplyById(Long inventoryId) {
|
|
||||||
=======
|
|
||||||
* @param inventoryIdList 库存项目管理ID
|
* @param inventoryIdList 库存项目管理ID
|
||||||
* @return 操作结果
|
* @return 操作结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<?> cancelSupplyById(List<Long> inventoryIdList) {
|
public R<?> cancelSupplyById(List<Long> inventoryIdList) {
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 获取当前时间
|
// 获取当前时间
|
||||||
Date now = DateUtils.getNowDate();
|
Date now = DateUtils.getNowDate();
|
||||||
@@ -448,11 +372,7 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
|
|
||||||
// 取消停供按钮压下,更新库存项目管理表的库存状态:未停供
|
// 取消停供按钮压下,更新库存项目管理表的库存状态:未停供
|
||||||
int updateCount = baseMapper.update(null,
|
int updateCount = baseMapper.update(null,
|
||||||
<<<<<<< HEAD
|
|
||||||
new LambdaUpdateWrapper<InventoryItem>().eq(InventoryItem::getId, inventoryId)
|
|
||||||
=======
|
|
||||||
new LambdaUpdateWrapper<InventoryItem>().in(InventoryItem::getId, inventoryIdList)
|
new LambdaUpdateWrapper<InventoryItem>().in(InventoryItem::getId, inventoryIdList)
|
||||||
>>>>>>> v1.3
|
|
||||||
.set(InventoryItem::getUpdateTime, now).set(InventoryItem::getUpdateBy, loginUser.getUserId())
|
.set(InventoryItem::getUpdateTime, now).set(InventoryItem::getUpdateBy, loginUser.getUserId())
|
||||||
.set(InventoryItem::getInventoryStatusEnum, PublicationStatus.ACTIVE.getValue()));
|
.set(InventoryItem::getInventoryStatusEnum, PublicationStatus.ACTIVE.getValue()));
|
||||||
|
|
||||||
@@ -464,34 +384,15 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
* 库存明细表导出
|
* 库存明细表导出
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
* @param request 请求数据
|
* @param request 请求数据
|
||||||
* @param response 响应数据
|
* @param response 响应数据
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
public void makeExcelFile(ProductDetailSearchParam productDetailSearchParam, Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request, HttpServletResponse response) {
|
|
||||||
R<?> result = this.getProductDetailPageX(productDetailSearchParam, 1, 10000, searchKey, request);
|
|
||||||
if (result != null && result.getData() != null) {
|
|
||||||
Page<ProductDetailPageDto> pageData = (Page)result.getData();
|
|
||||||
List<ProductDetailPageDto> dataList = pageData.getRecords();
|
|
||||||
|
|
||||||
try {
|
|
||||||
for(ProductDetailPageDto productDetailPageDto : dataList) {
|
|
||||||
// 获取单位
|
|
||||||
String unitCode = productDetailPageDto.getUnitCodeDictText();
|
|
||||||
String minUnitCode = productDetailPageDto.getMinUnitCodeDictText();
|
|
||||||
//获取数量
|
|
||||||
=======
|
|
||||||
@Override
|
@Override
|
||||||
public void makeExcelFile(ProductDetailSearchParam productDetailSearchParam, String searchKey,
|
public void makeExcelFile(ProductDetailSearchParam productDetailSearchParam, String searchKey,
|
||||||
HttpServletRequest request, HttpServletResponse response) {
|
HttpServletRequest request, HttpServletResponse response) {
|
||||||
R<List<ProductDetailPageDto>> result =
|
R<List<ProductDetailPageDto>> result
|
||||||
this.getProductDetailPageAndTranslateField(productDetailSearchParam, searchKey, request);
|
= this.getProductDetailPageAndTranslateField(productDetailSearchParam, searchKey, request);
|
||||||
if (result.getData() != null) {
|
if (result.getData() != null) {
|
||||||
List<ProductDetailPageDto> dataList = result.getData();
|
List<ProductDetailPageDto> dataList = result.getData();
|
||||||
try {
|
try {
|
||||||
@@ -500,20 +401,10 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
String unitCode = productDetailPageDto.getUnitCodeDictText();
|
String unitCode = productDetailPageDto.getUnitCodeDictText();
|
||||||
String minUnitCode = productDetailPageDto.getMinUnitCodeDictText();
|
String minUnitCode = productDetailPageDto.getMinUnitCodeDictText();
|
||||||
// 获取数量
|
// 获取数量
|
||||||
>>>>>>> v1.3
|
|
||||||
BigDecimal number = productDetailPageDto.getNumber();
|
BigDecimal number = productDetailPageDto.getNumber();
|
||||||
BigDecimal remainder = productDetailPageDto.getRemainder();
|
BigDecimal remainder = productDetailPageDto.getRemainder();
|
||||||
// 拼接
|
// 拼接
|
||||||
if (remainder.compareTo(BigDecimal.ZERO) > 0) {
|
if (remainder.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
<<<<<<< HEAD
|
|
||||||
productDetailPageDto.setNumber_text(number.setScale(0, RoundingMode.HALF_UP) + unitCode + remainder.setScale(0, RoundingMode.HALF_UP) + minUnitCode);
|
|
||||||
} else {
|
|
||||||
productDetailPageDto.setNumber_text(number.setScale(0, RoundingMode.HALF_UP) + unitCode);
|
|
||||||
}
|
|
||||||
productDetailPageDto.setQuantity_text(productDetailPageDto.getQuantity().setScale(0, RoundingMode.HALF_UP) + minUnitCode);
|
|
||||||
|
|
||||||
// 金额字段拼接 ‘元’
|
|
||||||
=======
|
|
||||||
productDetailPageDto.setNumber_text(number.setScale(0, RoundingMode.HALF_UP) + unitCode
|
productDetailPageDto.setNumber_text(number.setScale(0, RoundingMode.HALF_UP) + unitCode
|
||||||
+ remainder.setScale(0, RoundingMode.HALF_UP) + minUnitCode);
|
+ remainder.setScale(0, RoundingMode.HALF_UP) + minUnitCode);
|
||||||
} else {
|
} else {
|
||||||
@@ -523,27 +414,11 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
productDetailPageDto.getQuantity().setScale(0, RoundingMode.HALF_UP) + minUnitCode);
|
productDetailPageDto.getQuantity().setScale(0, RoundingMode.HALF_UP) + minUnitCode);
|
||||||
|
|
||||||
// 金额字段拼接
|
// 金额字段拼接
|
||||||
>>>>>>> v1.3
|
|
||||||
BigDecimal purchasePrice = productDetailPageDto.getPurchasePrice();
|
BigDecimal purchasePrice = productDetailPageDto.getPurchasePrice();
|
||||||
BigDecimal salePrice = productDetailPageDto.getSalePrice();
|
BigDecimal salePrice = productDetailPageDto.getSalePrice();
|
||||||
BigDecimal totalPurchasePrice = productDetailPageDto.getTotalPurchasePrice();
|
BigDecimal totalPurchasePrice = productDetailPageDto.getTotalPurchasePrice();
|
||||||
BigDecimal totalSalePrice = productDetailPageDto.getTotalSalePrice();
|
BigDecimal totalSalePrice = productDetailPageDto.getTotalSalePrice();
|
||||||
if (salePrice != null) {
|
if (salePrice != null) {
|
||||||
<<<<<<< HEAD
|
|
||||||
productDetailPageDto.setExcelSalePrice(salePrice.setScale(2, RoundingMode.HALF_UP) + "元");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (purchasePrice != null) {
|
|
||||||
productDetailPageDto.setExcelPurchasePrice(purchasePrice.setScale(2, RoundingMode.HALF_UP) + "元");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (totalPurchasePrice != null) {
|
|
||||||
productDetailPageDto.setExcelTotalPurchasePrice(totalPurchasePrice.setScale(2, RoundingMode.HALF_UP) + "元");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (totalSalePrice != null) {
|
|
||||||
productDetailPageDto.setExcelTotalSalePrice(totalSalePrice.setScale(2, RoundingMode.HALF_UP) + "元");
|
|
||||||
=======
|
|
||||||
productDetailPageDto.setExcelSalePrice(
|
productDetailPageDto.setExcelSalePrice(
|
||||||
salePrice.setScale(2, RoundingMode.HALF_UP) + "");
|
salePrice.setScale(2, RoundingMode.HALF_UP) + "");
|
||||||
}
|
}
|
||||||
@@ -561,26 +436,13 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
if (totalSalePrice != null) {
|
if (totalSalePrice != null) {
|
||||||
productDetailPageDto.setExcelTotalSalePrice(
|
productDetailPageDto.setExcelTotalSalePrice(
|
||||||
totalSalePrice.setScale(2, RoundingMode.HALF_UP) + "");
|
totalSalePrice.setScale(2, RoundingMode.HALF_UP) + "");
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 判断项目类别
|
// 判断项目类别
|
||||||
String devCategoryCodeDictText = productDetailPageDto.getDevCategoryCodeDictText();
|
String devCategoryCodeDictText = productDetailPageDto.getDevCategoryCodeDictText();
|
||||||
String medCategoryCodeDictText = productDetailPageDto.getMedCategoryCodeDictText();
|
String medCategoryCodeDictText = productDetailPageDto.getMedCategoryCodeDictText();
|
||||||
<<<<<<< HEAD
|
String categoryCodeDictText
|
||||||
String categoryCodeDictText = devCategoryCodeDictText == null ? medCategoryCodeDictText : devCategoryCodeDictText;
|
= devCategoryCodeDictText == null ? medCategoryCodeDictText : devCategoryCodeDictText;
|
||||||
productDetailPageDto.setCategoryCodeDictText(categoryCodeDictText);
|
|
||||||
}
|
|
||||||
|
|
||||||
//导出
|
|
||||||
ExcelUtil<ProductDetailPageDto> util = new ExcelUtil(ProductDetailPageDto.class);
|
|
||||||
util.exportExcel(response, dataList, "库存明细记录");
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
System.out.printf("导出Excel失败:" + e.getMessage());
|
|
||||||
=======
|
|
||||||
String categoryCodeDictText =
|
|
||||||
devCategoryCodeDictText == null ? medCategoryCodeDictText : devCategoryCodeDictText;
|
|
||||||
productDetailPageDto.setCategoryCodeDictText(categoryCodeDictText);
|
productDetailPageDto.setCategoryCodeDictText(categoryCodeDictText);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -589,86 +451,19 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
util.exportExcel(response, dataList, CommonConstants.SheetName.INVENTORY_DETAIL_RECORD);
|
util.exportExcel(response, dataList, CommonConstants.SheetName.INVENTORY_DETAIL_RECORD);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new NonCaptureException(StringUtils.format("导出excel失败"), e);
|
throw new NonCaptureException(StringUtils.format("导出excel失败"), e);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询库存商品明细分页列表,联查数据字典
|
|
||||||
*
|
|
||||||
* @param productDetailSearchParam 查询条件
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 查询库存商品明细分页列表,联查数据字典翻译单位字段
|
* 查询库存商品明细分页列表,联查数据字典翻译单位字段
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
* @param request 请求数据
|
* @param request 请求数据
|
||||||
* @return 库存商品明细分页列表
|
* @return 库存商品明细分页列表
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getProductDetailPageX(ProductDetailSearchParam productDetailSearchParam, Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) {
|
|
||||||
Integer categoryCode = productDetailSearchParam.getCategoryCode();
|
|
||||||
Integer zeroFlag = productDetailSearchParam.getZeroFlag();
|
|
||||||
Integer remainingDays = productDetailSearchParam.getRemainingDays();
|
|
||||||
List<Long> locationIds = productDetailSearchParam.getLocationIds();
|
|
||||||
List<Long> supplierIds = productDetailSearchParam.getSupplierIds();
|
|
||||||
productDetailSearchParam.setCategoryCode((Integer)null).setZeroFlag((Integer)null).setRemainingDays((Integer)null).setLocationIds((List)null).setSupplierIds((List)null);
|
|
||||||
QueryWrapper<ProductDetailSearchParam> queryWrapper = HisQueryUtils.buildQueryWrapper(productDetailSearchParam, searchKey, new HashSet(Arrays.asList("item_name", "bus_no", "py_str", "wb_str")), request);
|
|
||||||
if (categoryCode != null) {
|
|
||||||
if (!categoryCode.equals(ItemCategoryCode.CHINESE_PATENT_DRUG.getValue()) && !categoryCode.equals(ItemCategoryCode.WESTERN_MEDICINE.getValue()) && !categoryCode.equals(ItemCategoryCode.EXTERNALLY_PROCURED_DRUGS.getValue()) && !categoryCode.equals(ItemCategoryCode.CHINESE_HERBAL_MEDICINE.getValue())) {
|
|
||||||
if (categoryCode.equals(ItemCategoryCode.DEVICE.getValue())) {
|
|
||||||
queryWrapper.eq("item_table", "adm_device_definition");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
queryWrapper.eq("item_table", "med_medication_definition");
|
|
||||||
queryWrapper.eq("med_category_code", categoryCode.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (zeroFlag != null) {
|
|
||||||
if (Whether.YES.getValue().equals(zeroFlag)) {
|
|
||||||
queryWrapper.eq("quantity", BigDecimal.ZERO);
|
|
||||||
} else {
|
|
||||||
queryWrapper.gt("quantity", BigDecimal.ZERO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (locationIds != null && !locationIds.isEmpty()) {
|
|
||||||
queryWrapper.in("location_id", locationIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supplierIds != null && !supplierIds.isEmpty()) {
|
|
||||||
queryWrapper.in("supplier_id", supplierIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (remainingDays != null) {
|
|
||||||
queryWrapper.le("remaining_days", remainingDays);
|
|
||||||
}
|
|
||||||
|
|
||||||
Page<ProductDetailPageDto> productDetailsPage = this.productDetailsMapper.selectProductDetailsPageX(new Page((long)pageNo, (long)pageSize), queryWrapper, "med_medication_definition", "adm_device_definition", ConditionCode.LOT_NUMBER_COST.getCode());
|
|
||||||
List<ProductDetailPageDto> productDetailList = productDetailsPage.getRecords();
|
|
||||||
if (productDetailList != null && !productDetailList.isEmpty()) {
|
|
||||||
String orderPricingSource = TenantOptionUtil.getOptionContent(TenantOptionDict.ORDER_PRICING_SOURCE);
|
|
||||||
if (OrderPricingSource.BATCH_SELLING_PRICE.getCode().equals(orderPricingSource)) {
|
|
||||||
List<Long> chargeItemDefIdList = (List)productDetailList.stream().map(ProductDetailPageDto::getChargeItemDefId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
||||||
if (!chargeItemDefIdList.isEmpty()) {
|
|
||||||
List<ChargeItemDefDetail> lotNumberPriceList = this.chargeItemDefDetailService.getLotNumberPriceByDefIds(chargeItemDefIdList);
|
|
||||||
if (lotNumberPriceList != null && !lotNumberPriceList.isEmpty()) {
|
|
||||||
Map<String, BigDecimal> lotPriceMap = (Map)lotNumberPriceList.stream().collect(Collectors.toMap(ChargeItemDefDetail::getConditionValue, ChargeItemDefDetail::getAmount, (existing, replacement) -> existing));
|
|
||||||
|
|
||||||
for(ProductDetailPageDto productDetail : productDetailList) {
|
|
||||||
BigDecimal price = (BigDecimal)lotPriceMap.get(productDetail.getLotNumber());
|
|
||||||
if (price != null) {
|
|
||||||
productDetail.setTotalSalePrice(price);
|
|
||||||
=======
|
|
||||||
private R<List<ProductDetailPageDto>> getProductDetailPageAndTranslateField(
|
private R<List<ProductDetailPageDto>> getProductDetailPageAndTranslateField(
|
||||||
ProductDetailSearchParam productDetailSearchParam, String searchKey, HttpServletRequest request) {
|
ProductDetailSearchParam productDetailSearchParam, String searchKey, HttpServletRequest request) {
|
||||||
// 药品类型
|
// 药品类型
|
||||||
@@ -727,18 +522,18 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
// 批次售价需查询定价子表
|
// 批次售价需查询定价子表
|
||||||
if (OrderPricingSource.BATCH_SELLING_PRICE.getCode().equals(orderPricingSource)) {
|
if (OrderPricingSource.BATCH_SELLING_PRICE.getCode().equals(orderPricingSource)) {
|
||||||
// 收集所有定价ID
|
// 收集所有定价ID
|
||||||
List<Long> chargeItemDefIdList =
|
List<Long> chargeItemDefIdList
|
||||||
productDetailList.stream().map(ProductDetailPageDto::getChargeItemDefId).filter(Objects::nonNull)
|
= productDetailList.stream().map(ProductDetailPageDto::getChargeItemDefId).filter(Objects::nonNull)
|
||||||
.distinct().collect(Collectors.toList());
|
.distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
// 查询批次售价信息
|
// 查询批次售价信息
|
||||||
if (!chargeItemDefIdList.isEmpty()) {
|
if (!chargeItemDefIdList.isEmpty()) {
|
||||||
List<ChargeItemDefDetail> lotNumberPriceList =
|
List<ChargeItemDefDetail> lotNumberPriceList
|
||||||
chargeItemDefDetailService.getLotNumberPriceByDefIds(chargeItemDefIdList);
|
= chargeItemDefDetailService.getLotNumberPriceByDefIds(chargeItemDefIdList);
|
||||||
if (lotNumberPriceList != null && !lotNumberPriceList.isEmpty()) {
|
if (lotNumberPriceList != null && !lotNumberPriceList.isEmpty()) {
|
||||||
// 创建批次号到售价的映射
|
// 创建批次号到售价的映射
|
||||||
Map<String, BigDecimal> lotPriceMap =
|
Map<String, BigDecimal> lotPriceMap
|
||||||
lotNumberPriceList.stream().collect(Collectors.toMap(ChargeItemDefDetail::getConditionValue,
|
= lotNumberPriceList.stream().collect(Collectors.toMap(ChargeItemDefDetail::getConditionValue,
|
||||||
ChargeItemDefDetail::getAmount, (existing, replacement) -> existing)); // 处理重复键的情况
|
ChargeItemDefDetail::getAmount, (existing, replacement) -> existing)); // 处理重复键的情况
|
||||||
|
|
||||||
// 更新原始列表中的售价
|
// 更新原始列表中的售价
|
||||||
@@ -746,34 +541,12 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
BigDecimal price = lotPriceMap.get(productDetail.getLotNumber());
|
BigDecimal price = lotPriceMap.get(productDetail.getLotNumber());
|
||||||
if (price != null) {
|
if (price != null) {
|
||||||
productDetail.setSalePrice(price);
|
productDetail.setSalePrice(price);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
for(ProductDetailPageDto productDetailPageDto : productDetailList) {
|
|
||||||
productDetailPageDto.setChrgitmLv_enumText(EnumUtils.getInfoByValue(YbChrgitmLv.class, productDetailPageDto.getChrgitmLv()));
|
|
||||||
productDetailPageDto.setInventoryStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, productDetailPageDto.getInventoryStatusEnum()));
|
|
||||||
BigDecimal[] results = productDetailPageDto.getQuantity().divideAndRemainder(productDetailPageDto.getPartPercent());
|
|
||||||
productDetailPageDto.setNumber(results[0]);
|
|
||||||
productDetailPageDto.setRemainder(results[1]);
|
|
||||||
if (productDetailPageDto.getPurchasePrice() != null) {
|
|
||||||
productDetailPageDto.setTotalPurchasePrice(productDetailPageDto.getPurchasePrice().multiply(results[0]).add(productDetailPageDto.getPurchasePrice().divide(productDetailPageDto.getPartPercent(), 4, RoundingMode.HALF_UP).multiply(results[1])));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (productDetailPageDto.getSalePrice() != null) {
|
|
||||||
productDetailPageDto.setTotalSalePrice(productDetailPageDto.getSalePrice().multiply(results[0]).add(productDetailPageDto.getSalePrice().divide(productDetailPageDto.getPartPercent(), 4, RoundingMode.HALF_UP).multiply(results[1])));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return R.ok(productDetailsPage);
|
|
||||||
}
|
|
||||||
|
|
||||||
=======
|
|
||||||
for (ProductDetailPageDto productDetailPageDto : productDetailList) {
|
for (ProductDetailPageDto productDetailPageDto : productDetailList) {
|
||||||
// 医保等级
|
// 医保等级
|
||||||
productDetailPageDto.setChrgitmLv_enumText(
|
productDetailPageDto.setChrgitmLv_enumText(
|
||||||
@@ -783,8 +556,8 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
EnumUtils.getInfoByValue(PublicationStatus.class, productDetailPageDto.getInventoryStatusEnum()));
|
EnumUtils.getInfoByValue(PublicationStatus.class, productDetailPageDto.getInventoryStatusEnum()));
|
||||||
|
|
||||||
// 计算包装单位数量
|
// 计算包装单位数量
|
||||||
BigDecimal[] results =
|
BigDecimal[] results
|
||||||
productDetailPageDto.getQuantity().divideAndRemainder(productDetailPageDto.getPartPercent());
|
= productDetailPageDto.getQuantity().divideAndRemainder(productDetailPageDto.getPartPercent());
|
||||||
// 整数
|
// 整数
|
||||||
productDetailPageDto.setNumber(results[0]);
|
productDetailPageDto.setNumber(results[0]);
|
||||||
// 余数
|
// 余数
|
||||||
@@ -870,14 +643,13 @@ public class ProductDetailAppServiceImpl extends ServiceImpl<InventoryItemMapper
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
// 导出
|
// 导出
|
||||||
NewExcelUtil<ProductDetailPageDto> newExcelUtil =
|
NewExcelUtil<ProductDetailPageDto> newExcelUtil
|
||||||
new NewExcelUtil<>(ProductDetailPageDto.class);
|
= new NewExcelUtil<>(ProductDetailPageDto.class);
|
||||||
newExcelUtil.exportExcel(response, dataList, CommonConstants.SheetName.INVENTORY_DETAIL_RECORD);
|
newExcelUtil.exportExcel(response, dataList, CommonConstants.SheetName.INVENTORY_DETAIL_RECORD);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,18 +3,9 @@
|
|||||||
*/
|
*/
|
||||||
package com.openhis.web.inventorymanage.appservice.impl;
|
package com.openhis.web.inventorymanage.appservice.impl;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
=======
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
>>>>>>> v1.3
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@@ -22,25 +13,15 @@ import javax.annotation.Resource;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import com.openhis.administration.domain.Location;
|
import com.openhis.administration.domain.Location;
|
||||||
import com.openhis.administration.service.impl.LocationServiceImpl;
|
import com.openhis.administration.service.impl.LocationServiceImpl;
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.core.common.exception.ServiceException;
|
import com.core.common.exception.ServiceException;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.utils.AssignSeqUtil;
|
|
||||||
import com.core.common.utils.DateUtils;
|
|
||||||
import com.core.common.utils.MessageUtils;
|
|
||||||
import com.core.common.utils.SecurityUtils;
|
|
||||||
=======
|
|
||||||
import com.core.common.utils.*;
|
import com.core.common.utils.*;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.core.common.utils.bean.BeanUtils;
|
import com.core.common.utils.bean.BeanUtils;
|
||||||
import com.openhis.administration.domain.Practitioner;
|
import com.openhis.administration.domain.Practitioner;
|
||||||
import com.openhis.administration.domain.Supplier;
|
import com.openhis.administration.domain.Supplier;
|
||||||
@@ -156,8 +137,8 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer
|
|||||||
searchFields.add(CommonConstants.FieldName.SupplyBusNo);
|
searchFields.add(CommonConstants.FieldName.SupplyBusNo);
|
||||||
|
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<InventorySearchParam> queryWrapper =
|
QueryWrapper<InventorySearchParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(inventorySearchParam, searchKey, searchFields, request);
|
= HisQueryUtils.buildQueryWrapper(inventorySearchParam, searchKey, searchFields, request);
|
||||||
// 查询入库单据分页列表
|
// 查询入库单据分页列表
|
||||||
Page<ReceiptPageDto> inventoryReceiptPage = purchaseInventoryMapper.selectInventoryReceiptPage(
|
Page<ReceiptPageDto> inventoryReceiptPage = purchaseInventoryMapper.selectInventoryReceiptPage(
|
||||||
new Page<>(pageNo, pageSize), queryWrapper, SupplyType.PURCHASE_INVENTORY.getValue());
|
new Page<>(pageNo, pageSize), queryWrapper, SupplyType.PURCHASE_INVENTORY.getValue());
|
||||||
@@ -227,8 +208,8 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer
|
|||||||
List<String> idList = new ArrayList<>();
|
List<String> idList = new ArrayList<>();
|
||||||
|
|
||||||
// 单据号取得
|
// 单据号取得
|
||||||
List<String> busNoList =
|
List<String> busNoList
|
||||||
purchaseInventoryDtoList.stream().map(PurchaseInventoryDto::getBusNo).collect(Collectors.toList());
|
= purchaseInventoryDtoList.stream().map(PurchaseInventoryDto::getBusNo).collect(Collectors.toList());
|
||||||
// 请求数据取得
|
// 请求数据取得
|
||||||
List<SupplyRequest> requestList = supplyRequestService.getSupplyByBusNo(busNoList.get(0));
|
List<SupplyRequest> requestList = supplyRequestService.getSupplyByBusNo(busNoList.get(0));
|
||||||
if (!requestList.isEmpty()) {
|
if (!requestList.isEmpty()) {
|
||||||
@@ -337,8 +318,8 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer
|
|||||||
public R<?> getMonthlySettlementDetail(Long locationId, String startTime, String endTime, Integer pageNo,
|
public R<?> getMonthlySettlementDetail(Long locationId, String startTime, String endTime, Integer pageNo,
|
||||||
Integer pageSize) {
|
Integer pageSize) {
|
||||||
|
|
||||||
Page<ReceiptDetailDto> receiptDetailList =
|
Page<ReceiptDetailDto> receiptDetailList
|
||||||
purchaseInventoryMapper.getMonthlySettlementDetail(new Page<>(pageNo, pageSize), locationId, startTime,
|
= purchaseInventoryMapper.getMonthlySettlementDetail(new Page<>(pageNo, pageSize), locationId, startTime,
|
||||||
endTime, ItemType.MEDICINE.getValue(), ItemType.DEVICE.getValue(),
|
endTime, ItemType.MEDICINE.getValue(), ItemType.DEVICE.getValue(),
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
||||||
Arrays.asList(SupplyType.PURCHASE_INVENTORY.getValue()), SupplyStatus.AGREE.getValue());
|
Arrays.asList(SupplyType.PURCHASE_INVENTORY.getValue()), SupplyStatus.AGREE.getValue());
|
||||||
|
|||||||
@@ -212,8 +212,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
searchFields.add(CommonConstants.FieldName.SupplyBusNo);
|
searchFields.add(CommonConstants.FieldName.SupplyBusNo);
|
||||||
|
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<ReceiptApprovalSearchParam> queryWrapper =
|
QueryWrapper<ReceiptApprovalSearchParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(receiptSearchParam, searchKey, searchFields, request);
|
= HisQueryUtils.buildQueryWrapper(receiptSearchParam, searchKey, searchFields, request);
|
||||||
|
|
||||||
if (typeEnumList != null && !typeEnumList.isEmpty()) {
|
if (typeEnumList != null && !typeEnumList.isEmpty()) {
|
||||||
queryWrapper.in(CommonConstants.FieldName.TypeEnum, typeEnumList);
|
queryWrapper.in(CommonConstants.FieldName.TypeEnum, typeEnumList);
|
||||||
@@ -346,8 +346,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
minQuantity = minQuantity.add(supplyItemDetailDto.getItemQuantity());
|
minQuantity = minQuantity.add(supplyItemDetailDto.getItemQuantity());
|
||||||
}
|
}
|
||||||
// 更新源仓库库存数量
|
// 更新源仓库库存数量
|
||||||
Boolean aBoolean =
|
Boolean aBoolean
|
||||||
inventoryItemService.updateInventoryQuantity(inventoryItemPurpose.getId(), minQuantity, now);
|
= inventoryItemService.updateInventoryQuantity(inventoryItemPurpose.getId(), minQuantity, now);
|
||||||
|
|
||||||
if (!aBoolean) {
|
if (!aBoolean) {
|
||||||
throw new ServiceException("系统异常,请稍后重试");
|
throw new ServiceException("系统异常,请稍后重试");
|
||||||
@@ -368,8 +368,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
// 调用医保商品采购接口
|
// 调用医保商品采购接口
|
||||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||||
List<String> uploadFailedNoList =
|
List<String> uploadFailedNoList
|
||||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, now, false);
|
= this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.PURCHASE_IN, now, false);
|
||||||
if (!uploadFailedNoList.isEmpty()) {
|
if (!uploadFailedNoList.isEmpty()) {
|
||||||
returnMsg = "3503商品采购上传错误,错误项目编码" + uploadFailedNoList;
|
returnMsg = "3503商品采购上传错误,错误项目编码" + uploadFailedNoList;
|
||||||
} else {
|
} else {
|
||||||
@@ -444,8 +444,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
minQuantity = minQuantity.add(supplyItemDetailDto.getItemQuantity());
|
minQuantity = minQuantity.add(supplyItemDetailDto.getItemQuantity());
|
||||||
// }
|
// }
|
||||||
// 更新库存数量
|
// 更新库存数量
|
||||||
Boolean aBoolean =
|
Boolean aBoolean
|
||||||
inventoryItemService.updateInventoryQuantity(inventoryItem.getId(), minQuantity, now);
|
= inventoryItemService.updateInventoryQuantity(inventoryItem.getId(), minQuantity, now);
|
||||||
if (!aBoolean) {
|
if (!aBoolean) {
|
||||||
throw new ServiceException("系统异常,请稍后重试");
|
throw new ServiceException("系统异常,请稍后重试");
|
||||||
}
|
}
|
||||||
@@ -460,13 +460,13 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
List<String> uploadFailedLossList = null;
|
List<String> uploadFailedLossList = null;
|
||||||
if (!positiveList.isEmpty()) {
|
if (!positiveList.isEmpty()) {
|
||||||
// 调用医保库存变更接口,盘盈
|
// 调用医保库存变更接口,盘盈
|
||||||
uploadFailedGainList =
|
uploadFailedGainList
|
||||||
this.ybInventoryIntegrated(positiveList, YbInvChgType.INVENTORY_GAIN, now, false);
|
= this.ybInventoryIntegrated(positiveList, YbInvChgType.INVENTORY_GAIN, now, false);
|
||||||
}
|
}
|
||||||
if (!negativeList.isEmpty()) {
|
if (!negativeList.isEmpty()) {
|
||||||
// 调用医保库存变更接口,盘亏
|
// 调用医保库存变更接口,盘亏
|
||||||
uploadFailedLossList =
|
uploadFailedLossList
|
||||||
this.ybInventoryIntegrated(negativeList, YbInvChgType.INVENTORY_LOSS, now, false);
|
= this.ybInventoryIntegrated(negativeList, YbInvChgType.INVENTORY_LOSS, now, false);
|
||||||
}
|
}
|
||||||
if (uploadFailedGainList != null || uploadFailedLossList != null) {
|
if (uploadFailedGainList != null || uploadFailedLossList != null) {
|
||||||
changeReturnMsg = "3502库存变更上传错误,错误项目编码" + uploadFailedGainList + uploadFailedLossList;
|
changeReturnMsg = "3502库存变更上传错误,错误项目编码" + uploadFailedGainList + uploadFailedLossList;
|
||||||
@@ -562,8 +562,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
// 更新源仓库库存数量
|
// 更新源仓库库存数量
|
||||||
Boolean aBoolean =
|
Boolean aBoolean
|
||||||
inventoryItemService.updateInventoryQuantity(inventoryItemSource.getId(), minQuantity, now);
|
= inventoryItemService.updateInventoryQuantity(inventoryItemSource.getId(), minQuantity, now);
|
||||||
if (!aBoolean) {
|
if (!aBoolean) {
|
||||||
throw new ServiceException("系统异常,请稍后重试");
|
throw new ServiceException("系统异常,请稍后重试");
|
||||||
}
|
}
|
||||||
@@ -609,8 +609,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
minQuantity = minQuantity.add(supplyItemDetailDto.getItemQuantity());
|
minQuantity = minQuantity.add(supplyItemDetailDto.getItemQuantity());
|
||||||
// }
|
// }
|
||||||
// 更新目的仓库库存数量
|
// 更新目的仓库库存数量
|
||||||
Boolean bBoolean =
|
Boolean bBoolean
|
||||||
inventoryItemService.updateInventoryQuantity(inventoryItemPurpose.getId(), minQuantity, now);
|
= inventoryItemService.updateInventoryQuantity(inventoryItemPurpose.getId(), minQuantity, now);
|
||||||
|
|
||||||
if (!bBoolean) {
|
if (!bBoolean) {
|
||||||
throw new ServiceException("系统异常,请稍后重试");
|
throw new ServiceException("系统异常,请稍后重试");
|
||||||
@@ -710,8 +710,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 更新仓库库存数量
|
// 更新仓库库存数量
|
||||||
Boolean aBoolean =
|
Boolean aBoolean
|
||||||
inventoryItemService.updateInventoryQuantity(inventoryItemSource.getId(), minQuantity, now);
|
= inventoryItemService.updateInventoryQuantity(inventoryItemSource.getId(), minQuantity, now);
|
||||||
|
|
||||||
if (!aBoolean) {
|
if (!aBoolean) {
|
||||||
throw new ServiceException("系统异常,请稍后重试");
|
throw new ServiceException("系统异常,请稍后重试");
|
||||||
@@ -729,8 +729,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
// 调用医保采购退货接口
|
// 调用医保采购退货接口
|
||||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||||
List<String> uploadFailedNoList =
|
List<String> uploadFailedNoList
|
||||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, now, false);
|
= this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.RETURN_OUT, now, false);
|
||||||
if (!uploadFailedNoList.isEmpty()) {
|
if (!uploadFailedNoList.isEmpty()) {
|
||||||
returnMsg = "3504采购退货上传错误,错误项目编码" + uploadFailedNoList;
|
returnMsg = "3504采购退货上传错误,错误项目编码" + uploadFailedNoList;
|
||||||
}
|
}
|
||||||
@@ -806,8 +806,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 更新库存数量
|
// 更新库存数量
|
||||||
Boolean aBoolean =
|
Boolean aBoolean
|
||||||
inventoryItemService.updateInventoryQuantity(inventoryItem.getId(), minQuantity, now);
|
= inventoryItemService.updateInventoryQuantity(inventoryItem.getId(), minQuantity, now);
|
||||||
if (!aBoolean) {
|
if (!aBoolean) {
|
||||||
throw new ServiceException("系统异常,请稍后重试");
|
throw new ServiceException("系统异常,请稍后重试");
|
||||||
}
|
}
|
||||||
@@ -821,8 +821,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
// 调用医保库存变更接口
|
// 调用医保库存变更接口
|
||||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||||
List<String> uploadFailedNoList =
|
List<String> uploadFailedNoList
|
||||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.DESTRUCTION, now, false);
|
= this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.DESTRUCTION, now, false);
|
||||||
if (!uploadFailedNoList.isEmpty()) {
|
if (!uploadFailedNoList.isEmpty()) {
|
||||||
returnMsg = "3502库存变更上传错误,错误项目编码" + uploadFailedNoList;
|
returnMsg = "3502库存变更上传错误,错误项目编码" + uploadFailedNoList;
|
||||||
}
|
}
|
||||||
@@ -866,8 +866,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
if (!supplyItemDetailList.isEmpty()) {
|
if (!supplyItemDetailList.isEmpty()) {
|
||||||
|
|
||||||
// 根据项目id,产品批号,源仓库id 查询源仓库库存表信息
|
// 根据项目id,产品批号,源仓库id 查询源仓库库存表信息
|
||||||
List<InventoryItem> inventoryItemList =
|
List<InventoryItem> inventoryItemList
|
||||||
inventoryItemService.list(new LambdaQueryWrapper<InventoryItem>().in(InventoryItem::getItemId,
|
= inventoryItemService.list(new LambdaQueryWrapper<InventoryItem>().in(InventoryItem::getItemId,
|
||||||
supplyItemDetailList.stream().map(SupplyItemDetailDto::getItemId).toList()));
|
supplyItemDetailList.stream().map(SupplyItemDetailDto::getItemId).toList()));
|
||||||
for (SupplyItemDetailDto supplyItemDetailDto : supplyItemDetailList) {
|
for (SupplyItemDetailDto supplyItemDetailDto : supplyItemDetailList) {
|
||||||
if (!inventoryItemList.isEmpty()) {
|
if (!inventoryItemList.isEmpty()) {
|
||||||
@@ -899,8 +899,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 更新源仓库库存数量
|
// 更新源仓库库存数量
|
||||||
Boolean aBoolean =
|
Boolean aBoolean
|
||||||
inventoryItemService.updateInventoryQuantity(inventoryItem.getId(), minQuantity, now);
|
= inventoryItemService.updateInventoryQuantity(inventoryItem.getId(), minQuantity, now);
|
||||||
|
|
||||||
if (!aBoolean) {
|
if (!aBoolean) {
|
||||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||||
@@ -918,8 +918,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
// 调用医保库存变更接口
|
// 调用医保库存变更接口
|
||||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||||
List<String> uploadFailedNoList =
|
List<String> uploadFailedNoList
|
||||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.OTHER_OUT, now, false);
|
= this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.OTHER_OUT, now, false);
|
||||||
if (!uploadFailedNoList.isEmpty()) {
|
if (!uploadFailedNoList.isEmpty()) {
|
||||||
returnMsg = "3502库存变更上传错误,错误项目编码" + uploadFailedNoList;
|
returnMsg = "3502库存变更上传错误,错误项目编码" + uploadFailedNoList;
|
||||||
}
|
}
|
||||||
@@ -992,8 +992,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
minQuantity = minQuantity.add(supplyItemDetailDto.getItemQuantity());
|
minQuantity = minQuantity.add(supplyItemDetailDto.getItemQuantity());
|
||||||
}
|
}
|
||||||
// 更新目的仓库库存数量
|
// 更新目的仓库库存数量
|
||||||
Boolean bBoolean =
|
Boolean bBoolean
|
||||||
inventoryItemService.updateInventoryQuantity(inventoryItemPurpose.getId(), minQuantity, now);
|
= inventoryItemService.updateInventoryQuantity(inventoryItemPurpose.getId(), minQuantity, now);
|
||||||
if (!bBoolean) {
|
if (!bBoolean) {
|
||||||
throw new ServiceException("系统异常,请稍后重试");
|
throw new ServiceException("系统异常,请稍后重试");
|
||||||
}
|
}
|
||||||
@@ -1014,8 +1014,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
// 调用医保库存变更接口
|
// 调用医保库存变更接口
|
||||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
if (Whether.YES.getCode().equals(ybSwitch)) {
|
||||||
List<String> uploadFailedNoList =
|
List<String> uploadFailedNoList
|
||||||
this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.OTHER_IN, now, false);
|
= this.ybInventoryIntegrated(supplyItemDetailList, YbInvChgType.OTHER_IN, now, false);
|
||||||
if (!uploadFailedNoList.isEmpty()) {
|
if (!uploadFailedNoList.isEmpty()) {
|
||||||
returnMsg = "3502库存变更上传错误,错误项目编码" + uploadFailedNoList;
|
returnMsg = "3502库存变更上传错误,错误项目编码" + uploadFailedNoList;
|
||||||
}
|
}
|
||||||
@@ -1051,15 +1051,16 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
List<ChargeItemDefDetail> resultList = new ArrayList<>();
|
List<ChargeItemDefDetail> resultList = new ArrayList<>();
|
||||||
|
|
||||||
// 将各个项目的定价信息按项目id分组
|
// 将各个项目的定价信息按项目id分组
|
||||||
Map<Long, List<ItemChargeDetailDto>> chargeDetailGroup =
|
Map<Long, List<ItemChargeDetailDto>> chargeDetailGroup
|
||||||
chargeDetailList.stream().collect(Collectors.groupingBy(ItemChargeDetailDto::getInstanceId));
|
= chargeDetailList.stream().collect(Collectors.groupingBy(ItemChargeDetailDto::getInstanceId));
|
||||||
|
|
||||||
for (SupplyRequest supplyRequest : agreedList) {
|
for (SupplyRequest supplyRequest : agreedList) {
|
||||||
Long itemId = supplyRequest.getItemId();
|
Long itemId = supplyRequest.getItemId();
|
||||||
// 通过供应项目id匹配项目定价
|
// 通过供应项目id匹配项目定价
|
||||||
List<ItemChargeDetailDto> details = chargeDetailGroup.get(itemId);
|
List<ItemChargeDetailDto> details = chargeDetailGroup.get(itemId);
|
||||||
if (details == null)
|
if (details == null) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
boolean shouldSkip = false;
|
boolean shouldSkip = false;
|
||||||
for (ItemChargeDetailDto detail : details) {
|
for (ItemChargeDetailDto detail : details) {
|
||||||
@@ -1145,11 +1146,7 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
// 所有类型都需要调用库存变更(特殊类型失败时跳过)
|
// 所有类型都需要调用库存变更(特殊类型失败时跳过)
|
||||||
if (!skipInventoryUpdate) {
|
if (!skipInventoryUpdate) {
|
||||||
result = ybManager.updateInventoryCount(
|
result = ybManager.updateInventoryCount(
|
||||||
<<<<<<< HEAD
|
|
||||||
getMedicalInventory3502Param(supplyItemDetailDto, now, ybInvChgType.getValue()));
|
|
||||||
=======
|
|
||||||
getMedicalInventory3502Param(supplyItemDetailDto, now, ybInvChgType.getValue(), saleFlag));
|
getMedicalInventory3502Param(supplyItemDetailDto, now, ybInvChgType.getValue(), saleFlag));
|
||||||
>>>>>>> v1.3
|
|
||||||
if (result.getCode() != 200) {
|
if (result.getCode() != 200) {
|
||||||
uploadFailedNoList.add(supplyItemDetailDto.getItemBusNo());
|
uploadFailedNoList.add(supplyItemDetailDto.getItemBusNo());
|
||||||
}
|
}
|
||||||
@@ -1204,12 +1201,12 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
String ybInvChgType, boolean saleFlag) {
|
String ybInvChgType, boolean saleFlag) {
|
||||||
MedicalInventory3502Param medicalInventory3502Param = new MedicalInventory3502Param();
|
MedicalInventory3502Param medicalInventory3502Param = new MedicalInventory3502Param();
|
||||||
// 查库存信息
|
// 查库存信息
|
||||||
List<InventoryItem> inventoryItemList =
|
List<InventoryItem> inventoryItemList
|
||||||
inventoryItemService.selectInventoryByItemId(supplyItemDetailDto.getItemId(),
|
= inventoryItemService.selectInventoryByItemId(supplyItemDetailDto.getItemId(),
|
||||||
supplyItemDetailDto.getLotNumber(), null, SecurityUtils.getLoginUser().getTenantId());
|
supplyItemDetailDto.getLotNumber(), null, SecurityUtils.getLoginUser().getTenantId());
|
||||||
// 查询商品价格信息
|
// 查询商品价格信息
|
||||||
List<ItemChargeDetailDto> itemChargeDetailList =
|
List<ItemChargeDetailDto> itemChargeDetailList
|
||||||
receiptApprovalAppService.getItemChargeDetail(List.of(supplyItemDetailDto.getItemId()));
|
= receiptApprovalAppService.getItemChargeDetail(List.of(supplyItemDetailDto.getItemId()));
|
||||||
if (!inventoryItemList.isEmpty() && !itemChargeDetailList.isEmpty()) {
|
if (!inventoryItemList.isEmpty() && !itemChargeDetailList.isEmpty()) {
|
||||||
// 获取该项目所有的数量(最小单位)
|
// 获取该项目所有的数量(最小单位)
|
||||||
BigDecimal totalQuantity = inventoryItemList.stream()
|
BigDecimal totalQuantity = inventoryItemList.stream()
|
||||||
@@ -1267,8 +1264,8 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
private MedicalInventory3501Param getMedicalInventory3501Param(SupplyItemDetailDto supplyItemDetailDto, Date date) {
|
private MedicalInventory3501Param getMedicalInventory3501Param(SupplyItemDetailDto supplyItemDetailDto, Date date) {
|
||||||
MedicalInventory3501Param medicalInventory3501Param = new MedicalInventory3501Param();
|
MedicalInventory3501Param medicalInventory3501Param = new MedicalInventory3501Param();
|
||||||
// 查库存信息
|
// 查库存信息
|
||||||
List<InventoryItem> inventoryItemList =
|
List<InventoryItem> inventoryItemList
|
||||||
inventoryItemService.selectInventoryByItemId(supplyItemDetailDto.getItemId(),
|
= inventoryItemService.selectInventoryByItemId(supplyItemDetailDto.getItemId(),
|
||||||
supplyItemDetailDto.getLotNumber(), null, SecurityUtils.getLoginUser().getTenantId());
|
supplyItemDetailDto.getLotNumber(), null, SecurityUtils.getLoginUser().getTenantId());
|
||||||
if (!inventoryItemList.isEmpty()) {
|
if (!inventoryItemList.isEmpty()) {
|
||||||
// 获取该项目所有的数量(最小单位)
|
// 获取该项目所有的数量(最小单位)
|
||||||
|
|||||||
@@ -143,9 +143,6 @@ public class LossReportFormController {
|
|||||||
// @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
// @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||||
// return lossReportFormAppService.getMonthlySettlementDetail(locationId, startTime,endTime,pageNo,pageSize);
|
// return lossReportFormAppService.getMonthlySettlementDetail(locationId, startTime,endTime,pageNo,pageSize);
|
||||||
// }
|
// }
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报损单据明细导出
|
* 报损单据明细导出
|
||||||
*
|
*
|
||||||
@@ -156,5 +153,4 @@ public class LossReportFormController {
|
|||||||
public void exportExcel(@RequestParam String busNo, HttpServletResponse response) {
|
public void exportExcel(@RequestParam String busNo, HttpServletResponse response) {
|
||||||
lossReportFormAppService.makeExcelFile(busNo, response);
|
lossReportFormAppService.makeExcelFile(busNo, response);
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,17 @@
|
|||||||
package com.openhis.web.inventorymanage.controller;
|
package com.openhis.web.inventorymanage.controller;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
import com.openhis.web.inventorymanage.appservice.IProductDetailAppService;
|
|
||||||
=======
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.openhis.web.inventorymanage.appservice.IProductDetailAppService;
|
import com.openhis.web.inventorymanage.appservice.IProductDetailAppService;
|
||||||
import com.openhis.web.inventorymanage.dto.ProductDetailPageDto;
|
import com.openhis.web.inventorymanage.dto.ProductDetailPageDto;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.web.inventorymanage.dto.ProductDetailSearchParam;
|
import com.openhis.web.inventorymanage.dto.ProductDetailSearchParam;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -59,11 +51,7 @@ public class ProductDetailController {
|
|||||||
* @return 库存商品明细分页列表
|
* @return 库存商品明细分页列表
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/product-page")
|
@GetMapping(value = "/product-page")
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getProductDetailPage(ProductDetailSearchParam productDetailSearchParam,
|
|
||||||
=======
|
|
||||||
public R<Page<ProductDetailPageDto>> getProductDetailPage(ProductDetailSearchParam productDetailSearchParam,
|
public R<Page<ProductDetailPageDto>> getProductDetailPage(ProductDetailSearchParam productDetailSearchParam,
|
||||||
>>>>>>> v1.3
|
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "1000") Integer pageSize,
|
@RequestParam(value = "pageSize", defaultValue = "1000") Integer pageSize,
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||||
@@ -72,8 +60,6 @@ public class ProductDetailController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
* 查询库存商品备份明细分页列表
|
* 查询库存商品备份明细分页列表
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
@@ -93,7 +79,6 @@ public class ProductDetailController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
>>>>>>> v1.3
|
|
||||||
* 查询库存商品明细统计数据
|
* 查询库存商品明细统计数据
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
@@ -108,16 +93,6 @@ public class ProductDetailController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 操作:停供
|
|
||||||
*
|
|
||||||
* @param inventoryId 库存项目管理ID
|
|
||||||
* @return 操作结果
|
|
||||||
*/
|
|
||||||
@PutMapping("/stop-supply")
|
|
||||||
public R<?> stopSupplyById(@RequestBody Long inventoryId) {
|
|
||||||
return productDetailsAppService.stopSupplyById(inventoryId);
|
|
||||||
=======
|
|
||||||
* 查询库存商品备份明细统计数据
|
* 查询库存商品备份明细统计数据
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
@@ -140,52 +115,29 @@ public class ProductDetailController {
|
|||||||
@PutMapping("/stop-supply")
|
@PutMapping("/stop-supply")
|
||||||
public R<?> stopSupplyById(@RequestBody List<Long> inventoryIdList) {
|
public R<?> stopSupplyById(@RequestBody List<Long> inventoryIdList) {
|
||||||
return productDetailsAppService.stopSupplyById(inventoryIdList);
|
return productDetailsAppService.stopSupplyById(inventoryIdList);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 操作:取消停供
|
* 操作:取消停供
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param inventoryId 库存项目管理ID
|
|
||||||
* @return 操作结果
|
|
||||||
*/
|
|
||||||
@PutMapping("/cancel-supply")
|
|
||||||
public R<?> cancelSupplyById(@RequestBody Long inventoryId) {
|
|
||||||
return productDetailsAppService.cancelSupplyById(inventoryId);
|
|
||||||
=======
|
|
||||||
* @param inventoryIdList 库存项目管理ID
|
* @param inventoryIdList 库存项目管理ID
|
||||||
* @return 操作结果
|
* @return 操作结果
|
||||||
*/
|
*/
|
||||||
@PutMapping("/cancel-supply")
|
@PutMapping("/cancel-supply")
|
||||||
public R<?> cancelSupplyById(@RequestBody List<Long> inventoryIdList) {
|
public R<?> cancelSupplyById(@RequestBody List<Long> inventoryIdList) {
|
||||||
return productDetailsAppService.cancelSupplyById(inventoryIdList);
|
return productDetailsAppService.cancelSupplyById(inventoryIdList);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 库存明细表导出
|
* 库存明细表导出
|
||||||
*
|
*
|
||||||
* @param productDetailSearchParam 查询条件
|
* @param productDetailSearchParam 查询条件
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
* @param request 请求数据
|
* @param request 请求数据
|
||||||
* @param response 响应数据
|
* @param response 响应数据
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/excel-out")
|
@GetMapping(value = "/excel-out")
|
||||||
public void makeExcelFile(ProductDetailSearchParam productDetailSearchParam,
|
public void makeExcelFile(ProductDetailSearchParam productDetailSearchParam,
|
||||||
<<<<<<< HEAD
|
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request,
|
|
||||||
HttpServletResponse response) {
|
|
||||||
productDetailsAppService.makeExcelFile(productDetailSearchParam, pageNo, pageSize, searchKey, request,
|
|
||||||
response);
|
|
||||||
=======
|
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request,
|
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request,
|
||||||
HttpServletResponse response) {
|
HttpServletResponse response) {
|
||||||
productDetailsAppService.makeExcelFile(productDetailSearchParam, searchKey, request, response);
|
productDetailsAppService.makeExcelFile(productDetailSearchParam, searchKey, request, response);
|
||||||
@@ -206,6 +158,5 @@ public class ProductDetailController {
|
|||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request,
|
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request,
|
||||||
HttpServletResponse response) {
|
HttpServletResponse response) {
|
||||||
productDetailsAppService.exportExcel(productDetailSearchParam, pageNo, pageSize, searchKey, request, response);
|
productDetailsAppService.exportExcel(productDetailSearchParam, pageNo, pageSize, searchKey, request, response);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,193 +23,265 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class ProductDetailPageDto {
|
public class ProductDetailPageDto {
|
||||||
|
|
||||||
/** 库存项目管理ID(停供用) */
|
/**
|
||||||
|
* 库存项目管理ID(停供用)
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long inventoryId;
|
private Long inventoryId;
|
||||||
|
|
||||||
/** 生产日期 */
|
/**
|
||||||
|
* 生产日期
|
||||||
|
*/
|
||||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||||
@Excel(name = "生产日期", sort = 19, dateFormat = "yyyy-MM-dd")
|
@Excel(name = "生产日期", sort = 19, dateFormat = "yyyy-MM-dd")
|
||||||
private Date productionDate;
|
private Date productionDate;
|
||||||
|
|
||||||
/** 失效日期 */
|
/**
|
||||||
|
* 失效日期
|
||||||
|
*/
|
||||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||||
@Excel(name = "有效期至", sort = 20, dateFormat = "yyyy-MM-dd")
|
@Excel(name = "有效期至", sort = 20, dateFormat = "yyyy-MM-dd")
|
||||||
private Date expirationDate;
|
private Date expirationDate;
|
||||||
|
|
||||||
/** 库存状态 */
|
/**
|
||||||
|
* 库存状态
|
||||||
|
*/
|
||||||
private Integer inventoryStatusEnum;
|
private Integer inventoryStatusEnum;
|
||||||
private String inventoryStatusEnum_enumText;
|
private String inventoryStatusEnum_enumText;
|
||||||
|
|
||||||
/** 仓库 */
|
/**
|
||||||
|
* 仓库
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long locationId;
|
private Long locationId;
|
||||||
|
|
||||||
/** 仓库名称 */
|
/**
|
||||||
|
* 仓库名称
|
||||||
|
*/
|
||||||
@Excel(name = "仓库", sort = 4)
|
@Excel(name = "仓库", sort = 4)
|
||||||
private String locationName;
|
private String locationName;
|
||||||
|
|
||||||
/** 货位 */
|
/**
|
||||||
|
* 货位
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long locationStoreId;
|
private Long locationStoreId;
|
||||||
|
|
||||||
/** 货位名称 */
|
/**
|
||||||
|
* 货位名称
|
||||||
|
*/
|
||||||
@Excel(name = "货位", sort = 22)
|
@Excel(name = "货位", sort = 22)
|
||||||
private String locationStoreName;
|
private String locationStoreName;
|
||||||
|
|
||||||
/** 生产批号 */
|
/**
|
||||||
|
* 生产批号
|
||||||
|
*/
|
||||||
@Excel(name = "生产批号", sort = 7)
|
@Excel(name = "生产批号", sort = 7)
|
||||||
private String lotNumber;
|
private String lotNumber;
|
||||||
|
|
||||||
/** 库存数量 */
|
/**
|
||||||
|
* 库存数量
|
||||||
|
*/
|
||||||
private BigDecimal quantity;
|
private BigDecimal quantity;
|
||||||
@Excel(name = "库存(最小单位)", sort = 9)
|
@Excel(name = "库存(最小单位)", sort = 9)
|
||||||
private String quantity_text;
|
private String quantity_text;
|
||||||
|
|
||||||
/** 包装单位数量(整数部分) */
|
/**
|
||||||
|
* 包装单位数量(整数部分)
|
||||||
|
*/
|
||||||
private BigDecimal number;
|
private BigDecimal number;
|
||||||
@Excel(name = "库存(包装单位)", sort = 8)
|
@Excel(name = "库存(包装单位)", sort = 8)
|
||||||
private String number_text;
|
private String number_text;
|
||||||
|
|
||||||
/** 包装单位数量(余数部分) */
|
/**
|
||||||
|
* 包装单位数量(余数部分)
|
||||||
|
*/
|
||||||
private BigDecimal remainder;
|
private BigDecimal remainder;
|
||||||
|
|
||||||
/** 供应商 */
|
/**
|
||||||
|
* 供应商
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long supplierId;
|
private Long supplierId;
|
||||||
|
|
||||||
/** 供应商名称 */
|
/**
|
||||||
|
* 供应商名称
|
||||||
|
*/
|
||||||
@Excel(name = "供应商", sort = 17)
|
@Excel(name = "供应商", sort = 17)
|
||||||
private String supplierName;
|
private String supplierName;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
/**
|
||||||
=======
|
* 项目id
|
||||||
/** 项目id */
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long itemId;
|
private Long itemId;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
/**
|
||||||
/** 项目名称 */
|
* 项目名称
|
||||||
|
*/
|
||||||
@Excel(name = "项目名称", sort = 2)
|
@Excel(name = "项目名称", sort = 2)
|
||||||
private String itemName;
|
private String itemName;
|
||||||
|
|
||||||
/** 项目名称 */
|
/**
|
||||||
|
* 项目名称
|
||||||
|
*/
|
||||||
private String itemTable;
|
private String itemTable;
|
||||||
|
|
||||||
/** 项目编码 */
|
/**
|
||||||
|
* 项目编码
|
||||||
|
*/
|
||||||
@Excel(name = "药品编码", sort = 1)
|
@Excel(name = "药品编码", sort = 1)
|
||||||
private String busNo;
|
private String busNo;
|
||||||
|
|
||||||
/** 耗材类型 */
|
/**
|
||||||
|
* 耗材类型
|
||||||
|
*/
|
||||||
@Dict(dictCode = "device_category_code")
|
@Dict(dictCode = "device_category_code")
|
||||||
private String devCategoryCode;
|
private String devCategoryCode;
|
||||||
private String devCategoryCode_dictText;
|
private String devCategoryCode_dictText;
|
||||||
private String devCategoryCodeDictText;
|
private String devCategoryCodeDictText;
|
||||||
|
|
||||||
/** 药品类型 */
|
/**
|
||||||
|
* 药品类型
|
||||||
|
*/
|
||||||
@Dict(dictCode = "med_category_code")
|
@Dict(dictCode = "med_category_code")
|
||||||
private String medCategoryCode;
|
private String medCategoryCode;
|
||||||
private String medCategoryCode_dictText;
|
private String medCategoryCode_dictText;
|
||||||
private String medCategoryCodeDictText;
|
private String medCategoryCodeDictText;
|
||||||
|
|
||||||
/** 项目类别 */
|
/**
|
||||||
|
* 项目类别
|
||||||
|
*/
|
||||||
@Excel(name = "项目类别", sort = 3)
|
@Excel(name = "项目类别", sort = 3)
|
||||||
private String CategoryCodeDictText;
|
private String CategoryCodeDictText;
|
||||||
|
|
||||||
/** 医保等级 */
|
/**
|
||||||
|
* 医保等级
|
||||||
|
*/
|
||||||
private Integer chrgitmLv;
|
private Integer chrgitmLv;
|
||||||
@Excel(name = "医保等级", sort = 18)
|
@Excel(name = "医保等级", sort = 18)
|
||||||
private String chrgitmLv_enumText;
|
private String chrgitmLv_enumText;
|
||||||
|
|
||||||
/** 厂家 */
|
/**
|
||||||
|
* 厂家
|
||||||
|
*/
|
||||||
@Excel(name = "厂家/产地", sort = 6)
|
@Excel(name = "厂家/产地", sort = 6)
|
||||||
private String manufacturerText;
|
private String manufacturerText;
|
||||||
|
|
||||||
/** 医保码 */
|
/**
|
||||||
|
* 医保码
|
||||||
|
*/
|
||||||
private String ybNo;
|
private String ybNo;
|
||||||
|
|
||||||
/** 五笔码 */
|
/**
|
||||||
|
* 五笔码
|
||||||
|
*/
|
||||||
private String wbStr;
|
private String wbStr;
|
||||||
|
|
||||||
/** 拼音码 */
|
/**
|
||||||
|
* 拼音码
|
||||||
|
*/
|
||||||
private String pyStr;
|
private String pyStr;
|
||||||
|
|
||||||
/** 包装单位 */
|
/**
|
||||||
|
* 包装单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
private String unitCode_dictText;
|
private String unitCode_dictText;
|
||||||
private String unitCodeDictText;
|
private String unitCodeDictText;
|
||||||
|
|
||||||
/** 库存单位 */
|
/**
|
||||||
|
* 库存单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String minUnitCode;
|
private String minUnitCode;
|
||||||
private String minUnitCode_dictText;
|
private String minUnitCode_dictText;
|
||||||
private String minUnitCodeDictText;
|
private String minUnitCodeDictText;
|
||||||
|
|
||||||
/** 拆零比 */
|
/**
|
||||||
|
* 拆零比
|
||||||
|
*/
|
||||||
@Excel(name = "拆零比", sort = 10, scale = 0)
|
@Excel(name = "拆零比", sort = 10, scale = 0)
|
||||||
private BigDecimal partPercent;
|
private BigDecimal partPercent;
|
||||||
|
|
||||||
/** 批准文号/国药准字 */
|
/**
|
||||||
|
* 批准文号/国药准字
|
||||||
|
*/
|
||||||
@Excel(name = "国药准字", sort = 16)
|
@Excel(name = "国药准字", sort = 16)
|
||||||
private String approvalNumber;
|
private String approvalNumber;
|
||||||
|
|
||||||
/** 剂型 */
|
/**
|
||||||
|
* 剂型
|
||||||
|
*/
|
||||||
@Dict(dictCode = "dose_form_code")
|
@Dict(dictCode = "dose_form_code")
|
||||||
private String doseFormCode;
|
private String doseFormCode;
|
||||||
private String doseFormCode_dictText;
|
private String doseFormCode_dictText;
|
||||||
@Excel(name = "剂型", sort = 15)
|
@Excel(name = "剂型", sort = 15)
|
||||||
private String doseFormCodeDictText;
|
private String doseFormCodeDictText;
|
||||||
|
|
||||||
/** 规格 */
|
/**
|
||||||
|
* 规格
|
||||||
|
*/
|
||||||
@Excel(name = "规格", sort = 5)
|
@Excel(name = "规格", sort = 5)
|
||||||
private String totalVolume;
|
private String totalVolume;
|
||||||
|
|
||||||
/** 零售价 */
|
/**
|
||||||
|
* 零售价
|
||||||
|
*/
|
||||||
private BigDecimal salePrice;
|
private BigDecimal salePrice;
|
||||||
@Excel(name = "零售价", sort = 12)
|
@Excel(name = "零售价", sort = 12)
|
||||||
private String excelSalePrice = "";
|
private String excelSalePrice = "";
|
||||||
|
|
||||||
/** 定价id */
|
/**
|
||||||
|
* 定价id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long chargeItemDefId;
|
private Long chargeItemDefId;
|
||||||
|
|
||||||
/** 进价 */
|
/**
|
||||||
|
* 进价
|
||||||
|
*/
|
||||||
private BigDecimal purchasePrice;
|
private BigDecimal purchasePrice;
|
||||||
@Excel(name = "采购价格", sort = 11)
|
@Excel(name = "采购价格", sort = 11)
|
||||||
private String excelPurchasePrice = "";
|
private String excelPurchasePrice = "";
|
||||||
|
|
||||||
/** 剩余过期天数 */
|
/**
|
||||||
|
* 剩余过期天数
|
||||||
|
*/
|
||||||
@Excel(name = "剩余过期天数", sort = 21)
|
@Excel(name = "剩余过期天数", sort = 21)
|
||||||
private Integer remainingDays;
|
private Integer remainingDays;
|
||||||
|
|
||||||
/** 总零售价 */
|
/**
|
||||||
|
* 总零售价
|
||||||
|
*/
|
||||||
private BigDecimal totalSalePrice;
|
private BigDecimal totalSalePrice;
|
||||||
@Excel(name = "零售价总额", sort = 14)
|
@Excel(name = "零售价总额", sort = 14)
|
||||||
private String excelTotalSalePrice = "";
|
private String excelTotalSalePrice = "";
|
||||||
|
|
||||||
/** 总进价 */
|
/**
|
||||||
|
* 总进价
|
||||||
|
*/
|
||||||
private BigDecimal totalPurchasePrice;
|
private BigDecimal totalPurchasePrice;
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "进价总额", sort = 13, scale = 2)
|
|
||||||
=======
|
|
||||||
@Excel(name = "进价总额", sort = 13)
|
@Excel(name = "进价总额", sort = 13)
|
||||||
>>>>>>> v1.3
|
|
||||||
private String excelTotalPurchasePrice = "";
|
private String excelTotalPurchasePrice = "";
|
||||||
|
|
||||||
/** 售价统计 */
|
/**
|
||||||
|
* 售价统计
|
||||||
|
*/
|
||||||
private BigDecimal salePriceStatistics;
|
private BigDecimal salePriceStatistics;
|
||||||
|
|
||||||
/** 进价统计 */
|
/**
|
||||||
|
* 进价统计
|
||||||
|
*/
|
||||||
private BigDecimal purchasePriceStatistics;
|
private BigDecimal purchasePriceStatistics;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
/**
|
||||||
=======
|
* 备份时间
|
||||||
/** 备份时间 */
|
*/
|
||||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
||||||
private Date backUpDate;
|
private Date backUpDate;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 设置统计金额默认值为零
|
// 设置统计金额默认值为零
|
||||||
public ProductDetailPageDto() {
|
public ProductDetailPageDto() {
|
||||||
this.totalSalePrice = BigDecimal.ZERO;
|
this.totalSalePrice = BigDecimal.ZERO;
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.openhis.web.inventorymanage.dto;
|
package com.openhis.web.inventorymanage.dto;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
>>>>>>> v1.3
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -19,41 +16,53 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class ProductDetailSearchParam {
|
public class ProductDetailSearchParam {
|
||||||
|
|
||||||
/** 剩余过期天数 */
|
/**
|
||||||
|
* 剩余过期天数
|
||||||
|
*/
|
||||||
private Integer remainingDays;
|
private Integer remainingDays;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
/**
|
||||||
/** 项目类型 */
|
* 药品类型
|
||||||
private Integer categoryCode;
|
*/
|
||||||
=======
|
|
||||||
/** 药品类型 */
|
|
||||||
private List<String> medCategoryCodes;
|
private List<String> medCategoryCodes;
|
||||||
|
|
||||||
/** 耗材类型 */
|
/**
|
||||||
|
* 耗材类型
|
||||||
|
*/
|
||||||
private List<String> devCategoryCodes;
|
private List<String> devCategoryCodes;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/** 医保等级 */
|
/**
|
||||||
|
* 医保等级
|
||||||
|
*/
|
||||||
private Integer chrgitmLv;
|
private Integer chrgitmLv;
|
||||||
|
|
||||||
/** 仓库药房列表 */
|
/**
|
||||||
|
* 仓库药房列表
|
||||||
|
*/
|
||||||
private List<Long> locationIds;
|
private List<Long> locationIds;
|
||||||
|
|
||||||
/** 供应商列表 */
|
/**
|
||||||
|
* 供应商列表
|
||||||
|
*/
|
||||||
private List<Long> supplierIds;
|
private List<Long> supplierIds;
|
||||||
|
|
||||||
/** 是否为零 */
|
/**
|
||||||
|
* 是否为零
|
||||||
|
*/
|
||||||
private Integer zeroFlag;
|
private Integer zeroFlag;
|
||||||
|
|
||||||
/** 停用状态 */
|
/**
|
||||||
|
* 停用状态
|
||||||
|
*/
|
||||||
private Integer inventoryStatusEnum;
|
private Integer inventoryStatusEnum;
|
||||||
|
|
||||||
/** 项目所在表 */
|
/**
|
||||||
|
* 项目所在表
|
||||||
|
*/
|
||||||
private String itemTable;
|
private String itemTable;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/** 备份时间 */
|
/**
|
||||||
|
* 备份时间
|
||||||
|
*/
|
||||||
private Date backUpDate;
|
private Date backUpDate;
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,14 +6,9 @@ package com.openhis.web.inventorymanage.dto;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
=======
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import com.core.common.annotation.Excel;
|
import com.core.common.annotation.Excel;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
@@ -21,11 +16,6 @@ import com.openhis.common.annotation.Dict;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
<<<<<<< HEAD
|
|
||||||
import org.apache.poi.hpsf.Decimal;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据分页列表 dto
|
* 单据分页列表 dto
|
||||||
@@ -37,24 +27,34 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class ReceiptPageDto {
|
public class ReceiptPageDto {
|
||||||
|
|
||||||
/** 单据号 */
|
/**
|
||||||
|
* 单据号
|
||||||
|
*/
|
||||||
@Excel(name = "单据号", sort = 1)
|
@Excel(name = "单据号", sort = 1)
|
||||||
private String supplyBusNo;
|
private String supplyBusNo;
|
||||||
|
|
||||||
/** 状态 */
|
/**
|
||||||
|
* 状态
|
||||||
|
*/
|
||||||
private Integer statusEnum;
|
private Integer statusEnum;
|
||||||
// @Excel(name = "审批状态", sort = 2)
|
// @Excel(name = "审批状态", sort = 2)
|
||||||
private String statusEnum_enumText;
|
private String statusEnum_enumText;
|
||||||
|
|
||||||
/** 退货状态 */
|
/**
|
||||||
|
* 退货状态
|
||||||
|
*/
|
||||||
private Integer returnStatus;
|
private Integer returnStatus;
|
||||||
|
|
||||||
/** 类型 */
|
/**
|
||||||
|
* 类型
|
||||||
|
*/
|
||||||
private Integer typeEnum;
|
private Integer typeEnum;
|
||||||
@Excel(name = "单据类型", sort = 3)
|
@Excel(name = "单据类型", sort = 3)
|
||||||
private String typeEnum_enumText;
|
private String typeEnum_enumText;
|
||||||
|
|
||||||
/** 供应商 */
|
/**
|
||||||
|
* 供应商
|
||||||
|
*/
|
||||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_supplier")
|
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_supplier")
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long supplierId;
|
private Long supplierId;
|
||||||
@@ -62,7 +62,9 @@ public class ReceiptPageDto {
|
|||||||
@Excel(name = "供应商", sort = 5)
|
@Excel(name = "供应商", sort = 5)
|
||||||
private String supplierIdDictText;
|
private String supplierIdDictText;
|
||||||
|
|
||||||
/** 目的仓库 */
|
/**
|
||||||
|
* 目的仓库
|
||||||
|
*/
|
||||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_location")
|
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_location")
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long purposeLocationId;
|
private Long purposeLocationId;
|
||||||
@@ -70,16 +72,22 @@ public class ReceiptPageDto {
|
|||||||
@Excel(name = "目的仓库", sort = 6)
|
@Excel(name = "目的仓库", sort = 6)
|
||||||
private String purposeLocationIdDictText;
|
private String purposeLocationIdDictText;
|
||||||
|
|
||||||
/** 目的仓位 */
|
/**
|
||||||
|
* 目的仓位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_location")
|
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_location")
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long purposeLocationStoreId;
|
private Long purposeLocationStoreId;
|
||||||
private String purposeLocationStoreId_dictText;
|
private String purposeLocationStoreId_dictText;
|
||||||
|
|
||||||
/** 盈亏金额 */
|
/**
|
||||||
|
* 盈亏金额
|
||||||
|
*/
|
||||||
private BigDecimal breakevenPrice;
|
private BigDecimal breakevenPrice;
|
||||||
|
|
||||||
/** 经手人 */
|
/**
|
||||||
|
* 经手人
|
||||||
|
*/
|
||||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
|
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long practitionerId;
|
private Long practitionerId;
|
||||||
@@ -87,18 +95,24 @@ public class ReceiptPageDto {
|
|||||||
@Excel(name = "经手人", sort = 4)
|
@Excel(name = "经手人", sort = 4)
|
||||||
private String practitionerIdDictText;
|
private String practitionerIdDictText;
|
||||||
|
|
||||||
/** 审批人 */
|
/**
|
||||||
|
* 审批人
|
||||||
|
*/
|
||||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
|
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
|
||||||
private Long approverId;
|
private Long approverId;
|
||||||
private String approverId_dictText;
|
private String approverId_dictText;
|
||||||
@Excel(name = "审批人", sort = 10)
|
@Excel(name = "审批人", sort = 10)
|
||||||
private String approverIdDictText;
|
private String approverIdDictText;
|
||||||
|
|
||||||
/** 审批时间 */
|
/**
|
||||||
|
* 审批时间
|
||||||
|
*/
|
||||||
@Excel(name = "审批时间", sort = 11, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
@Excel(name = "审批时间", sort = 11, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date approvalTime;
|
private Date approvalTime;
|
||||||
|
|
||||||
/** 申请人 */
|
/**
|
||||||
|
* 申请人
|
||||||
|
*/
|
||||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
|
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long applicantId;
|
private Long applicantId;
|
||||||
@@ -106,38 +120,46 @@ public class ReceiptPageDto {
|
|||||||
@Excel(name = "申请人", sort = 8)
|
@Excel(name = "申请人", sort = 8)
|
||||||
private String applicantIdDictText;
|
private String applicantIdDictText;
|
||||||
|
|
||||||
/** 申请时间 */
|
/**
|
||||||
|
* 申请时间
|
||||||
|
*/
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
// @Excel(name = "申请时间", sort = 9, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
// @Excel(name = "申请时间", sort = 9, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
>>>>>>> v1.3
|
|
||||||
private Date applyTime;
|
private Date applyTime;
|
||||||
|
|
||||||
/** 制单日期 */
|
/**
|
||||||
|
* 制单日期
|
||||||
|
*/
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
// @Excel(name = "申请时间", sort = 9, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
// @Excel(name = "申请时间", sort = 9, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
>>>>>>> v1.3
|
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
/** 备注 */
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
private String remake;
|
private String remake;
|
||||||
|
|
||||||
/** 项目所在表名 */
|
/**
|
||||||
|
* 项目所在表名
|
||||||
|
*/
|
||||||
private String itemTable;
|
private String itemTable;
|
||||||
|
|
||||||
/** 药品类型 */
|
/**
|
||||||
|
* 药品类型
|
||||||
|
*/
|
||||||
private Integer itemType;
|
private Integer itemType;
|
||||||
|
|
||||||
/** 目的仓库类型 */
|
/**
|
||||||
|
* 目的仓库类型
|
||||||
|
*/
|
||||||
private Integer purposeTypeEnum;
|
private Integer purposeTypeEnum;
|
||||||
private String purposeTypeEnum_enumText;
|
private String purposeTypeEnum_enumText;
|
||||||
|
|
||||||
/** 追溯码 */
|
/**
|
||||||
|
* 追溯码
|
||||||
|
*/
|
||||||
private String traceNo;
|
private String traceNo;
|
||||||
/**
|
/**
|
||||||
* 24、药品
|
* 24、药品
|
||||||
@@ -148,12 +170,8 @@ public class ReceiptPageDto {
|
|||||||
/*
|
/*
|
||||||
* 总金额
|
* 总金额
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
private BigDecimal totalAmount;
|
|
||||||
=======
|
|
||||||
@Excel(name = "总金额", sort = 7, scale = 2)
|
@Excel(name = "总金额", sort = 7, scale = 2)
|
||||||
private BigDecimal totalAmount;
|
private BigDecimal totalAmount;
|
||||||
private String totalAmountText;
|
private String totalAmountText;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,10 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.openhis.web.adjustprice.dto.ChangePricePageDto;
|
import com.openhis.web.adjustprice.dto.ChangePricePageDto;
|
||||||
import com.openhis.web.inventorymanage.dto.ReceiptApprovalSearchParam;
|
import com.openhis.web.inventorymanage.dto.ReceiptApprovalSearchParam;
|
||||||
import com.openhis.web.inventorymanage.dto.ReceiptPageDto;
|
import com.openhis.web.inventorymanage.dto.ReceiptPageDto;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ClassName AdjustPriceMapper
|
* @ClassName AdjustPriceMapper
|
||||||
@@ -20,13 +17,11 @@ import org.springframework.stereotype.Repository;
|
|||||||
* @Author raymond
|
* @Author raymond
|
||||||
* @Date 2025/10/23 14:41
|
* @Date 2025/10/23 14:41
|
||||||
* @Version 1.0
|
* @Version 1.0
|
||||||
**/
|
*
|
||||||
<<<<<<< HEAD
|
*/
|
||||||
@Component
|
|
||||||
=======
|
|
||||||
@Repository
|
@Repository
|
||||||
>>>>>>> v1.3
|
|
||||||
public interface InventoryAdjustPriceMapper {
|
public interface InventoryAdjustPriceMapper {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询单据审批分页列表
|
* 查询单据审批分页列表
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -3,11 +3,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.openhis.web.inventorymanage.mapper;
|
package com.openhis.web.inventorymanage.mapper;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@@ -40,29 +37,16 @@ public interface ProductDetailAppMapper {
|
|||||||
@Param(Constants.WRAPPER) QueryWrapper<ProductDetailSearchParam> queryWrapper,
|
@Param(Constants.WRAPPER) QueryWrapper<ProductDetailSearchParam> queryWrapper,
|
||||||
@Param("medMedicationDefinition") String medMedicationDefinition,
|
@Param("medMedicationDefinition") String medMedicationDefinition,
|
||||||
@Param("admDeviceDefinition") String admDeviceDefinition, @Param("lotNumberCost") String lotNumberCost);
|
@Param("admDeviceDefinition") String admDeviceDefinition, @Param("lotNumberCost") String lotNumberCost);
|
||||||
<<<<<<< HEAD
|
|
||||||
/**
|
|
||||||
* 查询库存商品明细分页列表,联查数据字典
|
|
||||||
*
|
|
||||||
* @param page 分页
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询库存商品明细分页列表,联查数据字典翻译单位字段
|
* 查询库存商品明细分页列表,联查数据字典翻译单位字段
|
||||||
*
|
*
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param queryWrapper 查询条件
|
* @param queryWrapper 查询条件
|
||||||
* @param medMedicationDefinition 药品
|
* @param medMedicationDefinition 药品
|
||||||
* @param admDeviceDefinition 耗材
|
* @param admDeviceDefinition 耗材
|
||||||
* @param lotNumberCost 批号进价
|
* @param lotNumberCost 批号进价
|
||||||
* @return 库存商品明细分页列表
|
* @return 库存商品明细分页列表
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
Page<ProductDetailPageDto> selectProductDetailsPageX(@Param("page") Page<ProductDetailPageDto> page,
|
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<ProductDetailSearchParam> queryWrapper,
|
|
||||||
@Param("medMedicationDefinition") String medMedicationDefinition,
|
|
||||||
@Param("admDeviceDefinition") String admDeviceDefinition, @Param("lotNumberCost") String lotNumberCost);
|
|
||||||
=======
|
|
||||||
List<ProductDetailPageDto> getProductDetailPageAndTranslateField(
|
List<ProductDetailPageDto> getProductDetailPageAndTranslateField(
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<ProductDetailSearchParam> queryWrapper,
|
@Param(Constants.WRAPPER) QueryWrapper<ProductDetailSearchParam> queryWrapper,
|
||||||
@Param("medMedicationDefinition") String medMedicationDefinition,
|
@Param("medMedicationDefinition") String medMedicationDefinition,
|
||||||
@@ -77,5 +61,4 @@ public interface ProductDetailAppMapper {
|
|||||||
*/
|
*/
|
||||||
Page<ProductDetailPageDto> selectProductDetailsBackupPage(@Param("page") Page<ProductDetailPageDto> page,
|
Page<ProductDetailPageDto> selectProductDetailsBackupPage(@Param("page") Page<ProductDetailPageDto> page,
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<ProductDetailSearchParam> queryWrapper);
|
@Param(Constants.WRAPPER) QueryWrapper<ProductDetailSearchParam> queryWrapper);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,13 +74,10 @@ public interface IGfStudentListAppService {
|
|||||||
* @param response 响应
|
* @param response 响应
|
||||||
*/
|
*/
|
||||||
void importTemplate(HttpServletResponse response);
|
void importTemplate(HttpServletResponse response);
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* peis数据同步
|
* peis数据同步
|
||||||
*/
|
*/
|
||||||
R<?> synPeis();
|
R<?> synPeis();
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,7 @@ import java.math.RoundingMode;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import com.core.common.enums.DelFlag;
|
import com.core.common.enums.DelFlag;
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -19,10 +16,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.enums.DeleteFlag;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.core.common.utils.AssignSeqUtil;
|
import com.core.common.utils.AssignSeqUtil;
|
||||||
import com.core.common.utils.DateUtils;
|
import com.core.common.utils.DateUtils;
|
||||||
import com.core.common.utils.SecurityUtils;
|
import com.core.common.utils.SecurityUtils;
|
||||||
@@ -125,36 +118,36 @@ public class GfRatioApplicationRecordAppServiceImpl implements IGfRatioApplicati
|
|||||||
String ybNo = null;
|
String ybNo = null;
|
||||||
if (GfItemType.MEDICATION.getValue().equals(gfRatioApplication.getItemType())) {
|
if (GfItemType.MEDICATION.getValue().equals(gfRatioApplication.getItemType())) {
|
||||||
// 如果是药品,获取并设置药品定义信息
|
// 如果是药品,获取并设置药品定义信息
|
||||||
MedicationDefinition medicationDefinition =
|
MedicationDefinition medicationDefinition
|
||||||
medicationDefinitionService.getById(gfRatioApplication.getDefinitionId());
|
= medicationDefinitionService.getById(gfRatioApplication.getDefinitionId());
|
||||||
if (medicationDefinition != null) {
|
if (medicationDefinition != null) {
|
||||||
gfRatioApplicationRecordDto.setBusNo(medicationDefinition.getBusNo())
|
gfRatioApplicationRecordDto.setBusNo(medicationDefinition.getBusNo())
|
||||||
.setName(medicationDefinition.getName()).setYbNo(medicationDefinition.getYbNo())
|
.setName(medicationDefinition.getName()).setYbNo(medicationDefinition.getYbNo())
|
||||||
// 公费项目分类:药品
|
// 公费项目分类:药品
|
||||||
.setItemTypeName(GfItemType.MEDICATION.getInfo());
|
.setItemTypeName(GfItemType.MEDICATION.getInfo());
|
||||||
chrgitmLv =
|
chrgitmLv
|
||||||
Optional.of(medicationDefinition.getChrgitmLv()).orElse(YbChrgitmLv.SELF_PAY.getValue()).toString();
|
= Optional.of(medicationDefinition.getChrgitmLv()).orElse(YbChrgitmLv.SELF_PAY.getValue()).toString();
|
||||||
ybNo = medicationDefinition.getYbNo();
|
ybNo = medicationDefinition.getYbNo();
|
||||||
}
|
}
|
||||||
} else if (GfItemType.ACTIVITY.getValue().equals(gfRatioApplication.getItemType())) {
|
} else if (GfItemType.ACTIVITY.getValue().equals(gfRatioApplication.getItemType())) {
|
||||||
// 如果是诊疗,获取并设置诊疗定义信息
|
// 如果是诊疗,获取并设置诊疗定义信息
|
||||||
ActivityDefinition activityDefinition =
|
ActivityDefinition activityDefinition
|
||||||
activityDefinitionService.getById(gfRatioApplication.getDefinitionId());
|
= activityDefinitionService.getById(gfRatioApplication.getDefinitionId());
|
||||||
if (activityDefinition != null) {
|
if (activityDefinition != null) {
|
||||||
gfRatioApplicationRecordDto.setBusNo(activityDefinition.getBusNo())
|
gfRatioApplicationRecordDto.setBusNo(activityDefinition.getBusNo())
|
||||||
.setName(activityDefinition.getName()).setYbNo(activityDefinition.getYbNo())
|
.setName(activityDefinition.getName()).setYbNo(activityDefinition.getYbNo())
|
||||||
// 公费项目分类:诊疗
|
// 公费项目分类:诊疗
|
||||||
.setItemTypeName(GfItemType.ACTIVITY.getInfo());
|
.setItemTypeName(GfItemType.ACTIVITY.getInfo());
|
||||||
chrgitmLv =
|
chrgitmLv
|
||||||
Optional.of(activityDefinition.getChrgitmLv()).orElse(YbChrgitmLv.SELF_PAY.getValue()).toString();
|
= Optional.of(activityDefinition.getChrgitmLv()).orElse(YbChrgitmLv.SELF_PAY.getValue()).toString();
|
||||||
ybNo = activityDefinition.getYbNo();
|
ybNo = activityDefinition.getYbNo();
|
||||||
}
|
}
|
||||||
defTableName = CommonConstants.TableName.WOR_ACTIVITY_DEFINITION;
|
defTableName = CommonConstants.TableName.WOR_ACTIVITY_DEFINITION;
|
||||||
}
|
}
|
||||||
YbChrgitmLv ybChrgitmLv = YbChrgitmLv.getByCode(chrgitmLv);
|
YbChrgitmLv ybChrgitmLv = YbChrgitmLv.getByCode(chrgitmLv);
|
||||||
// 查询原支付比例
|
// 查询原支付比例
|
||||||
Pair<Pair<BigDecimal, BigDecimal>, BigDecimal> oldRatiosAndPrice =
|
Pair<Pair<BigDecimal, BigDecimal>, BigDecimal> oldRatiosAndPrice
|
||||||
this.getOldRatiosAndPrice(gfRatioApplication.getDefinitionId(), defTableName, chrgitmLv);
|
= this.getOldRatiosAndPrice(gfRatioApplication.getDefinitionId(), defTableName, chrgitmLv);
|
||||||
// Dto赋值返回
|
// Dto赋值返回
|
||||||
gfRatioApplicationRecordDto.setId(gfRatioApplication.getId()).setApplicationNo(gfRatioApplication.getBusNo())
|
gfRatioApplicationRecordDto.setId(gfRatioApplication.getId()).setApplicationNo(gfRatioApplication.getBusNo())
|
||||||
.setItemType(gfRatioApplication.getItemType())
|
.setItemType(gfRatioApplication.getItemType())
|
||||||
@@ -201,11 +194,7 @@ public class GfRatioApplicationRecordAppServiceImpl implements IGfRatioApplicati
|
|||||||
// 查询指定项目现行比例
|
// 查询指定项目现行比例
|
||||||
List<GfRatio> gfRatioList = gfRatioService.list(new LambdaQueryWrapper<GfRatio>()
|
List<GfRatio> gfRatioList = gfRatioService.list(new LambdaQueryWrapper<GfRatio>()
|
||||||
.eq(GfRatio::getDefinitionId, gfRatioApplicationRecordDto.getDefinitionId())
|
.eq(GfRatio::getDefinitionId, gfRatioApplicationRecordDto.getDefinitionId())
|
||||||
<<<<<<< HEAD
|
|
||||||
.eq(GfRatio::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode()));
|
|
||||||
=======
|
|
||||||
.eq(GfRatio::getDeleteFlag, DelFlag.NO.getCode()));
|
.eq(GfRatio::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
>>>>>>> v1.3
|
|
||||||
// 验证时间是否重叠
|
// 验证时间是否重叠
|
||||||
if (!gfRatioList.isEmpty()) {
|
if (!gfRatioList.isEmpty()) {
|
||||||
for (GfRatio r : gfRatioList) {
|
for (GfRatio r : gfRatioList) {
|
||||||
@@ -469,8 +458,8 @@ public class GfRatioApplicationRecordAppServiceImpl implements IGfRatioApplicati
|
|||||||
return R.ok(Collections.emptyList());
|
return R.ok(Collections.emptyList());
|
||||||
}
|
}
|
||||||
// 查询要打印的申请单
|
// 查询要打印的申请单
|
||||||
List<GfRatioApplication> applicationList =
|
List<GfRatioApplication> applicationList
|
||||||
gfRatioApplicationService.list(new LambdaQueryWrapper<GfRatioApplication>()
|
= gfRatioApplicationService.list(new LambdaQueryWrapper<GfRatioApplication>()
|
||||||
.in(GfRatioApplication::getId, idList).orderByDesc(GfRatioApplication::getId));
|
.in(GfRatioApplication::getId, idList).orderByDesc(GfRatioApplication::getId));
|
||||||
if (applicationList.isEmpty()) {
|
if (applicationList.isEmpty()) {
|
||||||
return R.ok(Collections.emptyList());
|
return R.ok(Collections.emptyList());
|
||||||
@@ -485,8 +474,8 @@ public class GfRatioApplicationRecordAppServiceImpl implements IGfRatioApplicati
|
|||||||
String defTableName = CommonConstants.TableName.MED_MEDICATION_DEFINITION;
|
String defTableName = CommonConstants.TableName.MED_MEDICATION_DEFINITION;
|
||||||
if (GfItemType.MEDICATION.getValue().equals(application.getItemType())) {
|
if (GfItemType.MEDICATION.getValue().equals(application.getItemType())) {
|
||||||
// 获取药品名称和医保等级
|
// 获取药品名称和医保等级
|
||||||
MedicationDefinition medicationDefinition =
|
MedicationDefinition medicationDefinition
|
||||||
medicationDefinitionService.getById(application.getDefinitionId());
|
= medicationDefinitionService.getById(application.getDefinitionId());
|
||||||
if (medicationDefinition != null) {
|
if (medicationDefinition != null) {
|
||||||
itemName = medicationDefinition.getName();
|
itemName = medicationDefinition.getName();
|
||||||
ybLv = Optional.of(medicationDefinition.getChrgitmLv()).orElse(YbChrgitmLv.SELF_PAY.getValue())
|
ybLv = Optional.of(medicationDefinition.getChrgitmLv()).orElse(YbChrgitmLv.SELF_PAY.getValue())
|
||||||
@@ -494,8 +483,8 @@ public class GfRatioApplicationRecordAppServiceImpl implements IGfRatioApplicati
|
|||||||
}
|
}
|
||||||
} else if (GfItemType.ACTIVITY.getValue().equals(application.getItemType())) {
|
} else if (GfItemType.ACTIVITY.getValue().equals(application.getItemType())) {
|
||||||
// 获取诊疗名称和医保等级
|
// 获取诊疗名称和医保等级
|
||||||
ActivityDefinition activityDefinition =
|
ActivityDefinition activityDefinition
|
||||||
activityDefinitionService.getById(application.getDefinitionId());
|
= activityDefinitionService.getById(application.getDefinitionId());
|
||||||
if (activityDefinition != null) {
|
if (activityDefinition != null) {
|
||||||
itemName = activityDefinition.getName();
|
itemName = activityDefinition.getName();
|
||||||
ybLv = Optional.of(activityDefinition.getChrgitmLv()).orElse(YbChrgitmLv.SELF_PAY.getValue())
|
ybLv = Optional.of(activityDefinition.getChrgitmLv()).orElse(YbChrgitmLv.SELF_PAY.getValue())
|
||||||
@@ -505,8 +494,8 @@ public class GfRatioApplicationRecordAppServiceImpl implements IGfRatioApplicati
|
|||||||
}
|
}
|
||||||
YbChrgitmLv ybChrgitmLv = YbChrgitmLv.getByCode(ybLv);
|
YbChrgitmLv ybChrgitmLv = YbChrgitmLv.getByCode(ybLv);
|
||||||
// 查询原支付比例和价格(包括二次比例)
|
// 查询原支付比例和价格(包括二次比例)
|
||||||
Pair<Pair<BigDecimal, BigDecimal>, BigDecimal> oldRatiosAndPrice =
|
Pair<Pair<BigDecimal, BigDecimal>, BigDecimal> oldRatiosAndPrice
|
||||||
this.getOldRatiosAndPrice(application.getDefinitionId(), defTableName, ybLv);
|
= this.getOldRatiosAndPrice(application.getDefinitionId(), defTableName, ybLv);
|
||||||
BigDecimal oldRatio = oldRatiosAndPrice.getLeft().getLeft();
|
BigDecimal oldRatio = oldRatiosAndPrice.getLeft().getLeft();
|
||||||
BigDecimal oldTwiceRatio = oldRatiosAndPrice.getLeft().getRight();
|
BigDecimal oldTwiceRatio = oldRatiosAndPrice.getLeft().getRight();
|
||||||
BigDecimal totalPrice = oldRatiosAndPrice.getRight();
|
BigDecimal totalPrice = oldRatiosAndPrice.getRight();
|
||||||
@@ -559,23 +548,15 @@ public class GfRatioApplicationRecordAppServiceImpl implements IGfRatioApplicati
|
|||||||
List<GfRatio> typeRatioList = gfRatioService
|
List<GfRatio> typeRatioList = gfRatioService
|
||||||
.list(new LambdaQueryWrapper<GfRatio>().eq(GfRatio::getRatioType, GfRatioType.TYPE_RATIO.getValue())
|
.list(new LambdaQueryWrapper<GfRatio>().eq(GfRatio::getRatioType, GfRatioType.TYPE_RATIO.getValue())
|
||||||
.eq(GfRatio::getYbClass, chargeItemDefinitionList.get(0).getYbType()).eq(GfRatio::getYbLv, ybLv)
|
.eq(GfRatio::getYbClass, chargeItemDefinitionList.get(0).getYbType()).eq(GfRatio::getYbLv, ybLv)
|
||||||
<<<<<<< HEAD
|
|
||||||
.eq(GfRatio::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode()));
|
|
||||||
=======
|
|
||||||
.eq(GfRatio::getDeleteFlag, DelFlag.NO.getCode()));
|
.eq(GfRatio::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
>>>>>>> v1.3
|
|
||||||
if (!typeRatioList.isEmpty()) {
|
if (!typeRatioList.isEmpty()) {
|
||||||
oldRatio = typeRatioList.get(0).getSelfRatio();
|
oldRatio = typeRatioList.get(0).getSelfRatio();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 查询历史小项比例
|
// 查询历史小项比例
|
||||||
List<GfRatio> historicalRatioList =
|
List<GfRatio> historicalRatioList
|
||||||
gfRatioService.list(new LambdaQueryWrapper<GfRatio>().eq(GfRatio::getDefinitionId, definitionId)
|
= gfRatioService.list(new LambdaQueryWrapper<GfRatio>().eq(GfRatio::getDefinitionId, definitionId)
|
||||||
<<<<<<< HEAD
|
|
||||||
.eq(GfRatio::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode()).orderByDesc(GfRatio::getId));
|
|
||||||
=======
|
|
||||||
.eq(GfRatio::getDeleteFlag, DelFlag.NO.getCode()).orderByDesc(GfRatio::getId));
|
.eq(GfRatio::getDeleteFlag, DelFlag.NO.getCode()).orderByDesc(GfRatio::getId));
|
||||||
>>>>>>> v1.3
|
|
||||||
BigDecimal oldTwiceRatio = null;
|
BigDecimal oldTwiceRatio = null;
|
||||||
if (!historicalRatioList.isEmpty()) {
|
if (!historicalRatioList.isEmpty()) {
|
||||||
GfRatio latestRatio = historicalRatioList.get(0);
|
GfRatio latestRatio = historicalRatioList.get(0);
|
||||||
|
|||||||
@@ -12,11 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.enums.DeleteFlag;
|
|
||||||
=======
|
|
||||||
import com.core.common.enums.DelFlag;
|
import com.core.common.enums.DelFlag;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.common.enums.GfItemType;
|
import com.openhis.common.enums.GfItemType;
|
||||||
import com.openhis.common.enums.GfRatioType;
|
import com.openhis.common.enums.GfRatioType;
|
||||||
import com.openhis.common.enums.ybenums.YbChrgitmLv;
|
import com.openhis.common.enums.ybenums.YbChrgitmLv;
|
||||||
@@ -63,14 +59,10 @@ public class GfRatioManageAppServiceImpl implements IGfRatioManageAppService {
|
|||||||
// 查询DB中的所有大项比例
|
// 查询DB中的所有大项比例
|
||||||
List<GfRatio> gfRatioList = gfRatioService
|
List<GfRatio> gfRatioList = gfRatioService
|
||||||
.list(new LambdaQueryWrapper<GfRatio>().eq(GfRatio::getRatioType, GfRatioType.TYPE_RATIO.getValue())
|
.list(new LambdaQueryWrapper<GfRatio>().eq(GfRatio::getRatioType, GfRatioType.TYPE_RATIO.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.eq(GfRatio::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode()));
|
|
||||||
=======
|
|
||||||
.eq(GfRatio::getDeleteFlag, DelFlag.NO.getCode()));
|
.eq(GfRatio::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
>>>>>>> v1.3
|
|
||||||
// 做成医保分项+医保等级拼接的Map
|
// 做成医保分项+医保等级拼接的Map
|
||||||
Map<String, GfRatio> gfRatioMap =
|
Map<String, GfRatio> gfRatioMap
|
||||||
gfRatioList.stream().collect(Collectors.toMap(e -> e.getYbClass() + e.getYbLv(), Function.identity()));
|
= gfRatioList.stream().collect(Collectors.toMap(e -> e.getYbClass() + e.getYbLv(), Function.identity()));
|
||||||
// 遍历输入项
|
// 遍历输入项
|
||||||
List<GfRatio> addGfRatioList = new ArrayList<>();
|
List<GfRatio> addGfRatioList = new ArrayList<>();
|
||||||
List<GfRatio> editGfRatioList = new ArrayList<>();
|
List<GfRatio> editGfRatioList = new ArrayList<>();
|
||||||
@@ -116,8 +108,8 @@ public class GfRatioManageAppServiceImpl implements IGfRatioManageAppService {
|
|||||||
QueryWrapper<GfIndividualRatioDto> queryWrapper = HisQueryUtils.buildQueryWrapper(searchParam, searchKey,
|
QueryWrapper<GfIndividualRatioDto> queryWrapper = HisQueryUtils.buildQueryWrapper(searchParam, searchKey,
|
||||||
new HashSet<>(Set.of("bus_no", "name", "py_str", "wb_str", "yb_no")), null);
|
new HashSet<>(Set.of("bus_no", "name", "py_str", "wb_str", "yb_no")), null);
|
||||||
// 查询单项比例分页
|
// 查询单项比例分页
|
||||||
IPage<GfIndividualRatioDto> page =
|
IPage<GfIndividualRatioDto> page
|
||||||
gfRatioManageAppMapper.selectGfIndividualRatioPage(new Page<>(pageNo, pageSize), queryWrapper);
|
= gfRatioManageAppMapper.selectGfIndividualRatioPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||||
// 设置公费项目分类名称
|
// 设置公费项目分类名称
|
||||||
for (GfIndividualRatioDto dto : page.getRecords()) {
|
for (GfIndividualRatioDto dto : page.getRecords()) {
|
||||||
dto.setItemTypeName(GfItemType.getByValue(dto.getItemType()).getInfo());
|
dto.setItemTypeName(GfItemType.getByValue(dto.getItemType()).getInfo());
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
package com.openhis.web.nenu.appservice.impl;
|
package com.openhis.web.nenu.appservice.impl;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import java.time.format.DateTimeParseException;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
=======
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.format.DateTimeParseException;
|
import java.time.format.DateTimeParseException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -34,7 +26,6 @@ import org.apache.http.entity.StringEntity;
|
|||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.impl.client.HttpClients;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
@@ -45,11 +36,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.enums.DeleteFlag;
|
|
||||||
=======
|
|
||||||
import com.core.common.enums.DelFlag;
|
import com.core.common.enums.DelFlag;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.core.common.utils.*;
|
import com.core.common.utils.*;
|
||||||
import com.core.common.utils.poi.ExcelUtil;
|
import com.core.common.utils.poi.ExcelUtil;
|
||||||
import com.openhis.administration.domain.Patient;
|
import com.openhis.administration.domain.Patient;
|
||||||
@@ -101,8 +88,8 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
QueryWrapper<GfStudentListDto> queryWrapper = HisQueryUtils.buildQueryWrapper(searchParam, searchKey,
|
QueryWrapper<GfStudentListDto> queryWrapper = HisQueryUtils.buildQueryWrapper(searchParam, searchKey,
|
||||||
new HashSet<>(Set.of("name", "py_str", "wb_str", "student_id", "id_number")), null);
|
new HashSet<>(Set.of("name", "py_str", "wb_str", "student_id", "id_number")), null);
|
||||||
// 查询学生名单分页
|
// 查询学生名单分页
|
||||||
IPage<GfStudentListDto> page =
|
IPage<GfStudentListDto> page
|
||||||
gfStudentListAppMapper.selectGfStudentListPage(new Page<>(pageNo, pageSize), queryWrapper);
|
= gfStudentListAppMapper.selectGfStudentListPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||||
return R.ok(page);
|
return R.ok(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,22 +131,14 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
// 学号重复验证
|
// 学号重复验证
|
||||||
List<PatientStudent> sameStudentIdStudents = patientStudentService.list(
|
List<PatientStudent> sameStudentIdStudents = patientStudentService.list(
|
||||||
new LambdaQueryWrapper<PatientStudent>().eq(PatientStudent::getStudentId, gfStudentListDto.getStudentId())
|
new LambdaQueryWrapper<PatientStudent>().eq(PatientStudent::getStudentId, gfStudentListDto.getStudentId())
|
||||||
<<<<<<< HEAD
|
|
||||||
.eq(PatientStudent::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode()));
|
|
||||||
=======
|
|
||||||
.eq(PatientStudent::getDeleteFlag, DelFlag.NO.getCode()));
|
.eq(PatientStudent::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
>>>>>>> v1.3
|
|
||||||
if (!sameStudentIdStudents.isEmpty()) {
|
if (!sameStudentIdStudents.isEmpty()) {
|
||||||
return R.fail("学号" + gfStudentListDto.getStudentId() + "在系统中已存在");
|
return R.fail("学号" + gfStudentListDto.getStudentId() + "在系统中已存在");
|
||||||
}
|
}
|
||||||
// 学生信息重复校验
|
// 学生信息重复校验
|
||||||
List<PatientStudent> sameIdNumberStudents = patientStudentService.list(
|
List<PatientStudent> sameIdNumberStudents = patientStudentService.list(
|
||||||
new LambdaQueryWrapper<PatientStudent>().eq(PatientStudent::getIdNumber, gfStudentListDto.getIdNumber())
|
new LambdaQueryWrapper<PatientStudent>().eq(PatientStudent::getIdNumber, gfStudentListDto.getIdNumber())
|
||||||
<<<<<<< HEAD
|
|
||||||
.eq(PatientStudent::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode()));
|
|
||||||
=======
|
|
||||||
.eq(PatientStudent::getDeleteFlag, DelFlag.NO.getCode()));
|
.eq(PatientStudent::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
>>>>>>> v1.3
|
|
||||||
Long existingPatientId = null;
|
Long existingPatientId = null;
|
||||||
if (!sameIdNumberStudents.isEmpty()) {
|
if (!sameIdNumberStudents.isEmpty()) {
|
||||||
for (PatientStudent ps : sameIdNumberStudents) {
|
for (PatientStudent ps : sameIdNumberStudents) {
|
||||||
@@ -186,18 +165,14 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
// 判断患者信息是否有重复
|
// 判断患者信息是否有重复
|
||||||
List<Patient> sameIdNumberPatients = patientService
|
List<Patient> sameIdNumberPatients = patientService
|
||||||
.list(new LambdaQueryWrapper<Patient>().eq(Patient::getIdCard, gfStudentListDto.getIdNumber())
|
.list(new LambdaQueryWrapper<Patient>().eq(Patient::getIdCard, gfStudentListDto.getIdNumber())
|
||||||
<<<<<<< HEAD
|
|
||||||
.eq(Patient::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode()));
|
|
||||||
=======
|
|
||||||
.eq(Patient::getDeleteFlag, DelFlag.NO.getCode()));
|
.eq(Patient::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
>>>>>>> v1.3
|
|
||||||
if (!sameIdNumberPatients.isEmpty()) {
|
if (!sameIdNumberPatients.isEmpty()) {
|
||||||
// 已存在则取存在的
|
// 已存在则取存在的
|
||||||
existingPatientId = sameIdNumberPatients.get(0).getId();
|
existingPatientId = sameIdNumberPatients.get(0).getId();
|
||||||
} else {
|
} else {
|
||||||
// 不存在则新建患者
|
// 不存在则新建患者
|
||||||
Patient patient =
|
Patient patient
|
||||||
new Patient().setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.PATIENT_NUM.getPrefix(), 10))
|
= new Patient().setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.PATIENT_NUM.getPrefix(), 10))
|
||||||
.setName(gfStudentListDto.getName()).setGenderEnum(gfStudentListDto.getGender())
|
.setName(gfStudentListDto.getName()).setGenderEnum(gfStudentListDto.getGender())
|
||||||
.setBirthDate(birthDate).setPhone(gfStudentListDto.getPhone())
|
.setBirthDate(birthDate).setPhone(gfStudentListDto.getPhone())
|
||||||
.setIdCard(gfStudentListDto.getIdNumber()).setPyStr(pyStr).setWbStr(wbStr)
|
.setIdCard(gfStudentListDto.getIdNumber()).setPyStr(pyStr).setWbStr(wbStr)
|
||||||
@@ -283,11 +258,7 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
@Override
|
@Override
|
||||||
public R<?> delete(Long id) {
|
public R<?> delete(Long id) {
|
||||||
patientStudentService.update(new LambdaUpdateWrapper<PatientStudent>()
|
patientStudentService.update(new LambdaUpdateWrapper<PatientStudent>()
|
||||||
<<<<<<< HEAD
|
|
||||||
.set(PatientStudent::getDeleteFlag, DeleteFlag.DELETED.getCode()).eq(PatientStudent::getId, id));
|
|
||||||
=======
|
|
||||||
.set(PatientStudent::getDeleteFlag, DelFlag.YES.getCode()).eq(PatientStudent::getId, id));
|
.set(PatientStudent::getDeleteFlag, DelFlag.YES.getCode()).eq(PatientStudent::getId, id));
|
||||||
>>>>>>> v1.3
|
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,8 +271,8 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
@Override
|
@Override
|
||||||
public R<?> importData(MultipartFile file) {
|
public R<?> importData(MultipartFile file) {
|
||||||
// 读取文件
|
// 读取文件
|
||||||
R<List<GfStudentListImportDto>> readResult =
|
R<List<GfStudentListImportDto>> readResult
|
||||||
CommonUtil.readImportedExcelFile(file, GfStudentListImportDto.class);
|
= CommonUtil.readImportedExcelFile(file, GfStudentListImportDto.class);
|
||||||
if (R.SUCCESS != readResult.getCode()) {
|
if (R.SUCCESS != readResult.getCode()) {
|
||||||
return readResult;
|
return readResult;
|
||||||
}
|
}
|
||||||
@@ -327,8 +298,8 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
String wbStr = ChineseConvertUtils.toWBFirstLetter(importDto.getName());
|
String wbStr = ChineseConvertUtils.toWBFirstLetter(importDto.getName());
|
||||||
// 患者未创建时,创建患者
|
// 患者未创建时,创建患者
|
||||||
if (importDto.getPatientId() == null) {
|
if (importDto.getPatientId() == null) {
|
||||||
Patient patient =
|
Patient patient
|
||||||
new Patient().setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.PATIENT_NUM.getPrefix(), 10))
|
= new Patient().setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.PATIENT_NUM.getPrefix(), 10))
|
||||||
.setName(importDto.getName()).setGenderEnum(CommonUtil.tryParseInt(importDto.getGender()))
|
.setName(importDto.getName()).setGenderEnum(CommonUtil.tryParseInt(importDto.getGender()))
|
||||||
.setBirthDate(birthDate).setPhone(importDto.getPhone()).setIdCard(importDto.getIdNumber())
|
.setBirthDate(birthDate).setPhone(importDto.getPhone()).setIdCard(importDto.getIdNumber())
|
||||||
.setPyStr(pyStr).setWbStr(wbStr).setOrganizationId(orgId);
|
.setPyStr(pyStr).setWbStr(wbStr).setOrganizationId(orgId);
|
||||||
@@ -439,8 +410,8 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
}
|
}
|
||||||
// 重复校验(文件行重复)
|
// 重复校验(文件行重复)
|
||||||
List<String> lineRepeatedValidateMsgList = new ArrayList<>();
|
List<String> lineRepeatedValidateMsgList = new ArrayList<>();
|
||||||
Map<String, List<GfStudentListImportDto>> fileSameStudentIdMap =
|
Map<String, List<GfStudentListImportDto>> fileSameStudentIdMap
|
||||||
importDtoList.stream().collect(Collectors.groupingBy(GfStudentListImportDto::getStudentId));
|
= importDtoList.stream().collect(Collectors.groupingBy(GfStudentListImportDto::getStudentId));
|
||||||
for (Map.Entry<String, List<GfStudentListImportDto>> entry : fileSameStudentIdMap.entrySet()) {
|
for (Map.Entry<String, List<GfStudentListImportDto>> entry : fileSameStudentIdMap.entrySet()) {
|
||||||
if (entry.getValue().size() > 1) {
|
if (entry.getValue().size() > 1) {
|
||||||
lineRepeatedValidateMsgList
|
lineRepeatedValidateMsgList
|
||||||
@@ -448,8 +419,8 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
.map(Object::toString).collect(Collectors.joining(",")) + "行的学号重复;");
|
.map(Object::toString).collect(Collectors.joining(",")) + "行的学号重复;");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Map<String, List<GfStudentListImportDto>> fileSameIdNumberMap =
|
Map<String, List<GfStudentListImportDto>> fileSameIdNumberMap
|
||||||
importDtoList.stream().collect(Collectors.groupingBy(GfStudentListImportDto::getIdNumber));
|
= importDtoList.stream().collect(Collectors.groupingBy(GfStudentListImportDto::getIdNumber));
|
||||||
for (Map.Entry<String, List<GfStudentListImportDto>> entry : fileSameIdNumberMap.entrySet()) {
|
for (Map.Entry<String, List<GfStudentListImportDto>> entry : fileSameIdNumberMap.entrySet()) {
|
||||||
if (entry.getValue().size() > 1) {
|
if (entry.getValue().size() > 1) {
|
||||||
lineRepeatedValidateMsgList
|
lineRepeatedValidateMsgList
|
||||||
@@ -465,21 +436,13 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
for (GfStudentListImportDto importDto : importDtoList) {
|
for (GfStudentListImportDto importDto : importDtoList) {
|
||||||
List<PatientStudent> sameStudentIdStudents = patientStudentService.list(
|
List<PatientStudent> sameStudentIdStudents = patientStudentService.list(
|
||||||
new LambdaQueryWrapper<PatientStudent>().eq(PatientStudent::getStudentId, importDto.getStudentId())
|
new LambdaQueryWrapper<PatientStudent>().eq(PatientStudent::getStudentId, importDto.getStudentId())
|
||||||
<<<<<<< HEAD
|
|
||||||
.eq(PatientStudent::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode()));
|
|
||||||
=======
|
|
||||||
.eq(PatientStudent::getDeleteFlag, DelFlag.NO.getCode()));
|
.eq(PatientStudent::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
>>>>>>> v1.3
|
|
||||||
if (!sameStudentIdStudents.isEmpty()) {
|
if (!sameStudentIdStudents.isEmpty()) {
|
||||||
dbRepeatedValidateMsgList.add("■ 第" + importDto.getLineNumber() + "行的学号在系统中已存在;");
|
dbRepeatedValidateMsgList.add("■ 第" + importDto.getLineNumber() + "行的学号在系统中已存在;");
|
||||||
}
|
}
|
||||||
List<PatientStudent> sameIdNumberStudents = patientStudentService
|
List<PatientStudent> sameIdNumberStudents = patientStudentService
|
||||||
.list(new LambdaQueryWrapper<PatientStudent>().eq(PatientStudent::getIdNumber, importDto.getIdNumber())
|
.list(new LambdaQueryWrapper<PatientStudent>().eq(PatientStudent::getIdNumber, importDto.getIdNumber())
|
||||||
<<<<<<< HEAD
|
|
||||||
.eq(PatientStudent::getDeleteFlag, DeleteFlag.NOT_DELETED.getCode()));
|
|
||||||
=======
|
|
||||||
.eq(PatientStudent::getDeleteFlag, DelFlag.NO.getCode()));
|
.eq(PatientStudent::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
>>>>>>> v1.3
|
|
||||||
if (!sameIdNumberStudents.isEmpty()) {
|
if (!sameIdNumberStudents.isEmpty()) {
|
||||||
for (PatientStudent ps : sameIdNumberStudents) {
|
for (PatientStudent ps : sameIdNumberStudents) {
|
||||||
if (!ps.getEnrollmentDate().after(importDto.getGraduationDate())
|
if (!ps.getEnrollmentDate().after(importDto.getGraduationDate())
|
||||||
@@ -497,8 +460,6 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
@Override
|
@Override
|
||||||
public R<?> synPeis() {
|
public R<?> synPeis() {
|
||||||
|
|
||||||
@@ -512,7 +473,6 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//log.info("开始传输学生数据,总记录数: {}", totalCount);
|
//log.info("开始传输学生数据,总记录数: {}", totalCount);
|
||||||
|
|
||||||
// 2. 分批处理参数
|
// 2. 分批处理参数
|
||||||
int pageSize = 1000; // 每批大小
|
int pageSize = 1000; // 每批大小
|
||||||
int pageNum = 1;
|
int pageNum = 1;
|
||||||
@@ -645,5 +605,4 @@ public class GfStudentListAppServiceImpl implements IGfStudentListAppService {
|
|||||||
// 可以根据业务需求决定是否重试
|
// 可以根据业务需求决定是否重试
|
||||||
}
|
}
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,8 +105,6 @@ public class GfStudentListController {
|
|||||||
public void importTemplate(HttpServletResponse response) {
|
public void importTemplate(HttpServletResponse response) {
|
||||||
gfStudentListAppService.importTemplate(response);
|
gfStudentListAppService.importTemplate(response);
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* peis同步
|
* peis同步
|
||||||
@@ -116,5 +114,4 @@ public class GfStudentListController {
|
|||||||
public R<?> synPeis() {
|
public R<?> synPeis() {
|
||||||
return gfStudentListAppService.synPeis();
|
return gfStudentListAppService.synPeis();
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package com.openhis.web.nenu.mapper;
|
package com.openhis.web.nenu.mapper;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import com.openhis.web.nenu.dto.GfStudentPeisDto;
|
import com.openhis.web.nenu.dto.GfStudentPeisDto;
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@@ -13,11 +10,8 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.openhis.web.nenu.dto.GfStudentListDto;
|
import com.openhis.web.nenu.dto.GfStudentListDto;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/**
|
/**
|
||||||
* 公费医疗-学生名单管理 Mapper
|
* 公费医疗-学生名单管理 Mapper
|
||||||
*
|
*
|
||||||
@@ -37,14 +31,13 @@ public interface GfStudentListAppMapper {
|
|||||||
IPage<GfStudentListDto> selectGfStudentListPage(@Param("page") Page<GfStudentListDto> page,
|
IPage<GfStudentListDto> selectGfStudentListPage(@Param("page") Page<GfStudentListDto> page,
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<GfStudentListDto> queryWrapper);
|
@Param(Constants.WRAPPER) QueryWrapper<GfStudentListDto> queryWrapper);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 获取学生名单peis同步列表
|
* 获取学生名单peis同步列表
|
||||||
*
|
*
|
||||||
* @return 学生名单peis同步列表
|
* @return 学生名单peis同步列表
|
||||||
*/
|
*/
|
||||||
List<GfStudentPeisDto> getPatientBusNoList(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);
|
List<GfStudentPeisDto> getPatientBusNoList(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取学生名单peis同步列表
|
* 获取学生名单peis同步列表
|
||||||
*
|
*
|
||||||
@@ -59,5 +52,4 @@ public interface GfStudentListAppMapper {
|
|||||||
*/
|
*/
|
||||||
Long getPatientBusNoCount();
|
Long getPatientBusNoCount();
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,12 +137,12 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
searchFields.add(CommonConstants.FieldName.PatientPyStr);
|
searchFields.add(CommonConstants.FieldName.PatientPyStr);
|
||||||
searchFields.add(CommonConstants.FieldName.PatientWbStr);
|
searchFields.add(CommonConstants.FieldName.PatientWbStr);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<OutpatientTreatmentEncounterDto> queryWrapper =
|
QueryWrapper<OutpatientTreatmentEncounterDto> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(outpatientTreatmentEncounterDto, searchKey, searchFields, request);
|
= HisQueryUtils.buildQueryWrapper(outpatientTreatmentEncounterDto, searchKey, searchFields, request);
|
||||||
|
|
||||||
// 查询就诊病人列表
|
// 查询就诊病人列表
|
||||||
Page<OutpatientTreatmentEncounterDto> encounterInfoPageDto =
|
Page<OutpatientTreatmentEncounterDto> encounterInfoPageDto
|
||||||
outpatientTreatmentAppMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper,
|
= outpatientTreatmentAppMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
EncounterClass.AMB.getValue(), RequestStatus.COMPLETED.getValue(), RequestStatus.CANCELLED.getValue());
|
EncounterClass.AMB.getValue(), RequestStatus.COMPLETED.getValue(), RequestStatus.CANCELLED.getValue());
|
||||||
encounterInfoPageDto.getRecords().forEach(prescriptionPatientInfoDto -> {
|
encounterInfoPageDto.getRecords().forEach(prescriptionPatientInfoDto -> {
|
||||||
// 性别
|
// 性别
|
||||||
@@ -167,8 +167,8 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
public R<?> getOutpatientTreatmentInfo(OutpatientTreatmentInfoDto outpatientTreatmentInfoDto, Integer pageNo,
|
public R<?> getOutpatientTreatmentInfo(OutpatientTreatmentInfoDto outpatientTreatmentInfoDto, Integer pageNo,
|
||||||
Integer pageSize) {
|
Integer pageSize) {
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<OutpatientTreatmentInfoDto> queryWrapper =
|
QueryWrapper<OutpatientTreatmentInfoDto> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(outpatientTreatmentInfoDto, null, null, null);
|
= HisQueryUtils.buildQueryWrapper(outpatientTreatmentInfoDto, null, null, null);
|
||||||
|
|
||||||
// 查询处置单
|
// 查询处置单
|
||||||
IPage<OutpatientTreatmentInfoDto> treatmentInfo = outpatientTreatmentAppMapper.selectTreatmentInfoPage(
|
IPage<OutpatientTreatmentInfoDto> treatmentInfo = outpatientTreatmentAppMapper.selectTreatmentInfoPage(
|
||||||
@@ -178,8 +178,8 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
List<OutpatientTreatmentInfoDto> treatmentList = treatmentInfo.getRecords();
|
List<OutpatientTreatmentInfoDto> treatmentList = treatmentInfo.getRecords();
|
||||||
|
|
||||||
// 获取请求ids
|
// 获取请求ids
|
||||||
List<Long> reqIds =
|
List<Long> reqIds
|
||||||
treatmentList.stream().map(OutpatientTreatmentInfoDto::getRequestId).collect(Collectors.toList());
|
= treatmentList.stream().map(OutpatientTreatmentInfoDto::getRequestId).collect(Collectors.toList());
|
||||||
Map<Long, List<Procedure>> procedureRecordGroup = new HashMap<>();
|
Map<Long, List<Procedure>> procedureRecordGroup = new HashMap<>();
|
||||||
if (!reqIds.isEmpty()) {
|
if (!reqIds.isEmpty()) {
|
||||||
// 查询执行记录
|
// 查询执行记录
|
||||||
@@ -275,8 +275,8 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
throw new ServiceException("未找到对应的收费项,请联系管理员");
|
throw new ServiceException("未找到对应的收费项,请联系管理员");
|
||||||
}
|
}
|
||||||
// 按requestId分组收费项
|
// 按requestId分组收费项
|
||||||
Map<Long, List<ChargeItem>> chargeItemMap =
|
Map<Long, List<ChargeItem>> chargeItemMap
|
||||||
chargeItemList.stream().collect(Collectors.groupingBy(ChargeItem::getServiceId));
|
= chargeItemList.stream().collect(Collectors.groupingBy(ChargeItem::getServiceId));
|
||||||
// 过滤出已收费的执行项目
|
// 过滤出已收费的执行项目
|
||||||
serviceMedPerformList = serviceMedPerformList.stream().filter(performInfo -> {
|
serviceMedPerformList = serviceMedPerformList.stream().filter(performInfo -> {
|
||||||
List<ChargeItem> chargeItems = chargeItemMap.get(performInfo.getRequestId());
|
List<ChargeItem> chargeItems = chargeItemMap.get(performInfo.getRequestId());
|
||||||
@@ -299,8 +299,8 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
exeCount = serviceRequest.getQuantity().intValue();
|
exeCount = serviceRequest.getQuantity().intValue();
|
||||||
}
|
}
|
||||||
} else if (CommonConstants.TableName.MED_MEDICATION_REQUEST.equals(performInfoDto.getRequestTable())) {
|
} else if (CommonConstants.TableName.MED_MEDICATION_REQUEST.equals(performInfoDto.getRequestTable())) {
|
||||||
MedicationRequest medicationRequest =
|
MedicationRequest medicationRequest
|
||||||
medicationRequestService.getById(performInfoDto.getRequestId());
|
= medicationRequestService.getById(performInfoDto.getRequestId());
|
||||||
if (medicationRequest != null) {
|
if (medicationRequest != null) {
|
||||||
encounterId = medicationRequest.getEncounterId();
|
encounterId = medicationRequest.getEncounterId();
|
||||||
requestId = medicationRequest.getId();
|
requestId = medicationRequest.getId();
|
||||||
@@ -352,14 +352,11 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
List<Long> devRequestIdList = devicePerformList.stream().map(PerformInfoDto::getRequestId).toList();
|
List<Long> devRequestIdList = devicePerformList.stream().map(PerformInfoDto::getRequestId).toList();
|
||||||
// 获取耗材发放id列表
|
// 获取耗材发放id列表
|
||||||
List<Long> devDispenseIdList = performInfoList.stream().map(PerformInfoDto::getDispenseId).toList();
|
List<Long> devDispenseIdList = performInfoList.stream().map(PerformInfoDto::getDispenseId).toList();
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
// 更新请求状态为已完成
|
// 更新请求状态为已完成
|
||||||
LambdaUpdateWrapper<DeviceRequest> updateWrapper =
|
LambdaUpdateWrapper<DeviceRequest> updateWrapper
|
||||||
new LambdaUpdateWrapper<DeviceRequest>().in(DeviceRequest::getId, devRequestIdList)
|
= new LambdaUpdateWrapper<DeviceRequest>().in(DeviceRequest::getId, devRequestIdList)
|
||||||
.set(DeviceRequest::getStatusEnum, RequestStatus.COMPLETED.getValue());
|
.set(DeviceRequest::getStatusEnum, RequestStatus.COMPLETED.getValue());
|
||||||
deviceRequestService.update(updateWrapper);
|
deviceRequestService.update(updateWrapper);
|
||||||
>>>>>>> v1.3
|
|
||||||
// 发耗材信息查询
|
// 发耗材信息查询
|
||||||
List<DeviceDispense> dispenseList = deviceDispenseService
|
List<DeviceDispense> dispenseList = deviceDispenseService
|
||||||
.list(new LambdaQueryWrapper<DeviceDispense>().in(DeviceDispense::getId, devDispenseIdList));
|
.list(new LambdaQueryWrapper<DeviceDispense>().in(DeviceDispense::getId, devDispenseIdList));
|
||||||
@@ -387,55 +384,6 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
} else {
|
} else {
|
||||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
// 获取库存信息
|
|
||||||
List<UnDispenseInventoryDto> inventoryList = returnMedicineMapper.selectInventoryInfoList(
|
|
||||||
devUnDispenseIdList, null, CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
|
||||||
CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
// 按每个耗材分组
|
|
||||||
Map<Long, List<UnDispenseInventoryDto>> groupedByItemId =
|
|
||||||
inventoryList.stream().collect(Collectors.groupingBy(UnDispenseInventoryDto::getItemId));
|
|
||||||
// 遍历每个分组校验库存状态
|
|
||||||
for (Map.Entry<Long, List<UnDispenseInventoryDto>> entry : groupedByItemId.entrySet()) {
|
|
||||||
List<UnDispenseInventoryDto> groupItems = entry.getValue();
|
|
||||||
if (groupItems.stream().map(UnDispenseInventoryDto::getInventoryStatusEnum)
|
|
||||||
.allMatch(x -> x.equals(PublicationStatus.RETIRED.getValue()))) {
|
|
||||||
// 库存停供校验
|
|
||||||
return R.fail(groupItems.get(0).getItemName() + "库存已停供");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
|
||||||
if (!inventoryList.isEmpty()) {
|
|
||||||
for (UnDispenseInventoryDto unDispenseInventoryDto : inventoryList) {
|
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())) {
|
|
||||||
InventoryItem inventoryItem = new InventoryItem();
|
|
||||||
// 库存数量判定
|
|
||||||
if (unDispenseInventoryDto.getDispenseUnit()
|
|
||||||
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-请求数量
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity()
|
|
||||||
.subtract(unDispenseInventoryDto.getQuantity());
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-拆零数量(拆零比×请求数量)
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity().subtract(
|
|
||||||
unDispenseInventoryDto.getPartPercent().multiply(unDispenseInventoryDto.getQuantity()));
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
inventoryItemList.add(inventoryItem);
|
|
||||||
=======
|
|
||||||
|
|
||||||
// 获取药品待发放库存信息
|
// 获取药品待发放库存信息
|
||||||
List<UnDispenseInventoryDto> unDispenseInventoryList = returnMedicineMapper.selectInventoryInfoList(
|
List<UnDispenseInventoryDto> unDispenseInventoryList = returnMedicineMapper.selectInventoryInfoList(
|
||||||
@@ -445,8 +393,7 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
// 库存待更新列表
|
// 库存待更新列表
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
||||||
// 根据批号,发放项目,发放药房进行分组处理
|
// 根据批号,发放项目,发放药房进行分组处理
|
||||||
Map<String,
|
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap = unDispenseInventoryList.stream()
|
||||||
List<UnDispenseInventoryDto>> unDispenseInventoryMap = unDispenseInventoryList.stream()
|
|
||||||
.collect(Collectors.groupingBy(x -> x.getItemId() + CommonConstants.Common.DASH + x.getLotNumber()
|
.collect(Collectors.groupingBy(x -> x.getItemId() + CommonConstants.Common.DASH + x.getLotNumber()
|
||||||
+ CommonConstants.Common.DASH + x.getLocationId()));
|
+ CommonConstants.Common.DASH + x.getLocationId()));
|
||||||
if (!unDispenseInventoryMap.isEmpty()) {
|
if (!unDispenseInventoryMap.isEmpty()) {
|
||||||
@@ -488,29 +435,11 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
inventoryItemList.add(new InventoryItem().setId(inventoryId)
|
inventoryItemList.add(new InventoryItem().setId(inventoryId)
|
||||||
.setQuantity(inventoryQuantity.subtract(minQuantity)));
|
.setQuantity(inventoryQuantity.subtract(minQuantity)));
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 库存更新
|
// 库存更新
|
||||||
inventoryItemService.updateBatchById(inventoryItemList);
|
inventoryItemService.updateBatchById(inventoryItemList);
|
||||||
<<<<<<< HEAD
|
|
||||||
// 更新请求状态为已完成
|
|
||||||
deviceRequestService.updateCompletedStatusBatch(devRequestIdList);
|
|
||||||
|
|
||||||
// 调用医保商品销售接口
|
|
||||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH);
|
|
||||||
// 医保开关
|
|
||||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
|
||||||
List<String> uploadFailedNoList =
|
|
||||||
westernMedicineDispenseAppServiceImpl.ybMedicineIntegrated(null, devDispenseIdList);
|
|
||||||
if (uploadFailedNoList != null) {
|
|
||||||
returnMsg = "3505商品销售上传错误,错误项目编码" + uploadFailedNoList;
|
|
||||||
} else {
|
|
||||||
returnMsg = "3505商品销售上传成功";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
|
|
||||||
// // 调用医保商品销售接口
|
// // 调用医保商品销售接口
|
||||||
// String ybSwitch =
|
// String ybSwitch =
|
||||||
@@ -525,7 +454,6 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
// returnMsg = "3505商品销售上传成功";
|
// returnMsg = "3505商品销售上传成功";
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
return R.ok("执行成功");
|
return R.ok("执行成功");
|
||||||
}
|
}
|
||||||
@@ -648,45 +576,6 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
// 药品退药请求状态变更(待退药→已完成)
|
// 药品退药请求状态变更(待退药→已完成)
|
||||||
deviceRequestService.updateCompletedStatusBatch(devRefundRequestIdList);
|
deviceRequestService.updateCompletedStatusBatch(devRefundRequestIdList);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
|
||||||
// 获取库存信息
|
|
||||||
List<UnDispenseInventoryDto> inventoryList = returnMedicineMapper.selectInventoryInfoList(devDispenseIdList,
|
|
||||||
null, CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
|
||||||
CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
if (inventoryList != null && !inventoryList.isEmpty()) {
|
|
||||||
// 设置库存数量
|
|
||||||
for (UnDispenseInventoryDto inventory : inventoryList) {
|
|
||||||
// 库存表项目设定
|
|
||||||
InventoryItem inventoryItem = new InventoryItem();
|
|
||||||
// id
|
|
||||||
inventoryItem.setId(inventory.getInventoryId());
|
|
||||||
// 库存数量
|
|
||||||
if (inventory.getDispenseUnit().equals(inventory.getInventoryUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)+待退数量
|
|
||||||
inventoryItem
|
|
||||||
.setQuantity(inventory.getInventoryQuantity().add(inventory.getDispenseQuantity()));
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)+退药数量(拆零比×待退数量)
|
|
||||||
inventoryItem.setQuantity(inventory.getInventoryQuantity()
|
|
||||||
.add(inventory.getPartPercent().multiply(inventory.getDispenseQuantity())));
|
|
||||||
}
|
|
||||||
inventoryItemList.add(inventoryItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 库存更新
|
|
||||||
inventoryItemService.updateBatchById(inventoryItemList);
|
|
||||||
// 调用医保商品销售退货接口
|
|
||||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
|
||||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
|
||||||
if (!devRefundList.isEmpty()) {
|
|
||||||
List<String> uploadFailedNoList =
|
|
||||||
returnedMedicineAppServiceImpl.ybReturnIntegrated(new ArrayList<>(), devDispenseIdList);
|
|
||||||
if (uploadFailedNoList != null) {
|
|
||||||
returnMsg = "3506商品销售退货上传错误,错误项目编码" + uploadFailedNoList;
|
|
||||||
} else {
|
|
||||||
returnMsg = "3506商品销售退货上传成功";
|
|
||||||
=======
|
|
||||||
// 扣库
|
// 扣库
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
||||||
// 获取库存信息
|
// 获取库存信息
|
||||||
@@ -711,7 +600,6 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
.add(inventory.getPartPercent().multiply(inventory.getDispenseQuantity())));
|
.add(inventory.getPartPercent().multiply(inventory.getDispenseQuantity())));
|
||||||
}
|
}
|
||||||
inventoryItemList.add(inventoryItem);
|
inventoryItemList.add(inventoryItem);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 库存更新
|
// 库存更新
|
||||||
@@ -743,8 +631,8 @@ public class OutpatientTreatmentAppServiceImpl implements IOutpatientTreatmentAp
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public R<?> getBloodTransfusionPatch(Long requestId) {
|
public R<?> getBloodTransfusionPatch(Long requestId) {
|
||||||
BloodTransfusionPatchDto bloodTransfusionPatch =
|
BloodTransfusionPatchDto bloodTransfusionPatch
|
||||||
outpatientTreatmentAppMapper.getBloodTransfusionPatch(requestId);
|
= outpatientTreatmentAppMapper.getBloodTransfusionPatch(requestId);
|
||||||
// 性别枚举
|
// 性别枚举
|
||||||
bloodTransfusionPatch.setGenderEnum_enumText(
|
bloodTransfusionPatch.setGenderEnum_enumText(
|
||||||
EnumUtils.getInfoByValue(AdministrativeGender.class, bloodTransfusionPatch.getGenderEnum()));
|
EnumUtils.getInfoByValue(AdministrativeGender.class, bloodTransfusionPatch.getGenderEnum()));
|
||||||
|
|||||||
@@ -50,20 +50,9 @@ public interface IPatientInformationService {
|
|||||||
R<?> addPatient(PatientBaseInfoDto patientInfoDto);
|
R<?> addPatient(PatientBaseInfoDto patientInfoDto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 检查患者是否存在
|
|
||||||
*
|
|
||||||
* @param name 患者姓名
|
|
||||||
* @param idCardNo 身份证号
|
|
||||||
* @return 是否存在
|
|
||||||
*/
|
|
||||||
boolean checkPatientExists(String name, String idCardNo);
|
|
||||||
|
|
||||||
=======
|
|
||||||
* 更新患者手机号
|
* 更新患者手机号
|
||||||
*
|
*
|
||||||
* @param patientBaseInfoDto 患者信息
|
* @param patientBaseInfoDto 患者信息
|
||||||
*/
|
*/
|
||||||
R<?> updatePatientPhone(PatientBaseInfoDto patientBaseInfoDto);
|
R<?> updatePatientPhone(PatientBaseInfoDto patientBaseInfoDto);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,25 +130,16 @@ public class PatientInformationServiceImpl implements IPatientInformationService
|
|||||||
@Override
|
@Override
|
||||||
public IPage<PatientBaseInfoDto> getPatientInfo(PatientBaseInfoDto patientBaseInfoDto, String searchKey,
|
public IPage<PatientBaseInfoDto> getPatientInfo(PatientBaseInfoDto patientBaseInfoDto, String searchKey,
|
||||||
Integer pageNo, Integer pageSize, HttpServletRequest request) {
|
Integer pageNo, Integer pageSize, HttpServletRequest request) {
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
// 构建查询条件 - 添加phone字段到搜索条件中
|
|
||||||
QueryWrapper<PatientInformationDto> queryWrapper = HisQueryUtils.buildQueryWrapper(
|
|
||||||
patientInfoSearchParam, searchKey, new HashSet<>(Arrays.asList(CommonConstants.FieldName.Name,
|
|
||||||
CommonConstants.FieldName.BusNo, CommonConstants.FieldName.PyStr, CommonConstants.FieldName.WbStr,
|
|
||||||
CommonConstants.FieldName.Phone)), // 添加phone字段支持手机号搜索
|
|
||||||
=======
|
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<PatientBaseInfoDto> queryWrapper = HisQueryUtils.buildQueryWrapper(
|
QueryWrapper<PatientBaseInfoDto> queryWrapper = HisQueryUtils.buildQueryWrapper(
|
||||||
patientBaseInfoDto, searchKey, new HashSet<>(Arrays.asList(CommonConstants.FieldName.Name,
|
patientBaseInfoDto, searchKey, new HashSet<>(Arrays.asList(CommonConstants.FieldName.Name,
|
||||||
CommonConstants.FieldName.BusNo, CommonConstants.FieldName.PyStr, CommonConstants.FieldName.WbStr)),
|
CommonConstants.FieldName.BusNo, CommonConstants.FieldName.PyStr, CommonConstants.FieldName.WbStr)),
|
||||||
>>>>>>> v1.3
|
|
||||||
request);
|
request);
|
||||||
IPage<PatientBaseInfoDto> patientInformationPage =
|
IPage<PatientBaseInfoDto> patientInformationPage
|
||||||
patientManageMapper.getPatientPage(new Page<>(pageNo, pageSize), queryWrapper);
|
= patientManageMapper.getPatientPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||||
// 患者id集合
|
// 患者id集合
|
||||||
List<Long> patientIdList =
|
List<Long> patientIdList
|
||||||
patientInformationPage.getRecords().stream().map(PatientBaseInfoDto::getId).collect(Collectors.toList());
|
= patientInformationPage.getRecords().stream().map(PatientBaseInfoDto::getId).collect(Collectors.toList());
|
||||||
// 患者身份信息
|
// 患者身份信息
|
||||||
List<PatientIdInfoDto> patientIdInfo = patientManageMapper.getPatientIdInfo(patientIdList);
|
List<PatientIdInfoDto> patientIdInfo = patientManageMapper.getPatientIdInfo(patientIdList);
|
||||||
// 获取登录者信息
|
// 获取登录者信息
|
||||||
@@ -194,8 +185,8 @@ public class PatientInformationServiceImpl implements IPatientInformationService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 身份证号是否存在
|
// 身份证号是否存在
|
||||||
List<Patient> idCardList =
|
List<Patient> idCardList
|
||||||
patientService.list(new LambdaQueryWrapper<Patient>().eq(Patient::getIdCard, patientInfoDto.getIdCard())
|
= patientService.list(new LambdaQueryWrapper<Patient>().eq(Patient::getIdCard, patientInfoDto.getIdCard())
|
||||||
.ne(patientInfoDto.getId() != null, Patient::getId, patientInfoDto.getId()));
|
.ne(patientInfoDto.getId() != null, Patient::getId, patientInfoDto.getId()));
|
||||||
if (!idCardList.isEmpty()) {
|
if (!idCardList.isEmpty()) {
|
||||||
Patient patient = idCardList.get(0);
|
Patient patient = idCardList.get(0);
|
||||||
@@ -245,8 +236,8 @@ public class PatientInformationServiceImpl implements IPatientInformationService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 身份证号是否存在
|
// 身份证号是否存在
|
||||||
List<Patient> idCardList =
|
List<Patient> idCardList
|
||||||
patientService.list(new LambdaQueryWrapper<Patient>().eq(Patient::getIdCard, patientInfoDto.getIdCard()));
|
= patientService.list(new LambdaQueryWrapper<Patient>().eq(Patient::getIdCard, patientInfoDto.getIdCard()));
|
||||||
if (!idCardList.isEmpty()) {
|
if (!idCardList.isEmpty()) {
|
||||||
throw new ServiceException("身份证号:" + patientInfoDto.getIdCard() + "已经存在");
|
throw new ServiceException("身份证号:" + patientInfoDto.getIdCard() + "已经存在");
|
||||||
}
|
}
|
||||||
@@ -272,18 +263,6 @@ public class PatientInformationServiceImpl implements IPatientInformationService
|
|||||||
return R.ok(patient, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[]{"患者信息"}));
|
return R.ok(patient, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[]{"患者信息"}));
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
@Override
|
|
||||||
public boolean checkPatientExists(String name, String idCardNo) {
|
|
||||||
QueryWrapper<Patient> queryWrapper = new QueryWrapper<>();
|
|
||||||
queryWrapper.eq("name", name)
|
|
||||||
.eq("id_card", idCardNo)
|
|
||||||
.eq("delete_flag", "0");
|
|
||||||
return patientService.count(queryWrapper) > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 处理患者信息
|
* 处理患者信息
|
||||||
*
|
*
|
||||||
@@ -345,5 +324,4 @@ public class PatientInformationServiceImpl implements IPatientInformationService
|
|||||||
}
|
}
|
||||||
return R.fail("更新患者手机号失败");
|
return R.fail("更新患者手机号失败");
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,9 @@ public class PatientBaseInfoDto {
|
|||||||
private Integer genderEnum;
|
private Integer genderEnum;
|
||||||
private String genderEnum_enumText;
|
private String genderEnum_enumText;
|
||||||
|
|
||||||
/** 活动标记 */
|
/**
|
||||||
|
* 活动标记
|
||||||
|
*/
|
||||||
private Integer activeFlag;
|
private Integer activeFlag;
|
||||||
private Integer activeFlag_enumText;
|
private Integer activeFlag_enumText;
|
||||||
|
|
||||||
@@ -68,18 +70,7 @@ public class PatientBaseInfoDto {
|
|||||||
/**
|
/**
|
||||||
* 联系方式
|
* 联系方式
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD:openhis-server-new/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/PatientInformationDto.java
|
|
||||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
|
|
||||||
private Date deceasedDate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 婚姻状态
|
|
||||||
*/
|
|
||||||
private Integer maritalStatusEnum;
|
|
||||||
private String maritalStatusEnum_enumText;
|
|
||||||
=======
|
|
||||||
private String phone;
|
private String phone;
|
||||||
>>>>>>> v1.3:openhis-server-new/openhis-application/src/main/java/com/openhis/web/patientmanage/dto/PatientBaseInfoDto.java
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 职业编码
|
* 职业编码
|
||||||
|
|||||||
@@ -11,14 +11,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.openhis.web.chargemanage.dto.OutpatientRegistrationAddParam;
|
import com.openhis.web.chargemanage.dto.OutpatientRegistrationAddParam;
|
||||||
import com.openhis.web.chargemanage.dto.OutpatientRegistrationSettleParam;
|
import com.openhis.web.chargemanage.dto.OutpatientRegistrationSettleParam;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.web.paymentmanage.dto.CancelPaymentDto;
|
|
||||||
import com.openhis.web.paymentmanage.dto.InpatientPreSettleResultDto;
|
|
||||||
import com.openhis.web.paymentmanage.dto.NenuBpcPayDto;
|
|
||||||
import com.openhis.web.paymentmanage.dto.PaymentVO;
|
|
||||||
=======
|
|
||||||
import com.openhis.web.paymentmanage.dto.*;
|
import com.openhis.web.paymentmanage.dto.*;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.yb.dto.PaymentDetailDto;
|
import com.openhis.yb.dto.PaymentDetailDto;
|
||||||
import com.openhis.yb.dto.PaymentDto;
|
import com.openhis.yb.dto.PaymentDto;
|
||||||
import com.openhis.yb.dto.PaymentInpatientDto;
|
import com.openhis.yb.dto.PaymentInpatientDto;
|
||||||
@@ -31,6 +24,7 @@ import com.openhis.yb.dto.PrePaymentDto;
|
|||||||
* @date 2025-03-29
|
* @date 2025-03-29
|
||||||
*/
|
*/
|
||||||
public interface IPaymentRecService {
|
public interface IPaymentRecService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 付款
|
* 付款
|
||||||
*
|
*
|
||||||
@@ -139,9 +133,6 @@ public interface IPaymentRecService {
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
String nenuBpcPay(NenuBpcPayDto nenuBpcPayDto);
|
String nenuBpcPay(NenuBpcPayDto nenuBpcPayDto);
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
List<PaymentDetailDto> cancelPreReg(Long encounterId);
|
List<PaymentDetailDto> cancelPreReg(Long encounterId);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,8 @@ package com.openhis.web.paymentmanage.appservice;
|
|||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.openhis.yb.dto.ThreePartPayDto;
|
import com.openhis.yb.dto.ThreePartPayDto;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/**
|
/**
|
||||||
* 第三方支付应用层Service
|
* 第三方支付应用层Service
|
||||||
*
|
*
|
||||||
@@ -15,11 +12,10 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
* @date 2025-03-29
|
* @date 2025-03-29
|
||||||
*/
|
*/
|
||||||
public interface ThreePartPayService {
|
public interface ThreePartPayService {
|
||||||
<<<<<<< HEAD
|
|
||||||
R<?> payFor(ThreePartPayDto threePartPayDto);
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 付款
|
* 付款
|
||||||
|
*
|
||||||
* @param threePartPayDto 前台参数
|
* @param threePartPayDto 前台参数
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@@ -27,26 +23,29 @@ public interface ThreePartPayService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 签到
|
* 签到
|
||||||
|
*
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
R<?> sign();
|
R<?> sign();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签出
|
* 签出
|
||||||
|
*
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
R<?> signOut();
|
R<?> signOut();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付结果查询
|
* 支付结果查询
|
||||||
|
*
|
||||||
* @param id 参数
|
* @param id 参数
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
R<?> payQuery(Long id);
|
R<?> payQuery(Long id);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当天退费
|
* 当天退费
|
||||||
|
*
|
||||||
* @param paymentId 参数
|
* @param paymentId 参数
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@@ -54,6 +53,7 @@ public interface ThreePartPayService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 隔天退货
|
* 隔天退货
|
||||||
|
*
|
||||||
* @param paymentId 参数
|
* @param paymentId 参数
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@@ -61,6 +61,7 @@ public interface ThreePartPayService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 退费结果查询
|
* 退费结果查询
|
||||||
|
*
|
||||||
* @param id
|
* @param id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@@ -68,6 +69,7 @@ public interface ThreePartPayService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 网银支付记录
|
* 网银支付记录
|
||||||
|
*
|
||||||
* @param searchKey 模糊查询
|
* @param searchKey 模糊查询
|
||||||
* @param pageNo 页码
|
* @param pageNo 页码
|
||||||
* @param pageSize 页容量
|
* @param pageSize 页容量
|
||||||
@@ -78,9 +80,9 @@ public interface ThreePartPayService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 付款(师大中银)
|
* 付款(师大中银)
|
||||||
|
*
|
||||||
* @param threePartPayDto 前台参数
|
* @param threePartPayDto 前台参数
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
R<?> payForNenu(ThreePartPayDto threePartPayDto);
|
R<?> payForNenu(ThreePartPayDto threePartPayDto);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
||||||
|
|
||||||
private static final BigDecimal ZERO = new BigDecimal("0.00");
|
private static final BigDecimal ZERO = new BigDecimal("0.00");
|
||||||
Logger logger = LoggerFactory.getLogger(EleInvoiceServiceImpl.class);
|
Logger logger = LoggerFactory.getLogger(EleInvoiceServiceImpl.class);
|
||||||
@Resource
|
@Resource
|
||||||
@@ -225,8 +226,8 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
String rmd5 = DigestUtils.md5Hex(str1.toString().getBytes(Charset.forName("UTF-8"))).toUpperCase();
|
String rmd5 = DigestUtils.md5Hex(str1.toString().getBytes(Charset.forName("UTF-8"))).toUpperCase();
|
||||||
String rsign = resultData.get("sign").toString();
|
String rsign = resultData.get("sign").toString();
|
||||||
System.out.println("验签-》" + (StringUtils.equals(rsign, rmd5)));
|
System.out.println("验签-》" + (StringUtils.equals(rsign, rmd5)));
|
||||||
String busData =
|
String busData
|
||||||
new String(Base64.getDecoder().decode(resultData.get("data").toString()), StandardCharsets.UTF_8);
|
= new String(Base64.getDecoder().decode(resultData.get("data").toString()), StandardCharsets.UTF_8);
|
||||||
System.out.println("返回业务数据--》" + busData);
|
System.out.println("返回业务数据--》" + busData);
|
||||||
Map busDataMap = new ObjectMapper().readValue(busData, Map.class);
|
Map busDataMap = new ObjectMapper().readValue(busData, Map.class);
|
||||||
System.out
|
System.out
|
||||||
@@ -395,8 +396,8 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
// unit 计量单位
|
// unit 计量单位
|
||||||
chargeDetail.put("unit", "项");
|
chargeDetail.put("unit", "项");
|
||||||
// std 收费标准 Number 14,2 是
|
// std 收费标准 Number 14,2 是
|
||||||
BigDecimal std =
|
BigDecimal std
|
||||||
detail.getAmt().divide(new BigDecimal(detail.getNumber().toString()), 6, RoundingMode.HALF_UP);
|
= detail.getAmt().divide(new BigDecimal(detail.getNumber().toString()), 6, RoundingMode.HALF_UP);
|
||||||
// 精确表示,避免科学计数法
|
// 精确表示,避免科学计数法
|
||||||
chargeDetail.put("std", df.format(std));
|
chargeDetail.put("std", df.format(std));
|
||||||
// number 数量 Number 14,2 是
|
// number 数量 Number 14,2 是
|
||||||
@@ -589,7 +590,6 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
bill.put("busType", "02");
|
bill.put("busType", "02");
|
||||||
|
|
||||||
// ------就诊信息------
|
// ------就诊信息------
|
||||||
|
|
||||||
// patientCategory 就诊科室 String 60 是
|
// patientCategory 就诊科室 String 60 是
|
||||||
bill.put("patientCategory", patientInfo.getPatientCategory());
|
bill.put("patientCategory", patientInfo.getPatientCategory());
|
||||||
// patientCategoryCode 就诊科室编码 String 60 是
|
// patientCategoryCode 就诊科室编码 String 60 是
|
||||||
@@ -701,8 +701,8 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
// unit 计量单位
|
// unit 计量单位
|
||||||
chargeDetail.put("unit", "项");
|
chargeDetail.put("unit", "项");
|
||||||
// std 收费标准 Number 14,2 是
|
// std 收费标准 Number 14,2 是
|
||||||
BigDecimal std =
|
BigDecimal std
|
||||||
detail.getAmt().divide(new BigDecimal(detail.getNumber().toString()), 6, RoundingMode.HALF_UP);
|
= detail.getAmt().divide(new BigDecimal(detail.getNumber().toString()), 6, RoundingMode.HALF_UP);
|
||||||
chargeDetail.put("std", df.format(std));
|
chargeDetail.put("std", df.format(std));
|
||||||
// number 数量 Number 14,2 是
|
// number 数量 Number 14,2 是
|
||||||
chargeDetail.put("number", detail.getNumber());
|
chargeDetail.put("number", detail.getNumber());
|
||||||
@@ -767,12 +767,9 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
String srcmsg;
|
String srcmsg;
|
||||||
System.out.println(JSON.toJSONString(bill));
|
System.out.println(JSON.toJSONString(bill));
|
||||||
JSONObject resobj;
|
JSONObject resobj;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
logger.info("************************************** 分 割 线 ***************************************");
|
logger.info("************************************** 分 割 线 ***************************************");
|
||||||
logger.info("门诊信息入参:" + JSON.toJSONString(bill));
|
logger.info("门诊信息入参:" + JSON.toJSONString(bill));
|
||||||
logger.info("———————————————————————————————————————————————————————————————————————————————————————");
|
logger.info("———————————————————————————————————————————————————————————————————————————————————————");
|
||||||
>>>>>>> v1.3
|
|
||||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().getString("forwardSwitch"))) {
|
if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().getString("forwardSwitch"))) {
|
||||||
resobj = PreInvoicePostForward(bill, "api/medical/invoiceEBillOutpatient");
|
resobj = PreInvoicePostForward(bill, "api/medical/invoiceEBillOutpatient");
|
||||||
} else {
|
} else {
|
||||||
@@ -905,7 +902,6 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
bill.put("checker", user.getName());
|
bill.put("checker", user.getName());
|
||||||
|
|
||||||
// ------就诊信息------
|
// ------就诊信息------
|
||||||
|
|
||||||
// medCareAreaCode 医保行政区划码 String 6 否 医保结算时必须填写
|
// medCareAreaCode 医保行政区划码 String 6 否 医保结算时必须填写
|
||||||
bill.put("medCareAreaCode", patientInfo.getMedCareAreaCode());
|
bill.put("medCareAreaCode", patientInfo.getMedCareAreaCode());
|
||||||
// category 入院科室名称 String 50 是 如:入院科室不存在,填写出院科室
|
// category 入院科室名称 String 50 是 如:入院科室不存在,填写出院科室
|
||||||
@@ -1061,8 +1057,8 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
// unit 计量单位
|
// unit 计量单位
|
||||||
chargeDetail.put("unit", "项");
|
chargeDetail.put("unit", "项");
|
||||||
// std 收费标准 Number 14,2 是
|
// std 收费标准 Number 14,2 是
|
||||||
BigDecimal std =
|
BigDecimal std
|
||||||
detail.getAmt().divide(new BigDecimal(detail.getNumber().toString()), 6, RoundingMode.HALF_UP);
|
= detail.getAmt().divide(new BigDecimal(detail.getNumber().toString()), 6, RoundingMode.HALF_UP);
|
||||||
// 精确表示,避免科学计数法
|
// 精确表示,避免科学计数法
|
||||||
chargeDetail.put("std", df.format(std));
|
chargeDetail.put("std", df.format(std));
|
||||||
// number 数量 Number 14,2 是
|
// number 数量 Number 14,2 是
|
||||||
@@ -1077,19 +1073,15 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
bill.put("chargeDetail", chargeDetails);
|
bill.put("chargeDetail", chargeDetails);
|
||||||
|
|
||||||
// --------------------请求业务参数 data--------------------END
|
// --------------------请求业务参数 data--------------------END
|
||||||
|
|
||||||
JSONObject redata = new JSONObject();
|
JSONObject redata = new JSONObject();
|
||||||
String redata64;
|
String redata64;
|
||||||
String srcdata;
|
String srcdata;
|
||||||
String srcmsg;
|
String srcmsg;
|
||||||
// JSONObject resobj = PreInvoicePostForward(bill, "api/medical/invEBillHospitalized");
|
// JSONObject resobj = PreInvoicePostForward(bill, "api/medical/invEBillHospitalized");
|
||||||
JSONObject resobj;
|
JSONObject resobj;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
logger.info("************************************** 分 割 线 ***************************************");
|
logger.info("************************************** 分 割 线 ***************************************");
|
||||||
logger.info("住院信息入参:" + JSON.toJSONString(bill));
|
logger.info("住院信息入参:" + JSON.toJSONString(bill));
|
||||||
logger.info("———————————————————————————————————————————————————————————————————————————————————————");
|
logger.info("———————————————————————————————————————————————————————————————————————————————————————");
|
||||||
>>>>>>> v1.3
|
|
||||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().getString("forwardSwitch"))) {
|
if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().getString("forwardSwitch"))) {
|
||||||
resobj = PreInvoicePostForward(bill, "api/medical/invEBillHospitalized");
|
resobj = PreInvoicePostForward(bill, "api/medical/invEBillHospitalized");
|
||||||
} else {
|
} else {
|
||||||
@@ -1160,7 +1152,6 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
* @param clinicSettle 医保结算记录
|
* @param clinicSettle 医保结算记录
|
||||||
* @return 返回值
|
* @return 返回值
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private JSONObject commomSet(EleInvoicePatientInfoDto patientInfo, EleInvoicePaymentInfoDto paymentInfo,
|
private JSONObject commomSet(EleInvoicePatientInfoDto patientInfo, EleInvoicePaymentInfoDto paymentInfo,
|
||||||
InvoiceBaseInfoDto clinicSettle) throws ParseException {
|
InvoiceBaseInfoDto clinicSettle) throws ParseException {
|
||||||
// 日期格式化:定义多种时间格式,用于生成业务流水号、时间戳等。
|
// 日期格式化:定义多种时间格式,用于生成业务流水号、时间戳等。
|
||||||
@@ -1266,7 +1257,6 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
// 360 老红军医疗保障 //370 企业补充医疗保险
|
// 360 老红军医疗保障 //370 企业补充医疗保险
|
||||||
// 380 新型农村合作医疗 //390 城乡居民基本医疗保险
|
// 380 新型农村合作医疗 //390 城乡居民基本医疗保险
|
||||||
// 391 城镇居民基本医疗保险 //392 城乡居民大病医疗保险 //399 其他特殊人员医疗保障
|
// 391 城镇居民基本医疗保险 //392 城乡居民大病医疗保险 //399 其他特殊人员医疗保障
|
||||||
|
|
||||||
// 01 职工基本医疗保险 06 全公费
|
// 01 职工基本医疗保险 06 全公费
|
||||||
// 02 居民基本医疗保险 07 全自费
|
// 02 居民基本医疗保险 07 全自费
|
||||||
// 03 新型农村合作医疗 90 城乡居民医疗保险
|
// 03 新型农村合作医疗 90 城乡居民医疗保险
|
||||||
@@ -1434,16 +1424,11 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
payChannelDetail.put("payChannelCode", "11");
|
payChannelDetail.put("payChannelCode", "11");
|
||||||
// payChannelDetail.put("payChannelValue", df.format(paymentInfo.getYbFundPayAmount().add(paymentInfo
|
// payChannelDetail.put("payChannelValue", df.format(paymentInfo.getYbFundPayAmount().add(paymentInfo
|
||||||
// .getOtherPayAmount().add(paymentInfo.getZhPayAmount()).add(paymentInfo.getAelfYbZhGjValue()))));
|
// .getOtherPayAmount().add(paymentInfo.getZhPayAmount()).add(paymentInfo.getAelfYbZhGjValue()))));
|
||||||
<<<<<<< HEAD
|
|
||||||
payChannelDetail.put("payChannelValue", df.format(paymentInfo.getYbFundPayAmount()
|
|
||||||
.add(paymentInfo.getZhPayAmount()).add(paymentInfo.getAelfYbZhGjValue())));
|
|
||||||
=======
|
|
||||||
//payChannelDetail.put("payChannelValue", df.format(paymentInfo.getYbFundPayAmount()
|
//payChannelDetail.put("payChannelValue", df.format(paymentInfo.getYbFundPayAmount()
|
||||||
// .add(paymentInfo.getZhPayAmount()).add(paymentInfo.getAelfYbZhGjValue())));
|
// .add(paymentInfo.getZhPayAmount()).add(paymentInfo.getAelfYbZhGjValue())));
|
||||||
// 根据这几个医院的实际情况,医保支付金额先后刨除掉其他支付共济支付金额两项
|
// 根据这几个医院的实际情况,医保支付金额先后刨除掉其他支付共济支付金额两项
|
||||||
payChannelDetail.put("payChannelValue", df.format(paymentInfo.getYbFundPayAmount()
|
payChannelDetail.put("payChannelValue", df.format(paymentInfo.getYbFundPayAmount()
|
||||||
.add(paymentInfo.getZhPayAmount())));
|
.add(paymentInfo.getZhPayAmount())));
|
||||||
>>>>>>> v1.3
|
|
||||||
payChannelDetails.add(payChannelDetail);
|
payChannelDetails.add(payChannelDetail);
|
||||||
|
|
||||||
// 现金
|
// 现金
|
||||||
@@ -1512,8 +1497,8 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
return R.fail(PromptMsgConstant.invoice.M00004);
|
return R.fail(PromptMsgConstant.invoice.M00004);
|
||||||
}
|
}
|
||||||
|
|
||||||
Invoice invoice =
|
Invoice invoice
|
||||||
invoiceService.getOne(new LambdaQueryWrapper<Invoice>().eq(Invoice::getReconciliationId, paymentId));
|
= invoiceService.getOne(new LambdaQueryWrapper<Invoice>().eq(Invoice::getReconciliationId, paymentId));
|
||||||
|
|
||||||
if (invoice.getStatusEnum() == null || invoice.getStatusEnum().equals(InvoiceStatus.DRAFT)) {
|
if (invoice.getStatusEnum() == null || invoice.getStatusEnum().equals(InvoiceStatus.DRAFT)) {
|
||||||
return R.fail(PromptMsgConstant.invoice.M00007);
|
return R.fail(PromptMsgConstant.invoice.M00007);
|
||||||
@@ -1548,13 +1533,9 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
|
|
||||||
// JSONObject resobj = PreInvoicePostForward(bill, "api/medical/writeOffEBill");
|
// JSONObject resobj = PreInvoicePostForward(bill, "api/medical/writeOffEBill");
|
||||||
JSONObject resobj;
|
JSONObject resobj;
|
||||||
<<<<<<< HEAD
|
|
||||||
logger.info("冲红信息入参:" + JSON.toJSONString(bill));
|
|
||||||
=======
|
|
||||||
logger.info("************************************** 分 割 线 ***************************************");
|
logger.info("************************************** 分 割 线 ***************************************");
|
||||||
logger.info("冲红信息入参:" + JSON.toJSONString(bill));
|
logger.info("冲红信息入参:" + JSON.toJSONString(bill));
|
||||||
logger.info("———————————————————————————————————————————————————————————————————————————————————————");
|
logger.info("———————————————————————————————————————————————————————————————————————————————————————");
|
||||||
>>>>>>> v1.3
|
|
||||||
if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().getString("forwardSwitch"))) {
|
if ("0".equals(SecurityUtils.getLoginUser().getOptionJson().getString("forwardSwitch"))) {
|
||||||
resobj = PreInvoicePostForward(bill, "api/medical/writeOffEBill");
|
resobj = PreInvoicePostForward(bill, "api/medical/writeOffEBill");
|
||||||
} else {
|
} else {
|
||||||
@@ -1577,8 +1558,8 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
return R.fail(PromptMsgConstant.Common.M00011);
|
return R.fail(PromptMsgConstant.Common.M00011);
|
||||||
}
|
}
|
||||||
// 查询退款的支付id
|
// 查询退款的支付id
|
||||||
List<PaymentReconciliation> paymentReconciliation =
|
List<PaymentReconciliation> paymentReconciliation
|
||||||
paymentReconciliationService.list(new LambdaQueryWrapper<PaymentReconciliation>()
|
= paymentReconciliationService.list(new LambdaQueryWrapper<PaymentReconciliation>()
|
||||||
.eq(PaymentReconciliation::getRelationId, paymentId)
|
.eq(PaymentReconciliation::getRelationId, paymentId)
|
||||||
.in(PaymentReconciliation::getStatusEnum,
|
.in(PaymentReconciliation::getStatusEnum,
|
||||||
Arrays.asList(PaymentStatus.REFUND_ALL.getValue(),
|
Arrays.asList(PaymentStatus.REFUND_ALL.getValue(),
|
||||||
@@ -1718,13 +1699,10 @@ public class EleInvoiceServiceImpl implements IEleInvoiceService {
|
|||||||
if (YbPayment.OVERLMT_SELFPAY.getValue().equals(detail.getPayEnum())) {
|
if (YbPayment.OVERLMT_SELFPAY.getValue().equals(detail.getPayEnum())) {
|
||||||
invoiceBaseInfoDto.setOverlmtSelfpay(detail.getAmount());
|
invoiceBaseInfoDto.setOverlmtSelfpay(detail.getAmount());
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
// 先行自付费用
|
// 先行自付费用
|
||||||
if (YbPayment.PRESELFPAY_AMT.getValue().equals(detail.getPayEnum())) {
|
if (YbPayment.PRESELFPAY_AMT.getValue().equals(detail.getPayEnum())) {
|
||||||
invoiceBaseInfoDto.setPreselfpayAmt(detail.getAmount());
|
invoiceBaseInfoDto.setPreselfpayAmt(detail.getAmount());
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
// 学校垫支
|
// 学校垫支
|
||||||
if (YbPayment.SCHOOL_GF_PAY.getValue().equals(detail.getPayEnum())) {
|
if (YbPayment.SCHOOL_GF_PAY.getValue().equals(detail.getPayEnum())) {
|
||||||
invoiceBaseInfoDto.setGfRatio(detail.getAmount());
|
invoiceBaseInfoDto.setGfRatio(detail.getAmount());
|
||||||
|
|||||||
@@ -303,8 +303,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
map.put("insuplcAdmdvs", perinfo.getInsuplcAdmdvs());// 患者参保地区划
|
map.put("insuplcAdmdvs", perinfo.getInsuplcAdmdvs());// 患者参保地区划
|
||||||
}
|
}
|
||||||
|
|
||||||
Contract contract =
|
Contract contract
|
||||||
contractService.getOne(new LambdaQueryWrapper<Contract>().eq(Contract::getBusNo, account.getContractNo()));
|
= contractService.getOne(new LambdaQueryWrapper<Contract>().eq(Contract::getBusNo, account.getContractNo()));
|
||||||
if (contract == null) {
|
if (contract == null) {
|
||||||
throw new ServiceException("未查询到合同信息");
|
throw new ServiceException("未查询到合同信息");
|
||||||
}
|
}
|
||||||
@@ -319,8 +319,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
if (encounterDiagnosis != null) {
|
if (encounterDiagnosis != null) {
|
||||||
Condition condition = iConditionService.getById(encounterDiagnosis.getConditionId());
|
Condition condition = iConditionService.getById(encounterDiagnosis.getConditionId());
|
||||||
if (condition != null) {
|
if (condition != null) {
|
||||||
ConditionDefinition conditionDefinition =
|
ConditionDefinition conditionDefinition
|
||||||
iConditionDefinitionService.getOne(new LambdaQueryWrapper<ConditionDefinition>()
|
= iConditionDefinitionService.getOne(new LambdaQueryWrapper<ConditionDefinition>()
|
||||||
.eq(ConditionDefinition::getId, condition.getDefinitionId()));
|
.eq(ConditionDefinition::getId, condition.getDefinitionId()));
|
||||||
if (conditionDefinition != null) {
|
if (conditionDefinition != null) {
|
||||||
map.put("conditionDefinition", conditionDefinition.getName());// 诊断名
|
map.put("conditionDefinition", conditionDefinition.getName());// 诊断名
|
||||||
@@ -349,9 +349,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
|
|
||||||
ChargeItemDefinition chargeItemDefinition = iChargeItemDefinitionService.getById(definitionId);
|
ChargeItemDefinition chargeItemDefinition = iChargeItemDefinitionService.getById(definitionId);
|
||||||
|
|
||||||
|
YbMedChrgItmType medChrgItmType
|
||||||
YbMedChrgItmType medChrgItmType =
|
= YbMedChrgItmType.getByCode(Integer.parseInt(chargeItemDefinition.getYbType()));
|
||||||
YbMedChrgItmType.getByCode(Integer.parseInt(chargeItemDefinition.getYbType()));
|
|
||||||
|
|
||||||
switch (medChrgItmType) {
|
switch (medChrgItmType) {
|
||||||
case BED_FEE:
|
case BED_FEE:
|
||||||
@@ -467,8 +466,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
// 查询所有的支付详情
|
// 查询所有的支付详情
|
||||||
List<Long> paymentIdList =
|
List<Long> paymentIdList
|
||||||
paymentReconciliationList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList());
|
= paymentReconciliationList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList());
|
||||||
List<PaymentRecDetail> paymentDetails = paymentRecDetailService
|
List<PaymentRecDetail> paymentDetails = paymentRecDetailService
|
||||||
.list(new LambdaQueryWrapper<PaymentRecDetail>().in(PaymentRecDetail::getReconciliationId, paymentIdList)
|
.list(new LambdaQueryWrapper<PaymentRecDetail>().in(PaymentRecDetail::getReconciliationId, paymentIdList)
|
||||||
.eq(PaymentRecDetail::getDeleteFlag, DelFlag.NO.getCode()).notIn(PaymentRecDetail::getPayEnum,
|
.eq(PaymentRecDetail::getDeleteFlag, DelFlag.NO.getCode()).notIn(PaymentRecDetail::getPayEnum,
|
||||||
@@ -487,15 +486,15 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
if (paymentDetails.isEmpty()) {
|
if (paymentDetails.isEmpty()) {
|
||||||
return getMap(map);
|
return getMap(map);
|
||||||
}
|
}
|
||||||
Map<Long, List<PaymentRecDetail>> paymentDetailsKV =
|
Map<Long, List<PaymentRecDetail>> paymentDetailsKV
|
||||||
paymentDetails.stream().collect(Collectors.groupingBy(PaymentRecDetail::getReconciliationId));
|
= paymentDetails.stream().collect(Collectors.groupingBy(PaymentRecDetail::getReconciliationId));
|
||||||
// 声明变量,符合要求的付款记录
|
// 声明变量,符合要求的付款记录
|
||||||
Collection<PaymentReconciliation> PaymentReconciliationList;
|
Collection<PaymentReconciliation> PaymentReconciliationList;
|
||||||
List<Account> accountList = new ArrayList<>();
|
List<Account> accountList = new ArrayList<>();
|
||||||
if (!StringUtils.isEmpty(contractNo)) {
|
if (!StringUtils.isEmpty(contractNo)) {
|
||||||
// 查询账户信息用来区分省市医保
|
// 查询账户信息用来区分省市医保
|
||||||
List<Long> accountIds =
|
List<Long> accountIds
|
||||||
paymentDetails.stream().map(PaymentRecDetail::getAccountId).collect(Collectors.toList());
|
= paymentDetails.stream().map(PaymentRecDetail::getAccountId).collect(Collectors.toList());
|
||||||
if (accountIds.isEmpty()) {
|
if (accountIds.isEmpty()) {
|
||||||
throw new ServiceException("查询账户信息为空");
|
throw new ServiceException("查询账户信息为空");
|
||||||
}
|
}
|
||||||
@@ -505,8 +504,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
Map<Long, PaymentReconciliation> paymentMap = new HashMap<>();
|
Map<Long, PaymentReconciliation> paymentMap = new HashMap<>();
|
||||||
for (PaymentRecDetail paymentDetail : paymentDetails) {
|
for (PaymentRecDetail paymentDetail : paymentDetails) {
|
||||||
|
|
||||||
Optional<Account> first =
|
Optional<Account> first
|
||||||
accountList.stream().filter(x -> x.getId().equals(paymentDetail.getAccountId())).findFirst();
|
= accountList.stream().filter(x -> x.getId().equals(paymentDetail.getAccountId())).findFirst();
|
||||||
// 账户不符合要求的筛出掉
|
// 账户不符合要求的筛出掉
|
||||||
if (first.isEmpty() || !first.get().getContractNo().equals(contractNo)) {
|
if (first.isEmpty() || !first.get().getContractNo().equals(contractNo)) {
|
||||||
continue;
|
continue;
|
||||||
@@ -545,7 +544,6 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
// System.out.println(chargeItemId);
|
// System.out.println(chargeItemId);
|
||||||
// System.out.println(",");
|
// System.out.println(",");
|
||||||
// }
|
// }
|
||||||
|
|
||||||
List<ChargeItem> chargeItemList = chargeItemService.list(new LambdaQueryWrapper<ChargeItem>()
|
List<ChargeItem> chargeItemList = chargeItemService.list(new LambdaQueryWrapper<ChargeItem>()
|
||||||
.in(ChargeItem::getId, chargeItemIds).eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode()));
|
.in(ChargeItem::getId, chargeItemIds).eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
if (paymentDetails.isEmpty()) {
|
if (paymentDetails.isEmpty()) {
|
||||||
@@ -558,20 +556,19 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
// System.out.println(JSON.toJSONString(chargeItem));
|
// System.out.println(JSON.toJSONString(chargeItem));
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// 查询收费定义列表
|
// 查询收费定义列表
|
||||||
List<Long> chargeItemDefinitionIdList =
|
List<Long> chargeItemDefinitionIdList
|
||||||
chargeItemList.stream().map(ChargeItem::getDefinitionId).collect(Collectors.toList());
|
= chargeItemList.stream().map(ChargeItem::getDefinitionId).collect(Collectors.toList());
|
||||||
if (chargeItemDefinitionIdList.isEmpty()) {
|
if (chargeItemDefinitionIdList.isEmpty()) {
|
||||||
throw new ServiceException("未查询到收费记录,无收费项信息");
|
throw new ServiceException("未查询到收费记录,无收费项信息");
|
||||||
}
|
}
|
||||||
List<ChargeItemDefinition> chargeItemDefinitions =
|
List<ChargeItemDefinition> chargeItemDefinitions
|
||||||
iChargeItemDefinitionService.listByIds(chargeItemDefinitionIdList);
|
= iChargeItemDefinitionService.listByIds(chargeItemDefinitionIdList);
|
||||||
if (chargeItemDefinitions.isEmpty()) {
|
if (chargeItemDefinitions.isEmpty()) {
|
||||||
throw new ServiceException("未查询到收费记录,无收费项信息");
|
throw new ServiceException("未查询到收费记录,无收费项信息");
|
||||||
}
|
}
|
||||||
Map<Long, List<ChargeItemDefinition>> chargeItemDefKV =
|
Map<Long, List<ChargeItemDefinition>> chargeItemDefKV
|
||||||
chargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getId));
|
= chargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getId));
|
||||||
|
|
||||||
// 查询医保结算id
|
// 查询医保结算id
|
||||||
List<String> settleIds = new ArrayList<>();
|
List<String> settleIds = new ArrayList<>();
|
||||||
@@ -602,8 +599,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
for (PaymentRecDetail paymentDetail : paymentDetails) {
|
for (PaymentRecDetail paymentDetail : paymentDetails) {
|
||||||
|
|
||||||
if (!StringUtils.isEmpty(contractNo)) {
|
if (!StringUtils.isEmpty(contractNo)) {
|
||||||
Optional<Account> first =
|
Optional<Account> first
|
||||||
accountList.stream().filter(x -> x.getId().equals(paymentDetail.getAccountId())).findFirst();
|
= accountList.stream().filter(x -> x.getId().equals(paymentDetail.getAccountId())).findFirst();
|
||||||
if (first.isEmpty() || !first.get().getContractNo().equals(contractNo)) {
|
if (first.isEmpty() || !first.get().getContractNo().equals(contractNo)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -646,14 +643,14 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!returnPaymentList.isEmpty()) {
|
if (!returnPaymentList.isEmpty()) {
|
||||||
List<Long> returnIds =
|
List<Long> returnIds
|
||||||
returnPaymentList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList());
|
= returnPaymentList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
List<Invoice> invoiceList = iInvoiceService.list(new LambdaUpdateWrapper<Invoice>()
|
List<Invoice> invoiceList = iInvoiceService.list(new LambdaUpdateWrapper<Invoice>()
|
||||||
.in(Invoice::getReconciliationId, returnIds).eq(Invoice::getDeleteFlag, DelFlag.NO.getCode()));
|
.in(Invoice::getReconciliationId, returnIds).eq(Invoice::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
if (!invoiceList.isEmpty()) {
|
if (!invoiceList.isEmpty()) {
|
||||||
Map<Long, List<Invoice>> invoiceKV =
|
Map<Long, List<Invoice>> invoiceKV
|
||||||
invoiceList.stream().collect(Collectors.groupingBy(Invoice::getReconciliationId));
|
= invoiceList.stream().collect(Collectors.groupingBy(Invoice::getReconciliationId));
|
||||||
for (PaymentReconciliation paymentReconciliation : returnPaymentList) {
|
for (PaymentReconciliation paymentReconciliation : returnPaymentList) {
|
||||||
returnBillVO = new ReturnBillVO();
|
returnBillVO = new ReturnBillVO();
|
||||||
returnBillVO.setTotalAmount(paymentReconciliation.getTenderedAmount());
|
returnBillVO.setTotalAmount(paymentReconciliation.getTenderedAmount());
|
||||||
@@ -719,8 +716,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
|
|
||||||
ChargeItemDefinition chargeItemDefinition = chargeItemDefKV.get(definitionId).get(0);
|
ChargeItemDefinition chargeItemDefinition = chargeItemDefKV.get(definitionId).get(0);
|
||||||
|
|
||||||
YbMedChrgItmType medChrgItmType =
|
YbMedChrgItmType medChrgItmType
|
||||||
YbMedChrgItmType.getByCode(Integer.parseInt(chargeItemDefinition.getYbType()));
|
= YbMedChrgItmType.getByCode(Integer.parseInt(chargeItemDefinition.getYbType()));
|
||||||
|
|
||||||
switch (medChrgItmType) {
|
switch (medChrgItmType) {
|
||||||
case BED_FEE:
|
case BED_FEE:
|
||||||
@@ -799,10 +796,10 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
throw new ServiceException("收费定义未设置财务分类,提示信息chargeItemDefinitionId:" + chargeItemDefinition.getId());
|
throw new ServiceException("收费定义未设置财务分类,提示信息chargeItemDefinitionId:" + chargeItemDefinition.getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Map<String, List<ChargeItemDefinition>> chargeItemDefMapByTypeCode =
|
Map<String, List<ChargeItemDefinition>> chargeItemDefMapByTypeCode
|
||||||
chargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getTypeCode));
|
= chargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getTypeCode));
|
||||||
Map<Long, List<ChargeItem>> chargeItemMapByDefinitionId =
|
Map<Long, List<ChargeItem>> chargeItemMapByDefinitionId
|
||||||
chargeItemList.stream().collect(Collectors.groupingBy(ChargeItem::getDefinitionId));
|
= chargeItemList.stream().collect(Collectors.groupingBy(ChargeItem::getDefinitionId));
|
||||||
|
|
||||||
for (Map.Entry<String, List<ChargeItemDefinition>> stringListEntry : chargeItemDefMapByTypeCode.entrySet()) {
|
for (Map.Entry<String, List<ChargeItemDefinition>> stringListEntry : chargeItemDefMapByTypeCode.entrySet()) {
|
||||||
String key = stringListEntry.getKey();
|
String key = stringListEntry.getKey();
|
||||||
@@ -863,16 +860,15 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// 查询所有的支付详情
|
// 查询所有的支付详情
|
||||||
List<Long> paymentIdList =
|
List<Long> paymentIdList
|
||||||
paymentReconciliationList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList());
|
= paymentReconciliationList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList());
|
||||||
// List<PaymentRecDetail> paymentDetails = paymentRecDetailService
|
// List<PaymentRecDetail> paymentDetails = paymentRecDetailService
|
||||||
// .list(new LambdaQueryWrapper<PaymentRecDetail>().in(PaymentRecDetail::getReconciliationId, paymentIdList)
|
// .list(new LambdaQueryWrapper<PaymentRecDetail>().in(PaymentRecDetail::getReconciliationId, paymentIdList)
|
||||||
// .eq(PaymentRecDetail::getDeleteFlag, DelFlag.NO.getCode()));
|
// .eq(PaymentRecDetail::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
|
|
||||||
List<PaymentRecDetailAccountResult> PaymentRecDetailAccountResultList =
|
List<PaymentRecDetailAccountResult> PaymentRecDetailAccountResultList
|
||||||
paymentRecDetailService.getListByReconciliationIds(paymentIdList, PaymentKind.OUTPATIENT_CLINIC.getValue());
|
= paymentRecDetailService.getListByReconciliationIds(paymentIdList, PaymentKind.OUTPATIENT_CLINIC.getValue());
|
||||||
if (PaymentRecDetailAccountResultList.isEmpty()) {
|
if (PaymentRecDetailAccountResultList.isEmpty()) {
|
||||||
return getMap(map);
|
return getMap(map);
|
||||||
}
|
}
|
||||||
@@ -935,7 +931,6 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
// throw new ServiceException("收费项:" + chargeItem.getId());
|
// throw new ServiceException("收费项:" + chargeItem.getId());
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// 根据省市医保分组
|
// 根据省市医保分组
|
||||||
Map<String, List<PaymentRecDetailAccountResult>> paymentDetailsMapByContract = PaymentRecDetailAccountResultList
|
Map<String, List<PaymentRecDetailAccountResult>> paymentDetailsMapByContract = PaymentRecDetailAccountResultList
|
||||||
.stream().collect(Collectors.groupingBy(PaymentRecDetailAccountResult::getContractNo));
|
.stream().collect(Collectors.groupingBy(PaymentRecDetailAccountResult::getContractNo));
|
||||||
@@ -964,20 +959,19 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
// System.out.println(JSON.toJSONString(chargeItem));
|
// System.out.println(JSON.toJSONString(chargeItem));
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// 查询收费定义列表
|
// 查询收费定义列表
|
||||||
List<Long> chargeItemDefinitionIdList =
|
List<Long> chargeItemDefinitionIdList
|
||||||
chargeItemList.stream().map(ChargeItem::getDefinitionId).collect(Collectors.toList());
|
= chargeItemList.stream().map(ChargeItem::getDefinitionId).collect(Collectors.toList());
|
||||||
if (chargeItemDefinitionIdList.isEmpty()) {
|
if (chargeItemDefinitionIdList.isEmpty()) {
|
||||||
throw new ServiceException("未查询到收费记录,无收费项信息");
|
throw new ServiceException("未查询到收费记录,无收费项信息");
|
||||||
}
|
}
|
||||||
List<ChargeItemDefinition> chargeItemDefinitions =
|
List<ChargeItemDefinition> chargeItemDefinitions
|
||||||
iChargeItemDefinitionService.listByIds(chargeItemDefinitionIdList);
|
= iChargeItemDefinitionService.listByIds(chargeItemDefinitionIdList);
|
||||||
if (chargeItemDefinitions.isEmpty()) {
|
if (chargeItemDefinitions.isEmpty()) {
|
||||||
throw new ServiceException("未查询到收费记录,无收费项信息");
|
throw new ServiceException("未查询到收费记录,无收费项信息");
|
||||||
}
|
}
|
||||||
Map<Long, List<ChargeItemDefinition>> chargeItemDefKV =
|
Map<Long, List<ChargeItemDefinition>> chargeItemDefKV
|
||||||
chargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getId));
|
= chargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getId));
|
||||||
|
|
||||||
// 查询医保结算id
|
// 查询医保结算id
|
||||||
List<String> settleIds = new ArrayList<>();
|
List<String> settleIds = new ArrayList<>();
|
||||||
@@ -1011,8 +1005,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
BigDecimal YbCashSum = BigDecimal.ZERO;// 医保现金总额
|
BigDecimal YbCashSum = BigDecimal.ZERO;// 医保现金总额
|
||||||
// 长大版本要显示出来省市医保的区别
|
// 长大版本要显示出来省市医保的区别
|
||||||
List<Contract> redisContractList = iContractService.getRedisContractList();
|
List<Contract> redisContractList = iContractService.getRedisContractList();
|
||||||
Map<String, List<Contract>> contractMapByBusNo =
|
Map<String, List<Contract>> contractMapByBusNo
|
||||||
redisContractList.stream().collect(Collectors.groupingBy(Contract::getBusNo));
|
= redisContractList.stream().collect(Collectors.groupingBy(Contract::getBusNo));
|
||||||
for (Map.Entry<String, List<PaymentRecDetailAccountResult>> stringListEntry : paymentDetailsMapByContract
|
for (Map.Entry<String, List<PaymentRecDetailAccountResult>> stringListEntry : paymentDetailsMapByContract
|
||||||
.entrySet()) {
|
.entrySet()) {
|
||||||
String key = stringListEntry.getKey();
|
String key = stringListEntry.getKey();
|
||||||
@@ -1122,11 +1116,11 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
List<ChargeItemDefinition> beforeChargeItemDefinitions = new ArrayList<>();
|
List<ChargeItemDefinition> beforeChargeItemDefinitions = new ArrayList<>();
|
||||||
List<ChargeItem> beforeChargeItemList = new ArrayList<>();
|
List<ChargeItem> beforeChargeItemList = new ArrayList<>();
|
||||||
if (!returnPaymentList.isEmpty()) {
|
if (!returnPaymentList.isEmpty()) {
|
||||||
List<Long> returnIds =
|
List<Long> returnIds
|
||||||
returnPaymentList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList());
|
= returnPaymentList.stream().map(PaymentReconciliation::getId).collect(Collectors.toList());
|
||||||
// 查原付款单子
|
// 查原付款单子
|
||||||
List<Long> relationIdList =
|
List<Long> relationIdList
|
||||||
returnPaymentList.stream().map(PaymentReconciliation::getRelationId).collect(Collectors.toList());
|
= returnPaymentList.stream().map(PaymentReconciliation::getRelationId).collect(Collectors.toList());
|
||||||
if (relationIdList.isEmpty() || returnPaymentList.size() != relationIdList.size()) {
|
if (relationIdList.isEmpty() || returnPaymentList.size() != relationIdList.size()) {
|
||||||
throw new ServiceException("数据异常,存在无法关联到原单的退款单,请联系工程师");
|
throw new ServiceException("数据异常,存在无法关联到原单的退款单,请联系工程师");
|
||||||
}
|
}
|
||||||
@@ -1142,8 +1136,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
}
|
}
|
||||||
if (!beforeList.isEmpty()) {
|
if (!beforeList.isEmpty()) {
|
||||||
// 拆解所有的chargeItemId,拼装成一个集合
|
// 拆解所有的chargeItemId,拼装成一个集合
|
||||||
List<String> chargeItemIdList =
|
List<String> chargeItemIdList
|
||||||
beforeList.stream().map(PaymentReconciliation::getChargeItemIds).collect(Collectors.toList());
|
= beforeList.stream().map(PaymentReconciliation::getChargeItemIds).collect(Collectors.toList());
|
||||||
List<Long> beforeChargeItemIds = new ArrayList<>();
|
List<Long> beforeChargeItemIds = new ArrayList<>();
|
||||||
for (String chargeItemId : chargeItemIdList) {
|
for (String chargeItemId : chargeItemIdList) {
|
||||||
if (StringUtils.isNotEmpty(chargeItemId)) {
|
if (StringUtils.isNotEmpty(chargeItemId)) {
|
||||||
@@ -1158,8 +1152,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
if (beforeChargeItemList.isEmpty()) {
|
if (beforeChargeItemList.isEmpty()) {
|
||||||
throw new ServiceException("数据异常,查找不到退费收费项信息");
|
throw new ServiceException("数据异常,查找不到退费收费项信息");
|
||||||
}
|
}
|
||||||
List<Long> beforeChargeItemDefinitionIdList =
|
List<Long> beforeChargeItemDefinitionIdList
|
||||||
beforeChargeItemList.stream().map(ChargeItem::getDefinitionId).collect(Collectors.toList());
|
= beforeChargeItemList.stream().map(ChargeItem::getDefinitionId).collect(Collectors.toList());
|
||||||
if (beforeChargeItemDefinitionIdList.isEmpty()) {
|
if (beforeChargeItemDefinitionIdList.isEmpty()) {
|
||||||
throw new ServiceException("数据异常,查找不到收费项的定义信息");
|
throw new ServiceException("数据异常,查找不到收费项的定义信息");
|
||||||
}
|
}
|
||||||
@@ -1180,8 +1174,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
|
|
||||||
ChargeItemDefinition chargeItemDefinition = chargeItemDefKV.get(definitionId).get(0);
|
ChargeItemDefinition chargeItemDefinition = chargeItemDefKV.get(definitionId).get(0);
|
||||||
|
|
||||||
YbMedChrgItmType medChrgItmType =
|
YbMedChrgItmType medChrgItmType
|
||||||
YbMedChrgItmType.getByCode(Integer.parseInt(chargeItemDefinition.getYbType()));
|
= YbMedChrgItmType.getByCode(Integer.parseInt(chargeItemDefinition.getYbType()));
|
||||||
|
|
||||||
switch (medChrgItmType) {
|
switch (medChrgItmType) {
|
||||||
case BED_FEE:
|
case BED_FEE:
|
||||||
@@ -1233,13 +1227,13 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
List<Invoice> invoiceList = iInvoiceService.list(new LambdaUpdateWrapper<Invoice>()
|
List<Invoice> invoiceList = iInvoiceService.list(new LambdaUpdateWrapper<Invoice>()
|
||||||
.in(Invoice::getReconciliationId, returnIds).eq(Invoice::getDeleteFlag, DelFlag.NO.getCode()));
|
.in(Invoice::getReconciliationId, returnIds).eq(Invoice::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
if (!invoiceList.isEmpty()) {
|
if (!invoiceList.isEmpty()) {
|
||||||
Map<Long, List<Invoice>> invoiceKV =
|
Map<Long, List<Invoice>> invoiceKV
|
||||||
invoiceList.stream().collect(Collectors.groupingBy(Invoice::getReconciliationId));
|
= invoiceList.stream().collect(Collectors.groupingBy(Invoice::getReconciliationId));
|
||||||
for (PaymentReconciliation paymentReconciliation : returnPaymentList) {
|
for (PaymentReconciliation paymentReconciliation : returnPaymentList) {
|
||||||
returnBillVO = new ReturnBillVO();
|
returnBillVO = new ReturnBillVO();
|
||||||
returnBillVO.setTotalAmount(paymentReconciliation.getTenderedAmount());
|
returnBillVO.setTotalAmount(paymentReconciliation.getTenderedAmount());
|
||||||
List<PaymentRecDetailAccountResult> paymentRecDetails =
|
List<PaymentRecDetailAccountResult> paymentRecDetails
|
||||||
paymentDetailsKV.get(paymentReconciliation.getId());
|
= paymentDetailsKV.get(paymentReconciliation.getId());
|
||||||
for (PaymentRecDetailAccountResult paymentRecDetail : paymentRecDetails) {
|
for (PaymentRecDetailAccountResult paymentRecDetail : paymentRecDetails) {
|
||||||
if (YbPayment.SELF_CASH_PAY.getValue().equals(paymentRecDetail.getPayEnum())) {
|
if (YbPayment.SELF_CASH_PAY.getValue().equals(paymentRecDetail.getPayEnum())) {
|
||||||
returnBillVO.setPaidAmount(paymentRecDetail.getAmount());
|
returnBillVO.setPaidAmount(paymentRecDetail.getAmount());
|
||||||
@@ -1286,8 +1280,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
|
|
||||||
ChargeItemDefinition chargeItemDefinition = chargeItemDefKV.get(definitionId).get(0);
|
ChargeItemDefinition chargeItemDefinition = chargeItemDefKV.get(definitionId).get(0);
|
||||||
|
|
||||||
YbMedChrgItmType medChrgItmType =
|
YbMedChrgItmType medChrgItmType
|
||||||
YbMedChrgItmType.getByCode(Integer.parseInt(chargeItemDefinition.getYbType()));
|
= YbMedChrgItmType.getByCode(Integer.parseInt(chargeItemDefinition.getYbType()));
|
||||||
|
|
||||||
switch (medChrgItmType) {
|
switch (medChrgItmType) {
|
||||||
case BED_FEE:
|
case BED_FEE:
|
||||||
@@ -1367,10 +1361,10 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, List<ChargeItemDefinition>> chargeItemDefMapByTypeCode =
|
Map<String, List<ChargeItemDefinition>> chargeItemDefMapByTypeCode
|
||||||
chargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getTypeCode));
|
= chargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getTypeCode));
|
||||||
Map<Long, List<ChargeItem>> chargeItemMapByDefinitionId =
|
Map<Long, List<ChargeItem>> chargeItemMapByDefinitionId
|
||||||
chargeItemList.stream().collect(Collectors.groupingBy(ChargeItem::getDefinitionId));
|
= chargeItemList.stream().collect(Collectors.groupingBy(ChargeItem::getDefinitionId));
|
||||||
|
|
||||||
for (Map.Entry<String, List<ChargeItemDefinition>> stringListEntry : chargeItemDefMapByTypeCode.entrySet()) {
|
for (Map.Entry<String, List<ChargeItemDefinition>> stringListEntry : chargeItemDefMapByTypeCode.entrySet()) {
|
||||||
String key = stringListEntry.getKey();
|
String key = stringListEntry.getKey();
|
||||||
@@ -1389,10 +1383,10 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
|
|
||||||
// 超本时间段的退费单统计
|
// 超本时间段的退费单统计
|
||||||
if (!beforeChargeItemDefinitions.isEmpty() && !beforeChargeItemList.isEmpty()) {
|
if (!beforeChargeItemDefinitions.isEmpty() && !beforeChargeItemList.isEmpty()) {
|
||||||
Map<String, List<ChargeItemDefinition>> beforeChargeItemDefMapByTypeCode =
|
Map<String, List<ChargeItemDefinition>> beforeChargeItemDefMapByTypeCode
|
||||||
beforeChargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getTypeCode));
|
= beforeChargeItemDefinitions.stream().collect(Collectors.groupingBy(ChargeItemDefinition::getTypeCode));
|
||||||
Map<Long, List<ChargeItem>> beforeChargeItemMapByDefinitionId =
|
Map<Long, List<ChargeItem>> beforeChargeItemMapByDefinitionId
|
||||||
beforeChargeItemList.stream().collect(Collectors.groupingBy(ChargeItem::getDefinitionId));
|
= beforeChargeItemList.stream().collect(Collectors.groupingBy(ChargeItem::getDefinitionId));
|
||||||
for (Map.Entry<String, List<ChargeItemDefinition>> longListEntry : beforeChargeItemDefMapByTypeCode
|
for (Map.Entry<String, List<ChargeItemDefinition>> longListEntry : beforeChargeItemDefMapByTypeCode
|
||||||
.entrySet()) {
|
.entrySet()) {
|
||||||
BigDecimal bigDecimal = map.get(longListEntry.getKey()) == null ? BigDecimal.ZERO
|
BigDecimal bigDecimal = map.get(longListEntry.getKey()) == null ? BigDecimal.ZERO
|
||||||
@@ -1413,8 +1407,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
|
|
||||||
// 医保人次自费人次计算
|
// 医保人次自费人次计算
|
||||||
List<EncounterAccountDto> list = iEncounterService.getEncounterInfoByTime(startDate, endDate);
|
List<EncounterAccountDto> list = iEncounterService.getEncounterInfoByTime(startDate, endDate);
|
||||||
Map<String, List<EncounterAccountDto>> encounterAccountDtoMapByContract =
|
Map<String, List<EncounterAccountDto>> encounterAccountDtoMapByContract
|
||||||
list.stream().collect(Collectors.groupingBy(EncounterAccountDto::getContractNo));
|
= list.stream().collect(Collectors.groupingBy(EncounterAccountDto::getContractNo));
|
||||||
for (Map.Entry<String, List<EncounterAccountDto>> stringListEntry : encounterAccountDtoMapByContract
|
for (Map.Entry<String, List<EncounterAccountDto>> stringListEntry : encounterAccountDtoMapByContract
|
||||||
.entrySet()) {
|
.entrySet()) {
|
||||||
String key = stringListEntry.getKey();
|
String key = stringListEntry.getKey();
|
||||||
@@ -1473,10 +1467,10 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
map.put("amount", amount);// 应收金额
|
map.put("amount", amount);// 应收金额
|
||||||
|
|
||||||
// 查询所有的支付详情(业务注释:收集并统计不同支付渠道支付的费用)
|
// 查询所有的支付详情(业务注释:收集并统计不同支付渠道支付的费用)
|
||||||
List<Long> paymentIdList =
|
List<Long> paymentIdList
|
||||||
paymentReconciliationList.stream().map(PaymentReconciliationAccountDel::getId).collect(Collectors.toList());
|
= paymentReconciliationList.stream().map(PaymentReconciliationAccountDel::getId).collect(Collectors.toList());
|
||||||
List<PaymentRecDetailAccountResult> PaymentRecDetailAccountResultList =
|
List<PaymentRecDetailAccountResult> PaymentRecDetailAccountResultList
|
||||||
paymentRecDetailService.getListByReconciliationIds(paymentIdList, PaymentKind.OUTPATIENT_CLINIC.getValue());
|
= paymentRecDetailService.getListByReconciliationIds(paymentIdList, PaymentKind.OUTPATIENT_CLINIC.getValue());
|
||||||
|
|
||||||
if (PaymentRecDetailAccountResultList.isEmpty()) {
|
if (PaymentRecDetailAccountResultList.isEmpty()) {
|
||||||
return getMap(map);
|
return getMap(map);
|
||||||
@@ -1503,8 +1497,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
BigDecimal discountSum = BigDecimal.ZERO;// 优惠金额
|
BigDecimal discountSum = BigDecimal.ZERO;// 优惠金额
|
||||||
// 长大版本要显示出来省市医保的区别
|
// 长大版本要显示出来省市医保的区别
|
||||||
List<Contract> redisContractList = iContractService.getRedisContractList();
|
List<Contract> redisContractList = iContractService.getRedisContractList();
|
||||||
Map<String, List<Contract>> contractMapByBusNo =
|
Map<String, List<Contract>> contractMapByBusNo
|
||||||
redisContractList.stream().collect(Collectors.groupingBy(Contract::getBusNo));
|
= redisContractList.stream().collect(Collectors.groupingBy(Contract::getBusNo));
|
||||||
for (Map.Entry<String, List<PaymentRecDetailAccountResult>> stringListEntry : paymentDetailsMapByContract
|
for (Map.Entry<String, List<PaymentRecDetailAccountResult>> stringListEntry : paymentDetailsMapByContract
|
||||||
.entrySet()) {
|
.entrySet()) {
|
||||||
|
|
||||||
@@ -1584,15 +1578,15 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
|
|
||||||
Map<Long, List<PaymentReconciliationAccountDel>> returnPaymentMapByRelationId = new HashMap<>();
|
Map<Long, List<PaymentReconciliationAccountDel>> returnPaymentMapByRelationId = new HashMap<>();
|
||||||
if (!returnList.isEmpty()) {
|
if (!returnList.isEmpty()) {
|
||||||
returnPaymentMapByRelationId =
|
returnPaymentMapByRelationId
|
||||||
returnList.stream().collect(Collectors.groupingBy(PaymentReconciliationAccountDel::getRelationId));
|
= returnList.stream().collect(Collectors.groupingBy(PaymentReconciliationAccountDel::getRelationId));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> addChargeItemIds = new ArrayList<>();
|
List<String> addChargeItemIds = new ArrayList<>();
|
||||||
List<String> subChargeItemIds = new ArrayList<>();
|
List<String> subChargeItemIds = new ArrayList<>();
|
||||||
for (PaymentReconciliationAccountDel paymentReconciliation : paymentList) {
|
for (PaymentReconciliationAccountDel paymentReconciliation : paymentList) {
|
||||||
List<PaymentReconciliationAccountDel> paymentReconciliations =
|
List<PaymentReconciliationAccountDel> paymentReconciliations
|
||||||
returnPaymentMapByRelationId.get(paymentReconciliation.getId());
|
= returnPaymentMapByRelationId.get(paymentReconciliation.getId());
|
||||||
if (paymentReconciliations != null && !paymentReconciliations.isEmpty()) {
|
if (paymentReconciliations != null && !paymentReconciliations.isEmpty()) {
|
||||||
// 情况a
|
// 情况a
|
||||||
if (PaymentStatus.SUCCESS.getValue().equals(paymentReconciliation.getStatusEnum())) {
|
if (PaymentStatus.SUCCESS.getValue().equals(paymentReconciliation.getStatusEnum())) {
|
||||||
@@ -1646,8 +1640,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
if (chargeItemDefInfoByIds.isEmpty()) {
|
if (chargeItemDefInfoByIds.isEmpty()) {
|
||||||
throw new ServiceException("数据异常,该时间段内未查询到收费项");
|
throw new ServiceException("数据异常,该时间段内未查询到收费项");
|
||||||
}
|
}
|
||||||
Map<Long, List<ChargeItemDefInfo>> chargeItemDefInfoKVById =
|
Map<Long, List<ChargeItemDefInfo>> chargeItemDefInfoKVById
|
||||||
chargeItemDefInfoByIds.stream().collect(Collectors.groupingBy(ChargeItemDefInfo::getId));
|
= chargeItemDefInfoByIds.stream().collect(Collectors.groupingBy(ChargeItemDefInfo::getId));
|
||||||
|
|
||||||
// 省名变量
|
// 省名变量
|
||||||
BigDecimal bedFee = BigDecimal.ZERO;// 床位费
|
BigDecimal bedFee = BigDecimal.ZERO;// 床位费
|
||||||
@@ -1805,15 +1799,9 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
map.put("GENERAL_CONSULTATION_FEE", generalConsultationFee);// 一般诊疗费
|
map.put("GENERAL_CONSULTATION_FEE", generalConsultationFee);// 一般诊疗费
|
||||||
map.put("REGISTRATION_FEE", registrationFee);// 挂号费
|
map.put("REGISTRATION_FEE", registrationFee);// 挂号费
|
||||||
map.put("OTHER_FEE", otherFee);// 其他费用
|
map.put("OTHER_FEE", otherFee);// 其他费用
|
||||||
<<<<<<< HEAD
|
|
||||||
sum = bedFee.add(diagnosticFee).add(checkFee).add(diagnosticTestFee).add(medicalExpenseFee).add(operationFee)
|
|
||||||
.add(nursingFee).add(sanitaryMaterialsFee).add(westMedicine).add(chineseMedicineFee)
|
|
||||||
.add(chineseMedicineSlicesFee).add(generalConsultationFee).add(registrationFee).add(otherFee).subtract(discountSum);
|
|
||||||
=======
|
|
||||||
sum = bedFee.add(diagnosticFee).add(checkFee).add(diagnosticTestFee).add(outDiagnosticTestFee).add(medicalExpenseFee).add(operationFee)
|
sum = bedFee.add(diagnosticFee).add(checkFee).add(diagnosticTestFee).add(outDiagnosticTestFee).add(medicalExpenseFee).add(operationFee)
|
||||||
.add(nursingFee).add(sanitaryMaterialsFee).add(westMedicine).add(chineseMedicineFee).add(
|
.add(nursingFee).add(sanitaryMaterialsFee).add(westMedicine).add(chineseMedicineFee).add(
|
||||||
chineseMedicineSlicesFee).add(generalConsultationFee).add(registrationFee).add(otherFee);
|
chineseMedicineSlicesFee).add(generalConsultationFee).add(registrationFee).add(otherFee);
|
||||||
>>>>>>> v1.3
|
|
||||||
map.put("SUM", sum);// 合计费用
|
map.put("SUM", sum);// 合计费用
|
||||||
|
|
||||||
Map<String, List<ChargeItemDefInfo>> chargeItemDefKVByTypeCode = chargeItemDefInfoByIds.stream()
|
Map<String, List<ChargeItemDefInfo>> chargeItemDefKVByTypeCode = chargeItemDefInfoByIds.stream()
|
||||||
@@ -1848,11 +1836,11 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
ReturnBillVO returnBillVO;
|
ReturnBillVO returnBillVO;
|
||||||
|
|
||||||
if (!returnList.isEmpty()) {
|
if (!returnList.isEmpty()) {
|
||||||
List<Long> returnIds =
|
List<Long> returnIds
|
||||||
returnList.stream().map(PaymentReconciliationAccountDel::getId).collect(Collectors.toList());
|
= returnList.stream().map(PaymentReconciliationAccountDel::getId).collect(Collectors.toList());
|
||||||
// 查原付款单子
|
// 查原付款单子
|
||||||
List<Long> relationIdList =
|
List<Long> relationIdList
|
||||||
returnList.stream().map(PaymentReconciliationAccountDel::getRelationId).collect(Collectors.toList());
|
= returnList.stream().map(PaymentReconciliationAccountDel::getRelationId).collect(Collectors.toList());
|
||||||
if (relationIdList.isEmpty() || returnList.size() != relationIdList.size()) {
|
if (relationIdList.isEmpty() || returnList.size() != relationIdList.size()) {
|
||||||
throw new ServiceException("数据异常,存在无法关联到原单的退款单,请联系工程师");
|
throw new ServiceException("数据异常,存在无法关联到原单的退款单,请联系工程师");
|
||||||
}
|
}
|
||||||
@@ -1860,13 +1848,13 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
List<Invoice> invoiceList = iInvoiceService.list(new LambdaUpdateWrapper<Invoice>()
|
List<Invoice> invoiceList = iInvoiceService.list(new LambdaUpdateWrapper<Invoice>()
|
||||||
.in(Invoice::getReconciliationId, returnIds).eq(Invoice::getDeleteFlag, DelFlag.NO.getCode()));
|
.in(Invoice::getReconciliationId, returnIds).eq(Invoice::getDeleteFlag, DelFlag.NO.getCode()));
|
||||||
if (!invoiceList.isEmpty()) {
|
if (!invoiceList.isEmpty()) {
|
||||||
Map<Long, List<Invoice>> invoiceKV =
|
Map<Long, List<Invoice>> invoiceKV
|
||||||
invoiceList.stream().collect(Collectors.groupingBy(Invoice::getReconciliationId));
|
= invoiceList.stream().collect(Collectors.groupingBy(Invoice::getReconciliationId));
|
||||||
for (PaymentReconciliationAccountDel paymentReconciliation : returnList) {
|
for (PaymentReconciliationAccountDel paymentReconciliation : returnList) {
|
||||||
returnBillVO = new ReturnBillVO();
|
returnBillVO = new ReturnBillVO();
|
||||||
returnBillVO.setTotalAmount(paymentReconciliation.getTenderedAmount());
|
returnBillVO.setTotalAmount(paymentReconciliation.getTenderedAmount());
|
||||||
List<PaymentRecDetailAccountResult> paymentRecDetails =
|
List<PaymentRecDetailAccountResult> paymentRecDetails
|
||||||
paymentDetailsKV.get(paymentReconciliation.getId());
|
= paymentDetailsKV.get(paymentReconciliation.getId());
|
||||||
for (PaymentRecDetailAccountResult paymentRecDetail : paymentRecDetails) {
|
for (PaymentRecDetailAccountResult paymentRecDetail : paymentRecDetails) {
|
||||||
if (YbPayment.SELF_CASH_PAY.getValue().equals(paymentRecDetail.getPayEnum())) {
|
if (YbPayment.SELF_CASH_PAY.getValue().equals(paymentRecDetail.getPayEnum())) {
|
||||||
returnBillVO.setPaidAmount(paymentRecDetail.getAmount());
|
returnBillVO.setPaidAmount(paymentRecDetail.getAmount());
|
||||||
@@ -1894,11 +1882,10 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
// map.put("tcSum", tcSum);// 基本统筹
|
// map.put("tcSum", tcSum);// 基本统筹
|
||||||
// map.put("zhSum", zhSum);// 账户支付
|
// map.put("zhSum", zhSum);// 账户支付
|
||||||
// map.put("fundSum", fundSum);// 基金支付总额
|
// map.put("fundSum", fundSum);// 基金支付总额
|
||||||
|
|
||||||
// 医保人次自费人次计算
|
// 医保人次自费人次计算
|
||||||
List<EncounterAccountDto> list = iEncounterService.getEncounterInfoByTime(startDate, endDate);
|
List<EncounterAccountDto> list = iEncounterService.getEncounterInfoByTime(startDate, endDate);
|
||||||
Map<String, List<EncounterAccountDto>> encounterAccountDtoMapByContract =
|
Map<String, List<EncounterAccountDto>> encounterAccountDtoMapByContract
|
||||||
list.stream().collect(Collectors.groupingBy(EncounterAccountDto::getContractNo));
|
= list.stream().collect(Collectors.groupingBy(EncounterAccountDto::getContractNo));
|
||||||
for (Map.Entry<String, List<EncounterAccountDto>> stringListEntry : encounterAccountDtoMapByContract
|
for (Map.Entry<String, List<EncounterAccountDto>> stringListEntry : encounterAccountDtoMapByContract
|
||||||
.entrySet()) {
|
.entrySet()) {
|
||||||
String key = stringListEntry.getKey();
|
String key = stringListEntry.getKey();
|
||||||
@@ -2032,8 +2019,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
||||||
break;
|
break;
|
||||||
case CHINESE_MEDICINE_SLICES_FEE:
|
case CHINESE_MEDICINE_SLICES_FEE:
|
||||||
tyChineseMedicineSlicesFee =
|
tyChineseMedicineSlicesFee
|
||||||
tyChineseMedicineSlicesFee.add(chargeItem.getSystemDiscountPrice() == null
|
= tyChineseMedicineSlicesFee.add(chargeItem.getSystemDiscountPrice() == null
|
||||||
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
||||||
break;
|
break;
|
||||||
case CHINESE_MEDICINE_FEE:
|
case CHINESE_MEDICINE_FEE:
|
||||||
@@ -2109,8 +2096,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
||||||
break;
|
break;
|
||||||
case CHINESE_MEDICINE_SLICES_FEE:
|
case CHINESE_MEDICINE_SLICES_FEE:
|
||||||
tyChineseMedicineSlicesFee =
|
tyChineseMedicineSlicesFee
|
||||||
tyChineseMedicineSlicesFee.subtract(chargeItem.getSystemDiscountPrice() == null
|
= tyChineseMedicineSlicesFee.subtract(chargeItem.getSystemDiscountPrice() == null
|
||||||
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
||||||
break;
|
break;
|
||||||
case CHINESE_MEDICINE_FEE:
|
case CHINESE_MEDICINE_FEE:
|
||||||
@@ -2118,8 +2105,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
||||||
break;
|
break;
|
||||||
case GENERAL_CONSULTATION_FEE:
|
case GENERAL_CONSULTATION_FEE:
|
||||||
tyGeneralConsultationFee =
|
tyGeneralConsultationFee
|
||||||
tyGeneralConsultationFee.subtract(chargeItem.getSystemDiscountPrice() == null
|
= tyGeneralConsultationFee.subtract(chargeItem.getSystemDiscountPrice() == null
|
||||||
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
? chargeItem.getTotalPrice() : chargeItem.getSystemDiscountPrice());
|
||||||
break;
|
break;
|
||||||
case REGISTRATION_FEE:
|
case REGISTRATION_FEE:
|
||||||
@@ -2236,13 +2223,13 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
.map(Long::valueOf) // 转换为Long
|
.map(Long::valueOf) // 转换为Long
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
List<ChargeItemExtendInfoDto> ChargeItemExtendInfoDtoList =
|
List<ChargeItemExtendInfoDto> ChargeItemExtendInfoDtoList
|
||||||
chargeBillMapper.selectChargeItemExtendInfoList(chargeItemIds, chargeSummaryDto.getOrgIdList());
|
= chargeBillMapper.selectChargeItemExtendInfoList(chargeItemIds, chargeSummaryDto.getOrgIdList());
|
||||||
|
|
||||||
Map<Long, List<ChargeItemExtendInfoDto>> chargeItemExtendInfoDtoListGroupByOrgIdMap =
|
Map<Long, List<ChargeItemExtendInfoDto>> chargeItemExtendInfoDtoListGroupByOrgIdMap
|
||||||
ChargeItemExtendInfoDtoList.stream().collect(Collectors.groupingBy(ChargeItemExtendInfoDto::getOrgId));
|
= ChargeItemExtendInfoDtoList.stream().collect(Collectors.groupingBy(ChargeItemExtendInfoDto::getOrgId));
|
||||||
LambdaQueryWrapper<Organization> organizationLambdaQueryWrapper =
|
LambdaQueryWrapper<Organization> organizationLambdaQueryWrapper
|
||||||
new LambdaQueryWrapper<Organization>().eq(Organization::getTypeEnum, OrganizationType.DEPARTMENT.getValue())
|
= new LambdaQueryWrapper<Organization>().eq(Organization::getTypeEnum, OrganizationType.DEPARTMENT.getValue())
|
||||||
.eq(Organization::getDeleteFlag, DelFlag.NO.getCode()).orderByDesc(Organization::getDisplayOrder);
|
.eq(Organization::getDeleteFlag, DelFlag.NO.getCode()).orderByDesc(Organization::getDisplayOrder);
|
||||||
if (chargeSummaryDto.getOrgIdList() != null && !chargeSummaryDto.getOrgIdList().isEmpty()) {
|
if (chargeSummaryDto.getOrgIdList() != null && !chargeSummaryDto.getOrgIdList().isEmpty()) {
|
||||||
organizationLambdaQueryWrapper.in(Organization::getId, chargeSummaryDto.getOrgIdList());
|
organizationLambdaQueryWrapper.in(Organization::getId, chargeSummaryDto.getOrgIdList());
|
||||||
@@ -2256,8 +2243,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
for (Organization organization : organizationList) {
|
for (Organization organization : organizationList) {
|
||||||
orgIncomeDto = new OrgIncomeDto();
|
orgIncomeDto = new OrgIncomeDto();
|
||||||
orgIncomeDto.setOrgName(organization.getName());
|
orgIncomeDto.setOrgName(organization.getName());
|
||||||
List<ChargeItemExtendInfoDto> chargeItemExtendInfoDtos =
|
List<ChargeItemExtendInfoDto> chargeItemExtendInfoDtos
|
||||||
chargeItemExtendInfoDtoListGroupByOrgIdMap.get(organization.getId());
|
= chargeItemExtendInfoDtoListGroupByOrgIdMap.get(organization.getId());
|
||||||
if (chargeItemExtendInfoDtos == null) {
|
if (chargeItemExtendInfoDtos == null) {
|
||||||
orgIncomeList.add(orgIncomeDto);
|
orgIncomeList.add(orgIncomeDto);
|
||||||
continue;
|
continue;
|
||||||
@@ -2528,8 +2515,8 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
List<PaymentReconciliation> list = paymentReconciliationService.list(
|
List<PaymentReconciliation> list = paymentReconciliationService.list(
|
||||||
new LambdaQueryWrapper<PaymentReconciliation>().eq(PaymentReconciliation::getDeleteFlag,
|
new LambdaQueryWrapper<PaymentReconciliation>().eq(PaymentReconciliation::getDeleteFlag,
|
||||||
DelFlag.NO.getCode()).eq(PaymentReconciliation::getStatusEnum, PaymentStatus.SUCCESS.getValue())
|
DelFlag.NO.getCode()).eq(PaymentReconciliation::getStatusEnum, PaymentStatus.SUCCESS.getValue())
|
||||||
.between(PaymentReconciliation::getBillDate, Date.from(LocalDateTime.parse("2025-12-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")).atZone(ZoneId.systemDefault()).toInstant())
|
.between(PaymentReconciliation::getBillDate, Date.from(LocalDateTime.parse("2025-12-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")).atZone(ZoneId.systemDefault()).toInstant()),
|
||||||
, Date.from(LocalDateTime.parse("2025-12-31 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")).atZone(ZoneId.systemDefault()).toInstant())));
|
Date.from(LocalDateTime.parse("2025-12-31 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")).atZone(ZoneId.systemDefault()).toInstant())));
|
||||||
|
|
||||||
for (PaymentReconciliation paymentReconciliation : list) {
|
for (PaymentReconciliation paymentReconciliation : list) {
|
||||||
|
|
||||||
@@ -2598,7 +2585,6 @@ public class IChargeBillServiceImpl implements IChargeBillService {
|
|||||||
// BigDecimal b = BigDecimal.ZERO;// 实付金额与药品金额差值即待分配金额
|
// BigDecimal b = BigDecimal.ZERO;// 实付金额与药品金额差值即待分配金额
|
||||||
// BigDecimal c = BigDecimal.ZERO;// 诊疗检查等项目的合计金额
|
// BigDecimal c = BigDecimal.ZERO;// 诊疗检查等项目的合计金额
|
||||||
// BigDecimal d = paymentReconciliation.getTenderedAmount().subtract(paymentRecDetail.getAmount());// 实际交款金额
|
// BigDecimal d = paymentReconciliation.getTenderedAmount().subtract(paymentRecDetail.getAmount());// 实际交款金额
|
||||||
|
|
||||||
List<ChargeItem> newChargeItemList = new ArrayList<>();
|
List<ChargeItem> newChargeItemList = new ArrayList<>();
|
||||||
|
|
||||||
for (ChargeItemDefInfo chargeItemDefInfo : chargeItemDefInfoByIdList) {
|
for (ChargeItemDefInfo chargeItemDefInfo : chargeItemDefInfoByIdList) {
|
||||||
|
|||||||
@@ -200,8 +200,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 此次chargeItem的就诊诊断id集合
|
// 此次chargeItem的就诊诊断id集合
|
||||||
List<Long> diagIdList =
|
List<Long> diagIdList
|
||||||
chargeItemList.stream().map(ChargeItem::getEncounterDiagnosisId).collect(Collectors.toList());
|
= chargeItemList.stream().map(ChargeItem::getEncounterDiagnosisId).collect(Collectors.toList());
|
||||||
if (diagIdList.isEmpty()) {
|
if (diagIdList.isEmpty()) {
|
||||||
throw new ServiceException("收费项的就诊诊断查询为空");
|
throw new ServiceException("收费项的就诊诊断查询为空");
|
||||||
}
|
}
|
||||||
@@ -210,8 +210,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (diagList.isEmpty()) {
|
if (diagList.isEmpty()) {
|
||||||
throw new ServiceException("就诊诊断查询为空,错误信息:EncounterDiagnosis");
|
throw new ServiceException("就诊诊断查询为空,错误信息:EncounterDiagnosis");
|
||||||
}
|
}
|
||||||
List<String> medTypeList =
|
List<String> medTypeList
|
||||||
diagList.stream().map(EncounterDiagnosis::getMedTypeCode).distinct().collect(Collectors.toList());
|
= diagList.stream().map(EncounterDiagnosis::getMedTypeCode).distinct().collect(Collectors.toList());
|
||||||
if (medTypeList.size() > 1) {
|
if (medTypeList.size() > 1) {
|
||||||
return R.fail("收费项的就诊类型未统一");
|
return R.fail("收费项的就诊类型未统一");
|
||||||
}
|
}
|
||||||
@@ -227,8 +227,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 账户id,对应的账单列表
|
// 账户id,对应的账单列表
|
||||||
Map<Long, List<ChargeItem>> chargeItemMapByAccountId =
|
Map<Long, List<ChargeItem>> chargeItemMapByAccountId
|
||||||
chargeItemList.stream().collect(Collectors.groupingBy(ChargeItem::getAccountId));
|
= chargeItemList.stream().collect(Collectors.groupingBy(ChargeItem::getAccountId));
|
||||||
// 查询合同信息
|
// 查询合同信息
|
||||||
List<Contract> contractList = contractService.list();
|
List<Contract> contractList = contractService.list();
|
||||||
|
|
||||||
@@ -256,8 +256,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
prePaymentedItems.add(piModel);
|
prePaymentedItems.add(piModel);
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
List<ChargeItem> childrenList =
|
List<ChargeItem> childrenList
|
||||||
JSON.parseArray(chargeItem.getChildrenJson(), ChargeItem.class);
|
= JSON.parseArray(chargeItem.getChildrenJson(), ChargeItem.class);
|
||||||
for (ChargeItem child : childrenList) {
|
for (ChargeItem child : childrenList) {
|
||||||
PaymentedItemModel piModel = ConverterToPaymenItemModel(diagList, child);
|
PaymentedItemModel piModel = ConverterToPaymenItemModel(diagList, child);
|
||||||
prePaymentedItems.add(piModel);
|
prePaymentedItems.add(piModel);
|
||||||
@@ -367,8 +367,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
return R.fail("该账单不是待支付账单");
|
return R.fail("该账单不是待支付账单");
|
||||||
}
|
}
|
||||||
// 查找对应的收费详情,根据批次号查询
|
// 查找对应的收费详情,根据批次号查询
|
||||||
List<PaymentRecDetail> paymentRecDetails =
|
List<PaymentRecDetail> paymentRecDetails
|
||||||
paymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
= paymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
||||||
.eq(PaymentRecDetail::getReconciliationId, paymentReconciliation.getId()));
|
.eq(PaymentRecDetail::getReconciliationId, paymentReconciliation.getId()));
|
||||||
if (paymentRecDetails.isEmpty()) {
|
if (paymentRecDetails.isEmpty()) {
|
||||||
return R.fail("查询不到收费详情");
|
return R.fail("查询不到收费详情");
|
||||||
@@ -378,31 +378,6 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
return R.fail("收费项目变动,请重新预结算");
|
return R.fail("收费项目变动,请重新预结算");
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
//2025.11.4 长大发生异常,相同的chargeItem存在两个payment并重复收费,要求在此处增加校验
|
|
||||||
// 经研究最优解为在数据库中查询本次就诊的所有的chargeItemIds,与现有chargeItemId进行匹配
|
|
||||||
List<PaymentReconciliation> paymentReconciliationList = paymentReconciliationService.getListByEncounterId(paymentDto.getEncounterId(), PaymentKind.OUTPATIENT_CLINIC);
|
|
||||||
|
|
||||||
List<Long> chargeItemIds = paymentDto.getChargeItemIds();
|
|
||||||
|
|
||||||
if(!paymentReconciliationList.isEmpty()){
|
|
||||||
// 收集所有元素(包含重复)
|
|
||||||
List<String> allElements = paymentReconciliationList.stream()
|
|
||||||
.map(PaymentReconciliation::getChargeItemIds) // 获取逗号拼接的字符串
|
|
||||||
.filter(str -> str != null && !str.trim().isEmpty()) // 过滤空值
|
|
||||||
.flatMap(str -> Arrays.stream(str.split(","))) // 拆分成单个元素
|
|
||||||
.map(String::trim) // 去除空格
|
|
||||||
.filter(s -> !s.isEmpty()) // 过滤空字符串
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
for (Long chargeItemId : chargeItemIds) {
|
|
||||||
Optional<String> first = allElements.stream()
|
|
||||||
.filter(item -> item.equals(chargeItemId.toString()))
|
|
||||||
.findFirst();
|
|
||||||
|
|
||||||
if(first.isPresent()){
|
|
||||||
throw new ServiceException("收费项目id:"+chargeItemId+"已经收费过了,请确认");
|
|
||||||
=======
|
|
||||||
// 2025.11.4 长大发生异常,相同的chargeItem存在两个payment并重复收费,要求在此处增加校验
|
// 2025.11.4 长大发生异常,相同的chargeItem存在两个payment并重复收费,要求在此处增加校验
|
||||||
// 经研究最优解为在数据库中查询本次就诊的所有的chargeItemIds,与现有chargeItemId进行匹配
|
// 经研究最优解为在数据库中查询本次就诊的所有的chargeItemIds,与现有chargeItemId进行匹配
|
||||||
List<PaymentReconciliation> paymentReconciliationList = paymentReconciliationService
|
List<PaymentReconciliation> paymentReconciliationList = paymentReconciliationService
|
||||||
@@ -420,21 +395,15 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
for (Long chargeItemId : chargeItemIds) {
|
for (Long chargeItemId : chargeItemIds) {
|
||||||
Optional<String> first =
|
Optional<String> first
|
||||||
allElements.stream().filter(item -> item.equals(chargeItemId.toString())).findFirst();
|
= allElements.stream().filter(item -> item.equals(chargeItemId.toString())).findFirst();
|
||||||
|
|
||||||
if (first.isPresent()) {
|
if (first.isPresent()) {
|
||||||
throw new ServiceException("收费项目id:" + chargeItemId + "已经收费过了,请确认");
|
throw new ServiceException("收费项目id:" + chargeItemId + "已经收费过了,请确认");
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 校验金额:前台输入金额与仍需支付的现金部分进行比较
|
// 校验金额:前台输入金额与仍需支付的现金部分进行比较
|
||||||
BigDecimal sum = BigDecimal.ZERO;
|
BigDecimal sum = BigDecimal.ZERO;
|
||||||
PaymentRecDetail paymentRecDetailDemo = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetailDemo = new PaymentRecDetail();
|
||||||
@@ -481,8 +450,10 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
Integer mcsTracCnt = 0;
|
Integer mcsTracCnt = 0;
|
||||||
chargeItemList.forEach(item -> {
|
chargeItemList.forEach(item -> {
|
||||||
switch (item.getServiceTable()) {
|
switch (item.getServiceTable()) {
|
||||||
case CommonConstants.TableName.MED_MEDICATION_REQUEST -> medReqIdList.add(item.getServiceId());
|
case CommonConstants.TableName.MED_MEDICATION_REQUEST ->
|
||||||
case CommonConstants.TableName.WOR_DEVICE_REQUEST -> devReqIdList.add(item.getServiceId());
|
medReqIdList.add(item.getServiceId());
|
||||||
|
case CommonConstants.TableName.WOR_DEVICE_REQUEST ->
|
||||||
|
devReqIdList.add(item.getServiceId());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// 根据药品请求计算本次结算应上传最小包装药品追溯码数量
|
// 根据药品请求计算本次结算应上传最小包装药品追溯码数量
|
||||||
@@ -490,11 +461,11 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
List<MedicationRequest> medicationRequestList = medicationRequestService
|
List<MedicationRequest> medicationRequestList = medicationRequestService
|
||||||
.list(new LambdaQueryWrapper<MedicationRequest>().in(MedicationRequest::getId, medReqIdList));
|
.list(new LambdaQueryWrapper<MedicationRequest>().in(MedicationRequest::getId, medReqIdList));
|
||||||
if (!medicationRequestList.isEmpty()) {
|
if (!medicationRequestList.isEmpty()) {
|
||||||
List<Long> medicationIdList =
|
List<Long> medicationIdList
|
||||||
medicationRequestList.stream().map(MedicationRequest::getMedicationId).distinct().toList();
|
= medicationRequestList.stream().map(MedicationRequest::getMedicationId).distinct().toList();
|
||||||
// 根据药品id获取药品定义
|
// 根据药品id获取药品定义
|
||||||
List<MedicationDefinition> medicationDefinitionList =
|
List<MedicationDefinition> medicationDefinitionList
|
||||||
medicationDefinitionService.listByIds(medicationIdList);
|
= medicationDefinitionService.listByIds(medicationIdList);
|
||||||
if (!medicationDefinitionList.isEmpty()) {
|
if (!medicationDefinitionList.isEmpty()) {
|
||||||
// 创建药品定义map
|
// 创建药品定义map
|
||||||
Map<Long, MedicationDefinition> medicationDefinitionMap = medicationDefinitionList.stream()
|
Map<Long, MedicationDefinition> medicationDefinitionMap = medicationDefinitionList.stream()
|
||||||
@@ -503,8 +474,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
BigDecimal totalQuantity = BigDecimal.ZERO;
|
BigDecimal totalQuantity = BigDecimal.ZERO;
|
||||||
|
|
||||||
for (MedicationRequest medicationRequest : medicationRequestList) {
|
for (MedicationRequest medicationRequest : medicationRequestList) {
|
||||||
MedicationDefinition medicationDefinition =
|
MedicationDefinition medicationDefinition
|
||||||
medicationDefinitionMap.get(medicationRequest.getMedicationId());
|
= medicationDefinitionMap.get(medicationRequest.getMedicationId());
|
||||||
if (medicationDefinition != null) {
|
if (medicationDefinition != null) {
|
||||||
BigDecimal requestQuantity = medicationRequest.getQuantity();
|
BigDecimal requestQuantity = medicationRequest.getQuantity();
|
||||||
// 根据是否拆零计算
|
// 根据是否拆零计算
|
||||||
@@ -536,8 +507,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
// 收费详情按照收费批次进行分组
|
// 收费详情按照收费批次进行分组
|
||||||
Map<String, List<PaymentRecDetail>> payTransNoMap =
|
Map<String, List<PaymentRecDetail>> payTransNoMap
|
||||||
paymentRecDetails.stream().collect(Collectors.groupingBy(PaymentRecDetail::getPayTransNo));
|
= paymentRecDetails.stream().collect(Collectors.groupingBy(PaymentRecDetail::getPayTransNo));
|
||||||
|
|
||||||
com.openhis.financial.model.PaymentResult paymentResult;
|
com.openhis.financial.model.PaymentResult paymentResult;
|
||||||
List<com.openhis.financial.model.PaymentResult> paymentResultList = new ArrayList<>();
|
List<com.openhis.financial.model.PaymentResult> paymentResultList = new ArrayList<>();
|
||||||
@@ -626,8 +597,10 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
switch (item.getServiceTable()) {
|
switch (item.getServiceTable()) {
|
||||||
case CommonConstants.TableName.MED_MEDICATION_REQUEST ->
|
case CommonConstants.TableName.MED_MEDICATION_REQUEST ->
|
||||||
medicationRequestIdList.add(item.getServiceId());
|
medicationRequestIdList.add(item.getServiceId());
|
||||||
case CommonConstants.TableName.WOR_DEVICE_REQUEST -> deviceRequestIdList.add(item.getServiceId());
|
case CommonConstants.TableName.WOR_DEVICE_REQUEST ->
|
||||||
case CommonConstants.TableName.WOR_SERVICE_REQUEST -> serviceRequestIdList.add(item.getServiceId());
|
deviceRequestIdList.add(item.getServiceId());
|
||||||
|
case CommonConstants.TableName.WOR_SERVICE_REQUEST ->
|
||||||
|
serviceRequestIdList.add(item.getServiceId());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -687,8 +660,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
throw new ServiceException("请勿重复退费");
|
throw new ServiceException("请勿重复退费");
|
||||||
}
|
}
|
||||||
// 查找对应的收费详情
|
// 查找对应的收费详情
|
||||||
List<PaymentRecDetail> PaymentRecDetails =
|
List<PaymentRecDetail> PaymentRecDetails
|
||||||
paymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
= paymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
||||||
.eq(PaymentRecDetail::getReconciliationId, cancelPaymentDto.getId()));
|
.eq(PaymentRecDetail::getReconciliationId, cancelPaymentDto.getId()));
|
||||||
// 查询账户信息
|
// 查询账户信息
|
||||||
// Account account = iAccountService.getById(paymentReconciliation.getAccountId());
|
// Account account = iAccountService.getById(paymentReconciliation.getAccountId());
|
||||||
@@ -725,8 +698,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
clinic2208UnSetlInfoOutput = (Clinic2208UnSetlInfoOutput) r.getData();
|
clinic2208UnSetlInfoOutput = (Clinic2208UnSetlInfoOutput) r.getData();
|
||||||
stringBuilder.append(clinic2208UnSetlInfoOutput.getSetlId()).append(",");
|
stringBuilder.append(clinic2208UnSetlInfoOutput.getSetlId()).append(",");
|
||||||
// 对payment详情的结算id进行处理
|
// 对payment详情的结算id进行处理
|
||||||
List<PaymentRecDetail> paymentRecDetailList =
|
List<PaymentRecDetail> paymentRecDetailList
|
||||||
iPaymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
= iPaymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
||||||
.eq(PaymentRecDetail::getReconciliationId, unPaymentReconciliation.getId())
|
.eq(PaymentRecDetail::getReconciliationId, unPaymentReconciliation.getId())
|
||||||
.eq(PaymentRecDetail::getPayTransText, clinicSettle.getSetlId()));
|
.eq(PaymentRecDetail::getPayTransText, clinicSettle.getSetlId()));
|
||||||
if (!paymentRecDetailList.isEmpty()) {
|
if (!paymentRecDetailList.isEmpty()) {
|
||||||
@@ -763,8 +736,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
throw new ServiceException("重新预结算失败请联系工程师");
|
throw new ServiceException("重新预结算失败请联系工程师");
|
||||||
}
|
}
|
||||||
|
|
||||||
PrePaymentResultModel prePaymentResultModel =
|
PrePaymentResultModel prePaymentResultModel
|
||||||
JSON.parseObject(JSON.toJSONString(preResult.getData()), PrePaymentResultModel.class);
|
= JSON.parseObject(JSON.toJSONString(preResult.getData()), PrePaymentResultModel.class);
|
||||||
// 新的应收
|
// 新的应收
|
||||||
BigDecimal cashPay = BigDecimal.ZERO;
|
BigDecimal cashPay = BigDecimal.ZERO;
|
||||||
for (PaymentRecDetailDto paymentRecDetail : prePaymentResultModel.getDetails()) {
|
for (PaymentRecDetailDto paymentRecDetail : prePaymentResultModel.getDetails()) {
|
||||||
@@ -797,8 +770,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取新的付款参数表
|
// 获取新的付款参数表
|
||||||
PaymentReconciliation payment =
|
PaymentReconciliation payment
|
||||||
JSON.parseObject(JSON.toJSONString(settleResult.getData()), PaymentReconciliation.class);
|
= JSON.parseObject(JSON.toJSONString(settleResult.getData()), PaymentReconciliation.class);
|
||||||
// 获取实付金额
|
// 获取实付金额
|
||||||
List<PaymentRecDetail> paymentRecDetail = paymentRecDetailService.list(
|
List<PaymentRecDetail> paymentRecDetail = paymentRecDetailService.list(
|
||||||
new LambdaQueryWrapper<PaymentRecDetail>().eq(PaymentRecDetail::getReconciliationId, payment.getId())
|
new LambdaQueryWrapper<PaymentRecDetail>().eq(PaymentRecDetail::getReconciliationId, payment.getId())
|
||||||
@@ -843,8 +816,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
throw new ServiceException("查询不到付款记录");
|
throw new ServiceException("查询不到付款记录");
|
||||||
}
|
}
|
||||||
|
|
||||||
PaymentReconciliation unPaymentReconciliation =
|
PaymentReconciliation unPaymentReconciliation
|
||||||
normalUnCharge(paymentReconciliation, paymentRecDetails, cancelPaymentDto.getSetlId(), cancelPaymentDto.getReason());
|
= normalUnCharge(paymentReconciliation, paymentRecDetails, cancelPaymentDto.getSetlId(), cancelPaymentDto.getReason());
|
||||||
|
|
||||||
return R.ok(unPaymentReconciliation);
|
return R.ok(unPaymentReconciliation);
|
||||||
}
|
}
|
||||||
@@ -873,8 +846,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
request);
|
request);
|
||||||
// queryWrapper.eq(PaymentVO::getStatusEnum,PaymentStatus.SUCCESS.getValue()).or().eq(PaymentVO::getStatusEnum,PaymentStatus.REFUND_ALL.getValue());
|
// queryWrapper.eq(PaymentVO::getStatusEnum,PaymentStatus.SUCCESS.getValue()).or().eq(PaymentVO::getStatusEnum,PaymentStatus.REFUND_ALL.getValue());
|
||||||
queryWrapper.in("status_enum", PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue());
|
queryWrapper.in("status_enum", PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue());
|
||||||
IPage<PaymentVO> paymentDtoIPage =
|
IPage<PaymentVO> paymentDtoIPage
|
||||||
paymentMapper.getPage(new Page<>(pageNo, pageSize), kingEnum, invoiceNo, queryWrapper);
|
= paymentMapper.getPage(new Page<>(pageNo, pageSize), kingEnum, invoiceNo, queryWrapper);
|
||||||
|
|
||||||
for (PaymentVO record : paymentDtoIPage.getRecords()) {
|
for (PaymentVO record : paymentDtoIPage.getRecords()) {
|
||||||
record.setPaymentId(record.getId().toString());
|
record.setPaymentId(record.getId().toString());
|
||||||
@@ -889,7 +862,6 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
// // 计算年龄
|
// // 计算年龄
|
||||||
// e.setAgeString(AgeCalculatorUtil.getAge(DateUtils.parseDate(e.getBirthDate())));
|
// e.setAgeString(AgeCalculatorUtil.getAge(DateUtils.parseDate(e.getBirthDate())));
|
||||||
// });
|
// });
|
||||||
|
|
||||||
return paymentDtoIPage;
|
return paymentDtoIPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -986,11 +958,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
*/
|
*/
|
||||||
private List<PaymentRecDetail> savePaymentDetail(List<PrePaymentResult> prePaymentResults,
|
private List<PaymentRecDetail> savePaymentDetail(List<PrePaymentResult> prePaymentResults,
|
||||||
PaymentReconciliation payment) {
|
PaymentReconciliation payment) {
|
||||||
<<<<<<< HEAD
|
|
||||||
// 11.11 paymentDetail的amount在11.7日按照同一的异常日结单,要求改为保留两位小数,后于11.11又被要求改为保留六位小数
|
// 11.11 paymentDetail的amount在11.7日按照同一的异常日结单,要求改为保留两位小数,后于11.11又被要求改为保留六位小数
|
||||||
=======
|
|
||||||
// 11.11 paymentDetail的amount在11.7日按照同一的异常日结单,要求改为保留两位小数,后于11.11又被要求改为保留六位小数
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 保存付款详情
|
// 保存付款详情
|
||||||
List<PaymentRecDetail> paymentRecDetails = new ArrayList<>();
|
List<PaymentRecDetail> paymentRecDetails = new ArrayList<>();
|
||||||
for (PrePaymentResult prePaymentResult : prePaymentResults) {
|
for (PrePaymentResult prePaymentResult : prePaymentResults) {
|
||||||
@@ -1000,12 +968,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (psnCashPay != null) {
|
if (psnCashPay != null) {
|
||||||
PaymentRecDetail paymentRecDetail10 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail10 = new PaymentRecDetail();
|
||||||
paymentRecDetail10.setReconciliationId(payment.getId()).setPayEnum(YbPayment.SELF_CASH_PAY.getValue())
|
paymentRecDetail10.setReconciliationId(payment.getId()).setPayEnum(YbPayment.SELF_CASH_PAY.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.SELF_CASH_PAY.getLevel()).setAmount(psnCashPay.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.SELF_CASH_PAY.getLevel())
|
.setPayLevelEnum(YbPayment.SELF_CASH_PAY.getLevel())
|
||||||
.setAmount(psnCashPay.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(psnCashPay.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail10);
|
paymentRecDetails.add(paymentRecDetail10);
|
||||||
@@ -1016,12 +980,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (psnPartAmt != null) {
|
if (psnPartAmt != null) {
|
||||||
PaymentRecDetail paymentRecDetail1 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail1 = new PaymentRecDetail();
|
||||||
paymentRecDetail1.setReconciliationId(payment.getId()).setPayEnum(YbPayment.SELF_PAY.getValue())
|
paymentRecDetail1.setReconciliationId(payment.getId()).setPayEnum(YbPayment.SELF_PAY.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.SELF_PAY.getLevel()).setAmount(psnPartAmt.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.SELF_PAY.getLevel())
|
.setPayLevelEnum(YbPayment.SELF_PAY.getLevel())
|
||||||
.setAmount(psnPartAmt.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(psnPartAmt.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail1);
|
paymentRecDetails.add(paymentRecDetail1);
|
||||||
@@ -1032,15 +992,9 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
PaymentRecDetail paymentRecDetail2 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail2 = new PaymentRecDetail();
|
||||||
paymentRecDetail2.setReconciliationId(payment.getId())
|
paymentRecDetail2.setReconciliationId(payment.getId())
|
||||||
.setPayEnum(YbPayment.YB_TC_FUND_AMOUNT.getValue())
|
.setPayEnum(YbPayment.YB_TC_FUND_AMOUNT.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.YB_TC_FUND_AMOUNT.getLevel()).setAmount(hifpPay.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.YB_TC_FUND_AMOUNT.getLevel())
|
.setPayLevelEnum(YbPayment.YB_TC_FUND_AMOUNT.getLevel())
|
||||||
.setAmount(hifpPay.setScale(6, RoundingMode.HALF_UP)).setPayTransNo(prePaymentResult.getChrgBchno())
|
.setAmount(hifpPay.setScale(6, RoundingMode.HALF_UP)).setPayTransNo(prePaymentResult.getChrgBchno())
|
||||||
.setResultEnum(PaymentResult.UNPAID.getValue()).setAccountId(prePaymentResult.getAccountId());
|
.setResultEnum(PaymentResult.UNPAID.getValue()).setAccountId(prePaymentResult.getAccountId());
|
||||||
>>>>>>> v1.3
|
|
||||||
paymentRecDetails.add(paymentRecDetail2);
|
paymentRecDetails.add(paymentRecDetail2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1050,12 +1004,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
PaymentRecDetail paymentRecDetail3 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail3 = new PaymentRecDetail();
|
||||||
paymentRecDetail3.setReconciliationId(payment.getId())
|
paymentRecDetail3.setReconciliationId(payment.getId())
|
||||||
.setPayEnum(YbPayment.YB_BC_GWY_BZ_VALUE.getValue())
|
.setPayEnum(YbPayment.YB_BC_GWY_BZ_VALUE.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.YB_BC_GWY_BZ_VALUE.getLevel()).setAmount(cvlservPay.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.YB_BC_GWY_BZ_VALUE.getLevel())
|
.setPayLevelEnum(YbPayment.YB_BC_GWY_BZ_VALUE.getLevel())
|
||||||
.setAmount(cvlservPay.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(cvlservPay.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail3);
|
paymentRecDetails.add(paymentRecDetail3);
|
||||||
@@ -1066,12 +1016,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
PaymentRecDetail paymentRecDetail4 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail4 = new PaymentRecDetail();
|
||||||
paymentRecDetail4.setReconciliationId(payment.getId())
|
paymentRecDetail4.setReconciliationId(payment.getId())
|
||||||
.setPayEnum(YbPayment.YB_BC_FUND_AMOUNT.getValue())
|
.setPayEnum(YbPayment.YB_BC_FUND_AMOUNT.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.YB_BC_FUND_AMOUNT.getLevel()).setAmount(hifesPay.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.YB_BC_FUND_AMOUNT.getLevel())
|
.setPayLevelEnum(YbPayment.YB_BC_FUND_AMOUNT.getLevel())
|
||||||
.setAmount(hifesPay.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(hifesPay.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail4);
|
paymentRecDetails.add(paymentRecDetail4);
|
||||||
@@ -1082,12 +1028,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
PaymentRecDetail paymentRecDetail5 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail5 = new PaymentRecDetail();
|
||||||
paymentRecDetail5.setReconciliationId(payment.getId())
|
paymentRecDetail5.setReconciliationId(payment.getId())
|
||||||
.setPayEnum(YbPayment.YB_BC_JM_DB_VALUE.getValue())
|
.setPayEnum(YbPayment.YB_BC_JM_DB_VALUE.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.YB_BC_JM_DB_VALUE.getLevel()).setAmount(hifmiPay.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.YB_BC_JM_DB_VALUE.getLevel())
|
.setPayLevelEnum(YbPayment.YB_BC_JM_DB_VALUE.getLevel())
|
||||||
.setAmount(hifmiPay.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(hifmiPay.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail5);
|
paymentRecDetails.add(paymentRecDetail5);
|
||||||
@@ -1097,12 +1039,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (hifobPay != null) {
|
if (hifobPay != null) {
|
||||||
PaymentRecDetail paymentRecDetail6 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail6 = new PaymentRecDetail();
|
||||||
paymentRecDetail6.setReconciliationId(payment.getId()).setPayTransNo(prePaymentResult.getChrgBchno())
|
paymentRecDetail6.setReconciliationId(payment.getId()).setPayTransNo(prePaymentResult.getChrgBchno())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.YB_BC_ZG_DE_BZ_VALUE.getLevel()).setAmount(hifobPay.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.YB_BC_ZG_DE_BZ_VALUE.getLevel())
|
.setPayLevelEnum(YbPayment.YB_BC_ZG_DE_BZ_VALUE.getLevel())
|
||||||
.setAmount(hifobPay.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(hifobPay.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayEnum(YbPayment.YB_BC_ZG_DE_BZ_VALUE.getValue())
|
.setPayEnum(YbPayment.YB_BC_ZG_DE_BZ_VALUE.getValue())
|
||||||
.setResultEnum(PaymentResult.UNPAID.getValue()).setAccountId(prePaymentResult.getAccountId());
|
.setResultEnum(PaymentResult.UNPAID.getValue()).setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail6);
|
paymentRecDetails.add(paymentRecDetail6);
|
||||||
@@ -1113,15 +1051,9 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
PaymentRecDetail paymentRecDetail7 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail7 = new PaymentRecDetail();
|
||||||
paymentRecDetail7.setReconciliationId(payment.getId())
|
paymentRecDetail7.setReconciliationId(payment.getId())
|
||||||
.setPayEnum(YbPayment.YB_JZ_FUND_AMOUNT.getValue())
|
.setPayEnum(YbPayment.YB_JZ_FUND_AMOUNT.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.YB_JZ_FUND_AMOUNT.getLevel()).setAmount(mafPay.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.YB_JZ_FUND_AMOUNT.getLevel())
|
.setPayLevelEnum(YbPayment.YB_JZ_FUND_AMOUNT.getLevel())
|
||||||
.setAmount(mafPay.setScale(6, RoundingMode.HALF_UP)).setPayTransNo(prePaymentResult.getChrgBchno())
|
.setAmount(mafPay.setScale(6, RoundingMode.HALF_UP)).setPayTransNo(prePaymentResult.getChrgBchno())
|
||||||
.setResultEnum(PaymentResult.UNPAID.getValue()).setAccountId(prePaymentResult.getAccountId());
|
.setResultEnum(PaymentResult.UNPAID.getValue()).setAccountId(prePaymentResult.getAccountId());
|
||||||
>>>>>>> v1.3
|
|
||||||
paymentRecDetails.add(paymentRecDetail7);
|
paymentRecDetails.add(paymentRecDetail7);
|
||||||
}
|
}
|
||||||
// 其他支出
|
// 其他支出
|
||||||
@@ -1129,11 +1061,7 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (othPay != null) {
|
if (othPay != null) {
|
||||||
PaymentRecDetail paymentRecDetail8 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail8 = new PaymentRecDetail();
|
||||||
paymentRecDetail8.setReconciliationId(payment.getId()).setPayEnum(YbPayment.OTHER_PAY.getValue())
|
paymentRecDetail8.setReconciliationId(payment.getId()).setPayEnum(YbPayment.OTHER_PAY.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.OTHER_PAY.getLevel()).setAmount(othPay.setScale(6, RoundingMode.HALF_UP))
|
.setPayLevelEnum(YbPayment.OTHER_PAY.getLevel()).setAmount(othPay.setScale(6, RoundingMode.HALF_UP))
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.OTHER_PAY.getLevel()).setAmount(othPay.setScale(6, RoundingMode.HALF_UP))
|
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail8);
|
paymentRecDetails.add(paymentRecDetail8);
|
||||||
@@ -1143,12 +1071,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (fundPaySumamt != null) {
|
if (fundPaySumamt != null) {
|
||||||
PaymentRecDetail paymentRecDetail9 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail9 = new PaymentRecDetail();
|
||||||
paymentRecDetail9.setReconciliationId(payment.getId()).setPayEnum(YbPayment.YB_FUND_PAY.getValue())
|
paymentRecDetail9.setReconciliationId(payment.getId()).setPayEnum(YbPayment.YB_FUND_PAY.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.YB_FUND_PAY.getLevel()).setAmount(fundPaySumamt.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.YB_FUND_PAY.getLevel())
|
.setPayLevelEnum(YbPayment.YB_FUND_PAY.getLevel())
|
||||||
.setAmount(fundPaySumamt.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(fundPaySumamt.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail9);
|
paymentRecDetails.add(paymentRecDetail9);
|
||||||
@@ -1158,15 +1082,9 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (acctPay != null) {
|
if (acctPay != null) {
|
||||||
PaymentRecDetail paymentRecDetail11 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail11 = new PaymentRecDetail();
|
||||||
paymentRecDetail11.setReconciliationId(payment.getId()).setPayEnum(YbPayment.SELF_YB_ZH_PAY.getValue())
|
paymentRecDetail11.setReconciliationId(payment.getId()).setPayEnum(YbPayment.SELF_YB_ZH_PAY.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.SELF_YB_ZH_PAY.getLevel()).setAmount(acctPay.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.SELF_YB_ZH_PAY.getLevel())
|
.setPayLevelEnum(YbPayment.SELF_YB_ZH_PAY.getLevel())
|
||||||
.setAmount(acctPay.setScale(6, RoundingMode.HALF_UP)).setPayTransNo(prePaymentResult.getChrgBchno())
|
.setAmount(acctPay.setScale(6, RoundingMode.HALF_UP)).setPayTransNo(prePaymentResult.getChrgBchno())
|
||||||
.setResultEnum(PaymentResult.UNPAID.getValue()).setAccountId(prePaymentResult.getAccountId());
|
.setResultEnum(PaymentResult.UNPAID.getValue()).setAccountId(prePaymentResult.getAccountId());
|
||||||
>>>>>>> v1.3
|
|
||||||
paymentRecDetails.add(paymentRecDetail11);
|
paymentRecDetails.add(paymentRecDetail11);
|
||||||
}
|
}
|
||||||
// 医院负担金额
|
// 医院负担金额
|
||||||
@@ -1174,12 +1092,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (hospPartAmt != null) {
|
if (hospPartAmt != null) {
|
||||||
PaymentRecDetail paymentRecDetail12 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail12 = new PaymentRecDetail();
|
||||||
paymentRecDetail12.setReconciliationId(payment.getId()).setPayEnum(YbPayment.HOSP_PART_AMT.getValue())
|
paymentRecDetail12.setReconciliationId(payment.getId()).setPayEnum(YbPayment.HOSP_PART_AMT.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.HOSP_PART_AMT.getLevel()).setAmount(hospPartAmt.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.HOSP_PART_AMT.getLevel())
|
.setPayLevelEnum(YbPayment.HOSP_PART_AMT.getLevel())
|
||||||
.setAmount(hospPartAmt.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(hospPartAmt.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail12);
|
paymentRecDetails.add(paymentRecDetail12);
|
||||||
@@ -1190,12 +1104,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
PaymentRecDetail paymentRecDetail13 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail13 = new PaymentRecDetail();
|
||||||
paymentRecDetail13.setReconciliationId(payment.getId())
|
paymentRecDetail13.setReconciliationId(payment.getId())
|
||||||
.setPayEnum(YbPayment.SELF_YB_ZH_GJ_VALUE.getValue())
|
.setPayEnum(YbPayment.SELF_YB_ZH_GJ_VALUE.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.SELF_YB_ZH_GJ_VALUE.getLevel()).setAmount(acctMulaidPay.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.SELF_YB_ZH_GJ_VALUE.getLevel())
|
.setPayLevelEnum(YbPayment.SELF_YB_ZH_GJ_VALUE.getLevel())
|
||||||
.setAmount(acctMulaidPay.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(acctMulaidPay.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail13);
|
paymentRecDetails.add(paymentRecDetail13);
|
||||||
@@ -1206,12 +1116,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
PaymentRecDetail paymentRecDetail14 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail14 = new PaymentRecDetail();
|
||||||
paymentRecDetail14.setReconciliationId(payment.getId())
|
paymentRecDetail14.setReconciliationId(payment.getId())
|
||||||
.setPayEnum(YbPayment.FULAMT_OWNPAY_AMT.getValue())
|
.setPayEnum(YbPayment.FULAMT_OWNPAY_AMT.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.FULAMT_OWNPAY_AMT.getLevel()).setAmount(fulamtOwnpayAmt.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.FULAMT_OWNPAY_AMT.getLevel())
|
.setPayLevelEnum(YbPayment.FULAMT_OWNPAY_AMT.getLevel())
|
||||||
.setAmount(fulamtOwnpayAmt.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(fulamtOwnpayAmt.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail14);
|
paymentRecDetails.add(paymentRecDetail14);
|
||||||
@@ -1221,12 +1127,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (overlmtSelfpay != null) {
|
if (overlmtSelfpay != null) {
|
||||||
PaymentRecDetail paymentRecDetail15 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail15 = new PaymentRecDetail();
|
||||||
paymentRecDetail15.setReconciliationId(payment.getId()).setPayEnum(YbPayment.OVERLMT_SELFPAY.getValue())
|
paymentRecDetail15.setReconciliationId(payment.getId()).setPayEnum(YbPayment.OVERLMT_SELFPAY.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.OVERLMT_SELFPAY.getLevel()).setAmount(overlmtSelfpay.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.OVERLMT_SELFPAY.getLevel())
|
.setPayLevelEnum(YbPayment.OVERLMT_SELFPAY.getLevel())
|
||||||
.setAmount(overlmtSelfpay.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(overlmtSelfpay.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail15);
|
paymentRecDetails.add(paymentRecDetail15);
|
||||||
@@ -1241,12 +1143,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (preselfpayAmt != null) {
|
if (preselfpayAmt != null) {
|
||||||
PaymentRecDetail paymentRecDetail17 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail17 = new PaymentRecDetail();
|
||||||
paymentRecDetail17.setReconciliationId(payment.getId()).setPayEnum(YbPayment.PRESELFPAY_AMT.getValue())
|
paymentRecDetail17.setReconciliationId(payment.getId()).setPayEnum(YbPayment.PRESELFPAY_AMT.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.PRESELFPAY_AMT.getLevel()).setAmount(preselfpayAmt.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.PRESELFPAY_AMT.getLevel())
|
.setPayLevelEnum(YbPayment.PRESELFPAY_AMT.getLevel())
|
||||||
.setAmount(preselfpayAmt.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(preselfpayAmt.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail17);
|
paymentRecDetails.add(paymentRecDetail17);
|
||||||
@@ -1255,12 +1153,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (inscpScpAmt != null) {
|
if (inscpScpAmt != null) {
|
||||||
PaymentRecDetail paymentRecDetail18 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail18 = new PaymentRecDetail();
|
||||||
paymentRecDetail18.setReconciliationId(payment.getId()).setPayEnum(YbPayment.INSCP_SCP_AMT.getValue())
|
paymentRecDetail18.setReconciliationId(payment.getId()).setPayEnum(YbPayment.INSCP_SCP_AMT.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.INSCP_SCP_AMT.getLevel()).setAmount(inscpScpAmt.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.INSCP_SCP_AMT.getLevel())
|
.setPayLevelEnum(YbPayment.INSCP_SCP_AMT.getLevel())
|
||||||
.setAmount(inscpScpAmt.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(inscpScpAmt.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail18);
|
paymentRecDetails.add(paymentRecDetail18);
|
||||||
@@ -1269,12 +1163,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (actPayDedc != null) {
|
if (actPayDedc != null) {
|
||||||
PaymentRecDetail paymentRecDetail19 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail19 = new PaymentRecDetail();
|
||||||
paymentRecDetail19.setReconciliationId(payment.getId()).setPayEnum(YbPayment.ACT_PAY_DEDC.getValue())
|
paymentRecDetail19.setReconciliationId(payment.getId()).setPayEnum(YbPayment.ACT_PAY_DEDC.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.ACT_PAY_DEDC.getLevel()).setAmount(actPayDedc.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.ACT_PAY_DEDC.getLevel())
|
.setPayLevelEnum(YbPayment.ACT_PAY_DEDC.getLevel())
|
||||||
.setAmount(actPayDedc.setScale(6, RoundingMode.HALF_UP))
|
.setAmount(actPayDedc.setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail19);
|
paymentRecDetails.add(paymentRecDetail19);
|
||||||
@@ -1283,33 +1173,23 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (gfRatio != null && gfRatio.compareTo(BigDecimal.ZERO) > 0) {
|
if (gfRatio != null && gfRatio.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
PaymentRecDetail paymentRecDetail20 = new PaymentRecDetail();
|
PaymentRecDetail paymentRecDetail20 = new PaymentRecDetail();
|
||||||
paymentRecDetail20.setReconciliationId(payment.getId()).setPayEnum(YbPayment.SCHOOL_GF_PAY.getValue())
|
paymentRecDetail20.setReconciliationId(payment.getId()).setPayEnum(YbPayment.SCHOOL_GF_PAY.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(YbPayment.SCHOOL_GF_PAY.getLevel()).setAmount(gfRatio.setScale(6,RoundingMode.HALF_UP))
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(YbPayment.SCHOOL_GF_PAY.getLevel())
|
.setPayLevelEnum(YbPayment.SCHOOL_GF_PAY.getLevel())
|
||||||
.setAmount(gfRatio.setScale(6, RoundingMode.HALF_UP)).setPayTransNo(prePaymentResult.getChrgBchno())
|
.setAmount(gfRatio.setScale(6, RoundingMode.HALF_UP)).setPayTransNo(prePaymentResult.getChrgBchno())
|
||||||
.setResultEnum(PaymentResult.UNPAID.getValue()).setAccountId(prePaymentResult.getAccountId());
|
.setResultEnum(PaymentResult.UNPAID.getValue()).setAccountId(prePaymentResult.getAccountId());
|
||||||
>>>>>>> v1.3
|
|
||||||
paymentRecDetails.add(paymentRecDetail20);
|
paymentRecDetails.add(paymentRecDetail20);
|
||||||
}
|
}
|
||||||
if (prePaymentResult.getSetldetail() != null && !prePaymentResult.getSetldetail().isEmpty()) {
|
if (prePaymentResult.getSetldetail() != null && !prePaymentResult.getSetldetail().isEmpty()) {
|
||||||
PaymentRecDetail paymentRecDetail20;
|
PaymentRecDetail paymentRecDetail20;
|
||||||
for (Clinic2206FundPaymentResult clinic2206FundPaymentResult : prePaymentResult.getSetldetail()) {
|
for (Clinic2206FundPaymentResult clinic2206FundPaymentResult : prePaymentResult.getSetldetail()) {
|
||||||
YbPayment ybPayment =
|
YbPayment ybPayment
|
||||||
YbPayment.getByValue(Integer.parseInt(clinic2206FundPaymentResult.getFundPayType()));
|
= YbPayment.getByValue(Integer.parseInt(clinic2206FundPaymentResult.getFundPayType()));
|
||||||
if (ybPayment == null) {
|
if (ybPayment == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
paymentRecDetail20 = new PaymentRecDetail();
|
paymentRecDetail20 = new PaymentRecDetail();
|
||||||
paymentRecDetail20.setReconciliationId(payment.getId()).setPayEnum(ybPayment.getValue())
|
paymentRecDetail20.setReconciliationId(payment.getId()).setPayEnum(ybPayment.getValue())
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayLevelEnum(ybPayment.getLevel()).setAmount(clinic2206FundPaymentResult.getFundPayamt().setScale(6,RoundingMode.HALF_UP))
|
|
||||||
=======
|
|
||||||
.setPayLevelEnum(ybPayment.getLevel())
|
.setPayLevelEnum(ybPayment.getLevel())
|
||||||
.setAmount(clinic2206FundPaymentResult.getFundPayamt().setScale(6, RoundingMode.HALF_UP))
|
.setAmount(clinic2206FundPaymentResult.getFundPayamt().setScale(6, RoundingMode.HALF_UP))
|
||||||
>>>>>>> v1.3
|
|
||||||
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
.setPayTransNo(prePaymentResult.getChrgBchno()).setResultEnum(PaymentResult.UNPAID.getValue())
|
||||||
.setAccountId(prePaymentResult.getAccountId());
|
.setAccountId(prePaymentResult.getAccountId());
|
||||||
paymentRecDetails.add(paymentRecDetail20);
|
paymentRecDetails.add(paymentRecDetail20);
|
||||||
@@ -1528,8 +1408,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (paymentResult.getSetldetail() != null && !paymentResult.getSetldetail().isEmpty()) {
|
if (paymentResult.getSetldetail() != null && !paymentResult.getSetldetail().isEmpty()) {
|
||||||
PaymentRecDetail paymentRecDetail20;
|
PaymentRecDetail paymentRecDetail20;
|
||||||
for (Clinic2206FundPaymentResult clinic2206FundPaymentResult : paymentResult.getSetldetail()) {
|
for (Clinic2206FundPaymentResult clinic2206FundPaymentResult : paymentResult.getSetldetail()) {
|
||||||
YbPayment ybPayment =
|
YbPayment ybPayment
|
||||||
YbPayment.getByValue(Integer.parseInt(clinic2206FundPaymentResult.getFundPayType()));
|
= YbPayment.getByValue(Integer.parseInt(clinic2206FundPaymentResult.getFundPayType()));
|
||||||
if (ybPayment == null) {
|
if (ybPayment == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -1759,7 +1639,6 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
// if (num > 0) {
|
// if (num > 0) {
|
||||||
// return R.fail(null, "当日已挂号此服务");
|
// return R.fail(null, "当日已挂号此服务");
|
||||||
// }
|
// }
|
||||||
|
|
||||||
Patient patient = iPatientService.getById(outpatientRegistrationAddParam.getEncounterFormData().getPatientId());
|
Patient patient = iPatientService.getById(outpatientRegistrationAddParam.getEncounterFormData().getPatientId());
|
||||||
if (patient == null) {
|
if (patient == null) {
|
||||||
throw new ServiceException("未查询到患者信息");
|
throw new ServiceException("未查询到患者信息");
|
||||||
@@ -1789,8 +1668,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
Date startOfNextDayDate = Date.from(startOfNextDay.atZone(ZoneId.systemDefault()).toInstant());
|
Date startOfNextDayDate = Date.from(startOfNextDay.atZone(ZoneId.systemDefault()).toInstant());
|
||||||
|
|
||||||
// 查询科室信息
|
// 查询科室信息
|
||||||
Organization organization =
|
Organization organization
|
||||||
iOrganizationService.getById(outpatientRegistrationAddParam.getEncounterFormData().getOrganizationId());
|
= iOrganizationService.getById(outpatientRegistrationAddParam.getEncounterFormData().getOrganizationId());
|
||||||
if (organization == null) {
|
if (organization == null) {
|
||||||
throw new ServiceException("未查询到科室信息");
|
throw new ServiceException("未查询到科室信息");
|
||||||
}
|
}
|
||||||
@@ -1809,8 +1688,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 校验当天是否已经医保挂号,若有则冲销
|
// 校验当天是否已经医保挂号,若有则冲销
|
||||||
List<ClinicReg> list =
|
List<ClinicReg> list
|
||||||
iRegService.list(new LambdaQueryWrapper<ClinicReg>().eq(ClinicReg::getMdtrtCertNo, patient.getIdCard())
|
= iRegService.list(new LambdaQueryWrapper<ClinicReg>().eq(ClinicReg::getMdtrtCertNo, patient.getIdCard())
|
||||||
.between(ClinicReg::getBegntime, startOfDayDate, startOfNextDayDate));
|
.between(ClinicReg::getBegntime, startOfDayDate, startOfNextDayDate));
|
||||||
for (ClinicReg clinicReg : list) {
|
for (ClinicReg clinicReg : list) {
|
||||||
if (organization.getYbNo().equals(clinicReg.getDeptCode())
|
if (organization.getYbNo().equals(clinicReg.getDeptCode())
|
||||||
@@ -1821,17 +1700,11 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询挂号信息的医保码等
|
// 查询挂号信息的医保码等
|
||||||
HealthcareService healthcareService =
|
HealthcareService healthcareService
|
||||||
healthcareServiceService.getById(outpatientRegistrationAddParam.getChargeItemFormData().getServiceId());
|
= healthcareServiceService.getById(outpatientRegistrationAddParam.getChargeItemFormData().getServiceId());
|
||||||
if (healthcareService == null) {
|
if (healthcareService == null) {
|
||||||
throw new ServiceException("未查询到号源信息!");
|
throw new ServiceException("未查询到号源信息!");
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
if (healthcareService.getYbNo() == null) {
|
|
||||||
throw new ServiceException("该号源未对码或未查询到医保码信息!");
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
Clinic2206OrderOutput clinic2206OrderResult;
|
Clinic2206OrderOutput clinic2206OrderResult;
|
||||||
String string = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH);
|
String string = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH);
|
||||||
@@ -1840,12 +1713,9 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
.equals(outpatientRegistrationAddParam.getAccountFormData().getContractNo())
|
.equals(outpatientRegistrationAddParam.getAccountFormData().getContractNo())
|
||||||
|| CommonConstants.BusinessName.DEFAULT_STUDENT_CONTRACT_NO
|
|| CommonConstants.BusinessName.DEFAULT_STUDENT_CONTRACT_NO
|
||||||
.equals(outpatientRegistrationAddParam.getAccountFormData().getContractNo()))) {
|
.equals(outpatientRegistrationAddParam.getAccountFormData().getContractNo()))) {
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
if (healthcareService.getYbNo() == null) {
|
if (healthcareService.getYbNo() == null) {
|
||||||
throw new ServiceException("该号源未对码或未查询到医保码信息!");
|
throw new ServiceException("该号源未对码或未查询到医保码信息!");
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
OutpatientRegistrationModel model = new OutpatientRegistrationModel();
|
OutpatientRegistrationModel model = new OutpatientRegistrationModel();
|
||||||
model.setMdtrtCertType(outpatientRegistrationAddParam.getYbMdtrtCertType());
|
model.setMdtrtCertType(outpatientRegistrationAddParam.getYbMdtrtCertType());
|
||||||
model.setBusiCardInfo(outpatientRegistrationAddParam.getBusiCardInfo());
|
model.setBusiCardInfo(outpatientRegistrationAddParam.getBusiCardInfo());
|
||||||
@@ -1881,8 +1751,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
public R<?> regPay(OutpatientRegistrationSettleParam outpatientRegistrationSettleParam, String chrgBchno,
|
public R<?> regPay(OutpatientRegistrationSettleParam outpatientRegistrationSettleParam, String chrgBchno,
|
||||||
List<PaymentDetailDto> paymentDetails) {
|
List<PaymentDetailDto> paymentDetails) {
|
||||||
|
|
||||||
OutpatientRegistrationAddParam outpatientRegistrationAddParam =
|
OutpatientRegistrationAddParam outpatientRegistrationAddParam
|
||||||
outpatientRegistrationSettleParam.getOutpatientRegistrationAddParam();
|
= outpatientRegistrationSettleParam.getOutpatientRegistrationAddParam();
|
||||||
ChargeItem chargeItem = new ChargeItem();
|
ChargeItem chargeItem = new ChargeItem();
|
||||||
BeanUtils.copyProperties(outpatientRegistrationAddParam.getChargeItemFormData(), chargeItem);
|
BeanUtils.copyProperties(outpatientRegistrationAddParam.getChargeItemFormData(), chargeItem);
|
||||||
chargeItem.setContextEnum(ChargeItemContext.REGISTER.getValue());// 挂号
|
chargeItem.setContextEnum(ChargeItemContext.REGISTER.getValue());// 挂号
|
||||||
@@ -1898,8 +1768,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
// EncounterLocationFormData encounterLocationFormData =
|
// EncounterLocationFormData encounterLocationFormData =
|
||||||
// outpatientRegistrationAddParam.getEncounterLocationFormData();
|
// outpatientRegistrationAddParam.getEncounterLocationFormData();
|
||||||
// 就诊参数者管理-表单数据
|
// 就诊参数者管理-表单数据
|
||||||
EncounterParticipantFormData encounterParticipantFormData =
|
EncounterParticipantFormData encounterParticipantFormData
|
||||||
outpatientRegistrationAddParam.getEncounterParticipantFormData();
|
= outpatientRegistrationAddParam.getEncounterParticipantFormData();
|
||||||
// 就诊账户管理-表单数据
|
// 就诊账户管理-表单数据
|
||||||
AccountFormData accountFormData = outpatientRegistrationAddParam.getAccountFormData();
|
AccountFormData accountFormData = outpatientRegistrationAddParam.getAccountFormData();
|
||||||
// 费用项管理-表单数据
|
// 费用项管理-表单数据
|
||||||
@@ -1916,8 +1786,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
return R.fail(null, "当日已挂号此服务");
|
return R.fail(null, "当日已挂号此服务");
|
||||||
}
|
}
|
||||||
|
|
||||||
Contract contract =
|
Contract contract
|
||||||
contractService.getContract(outpatientRegistrationAddParam.getAccountFormData().getContractNo());
|
= contractService.getContract(outpatientRegistrationAddParam.getAccountFormData().getContractNo());
|
||||||
if (contract == null) {
|
if (contract == null) {
|
||||||
throw new ServiceException("请选择合适的费用性质");
|
throw new ServiceException("请选择合适的费用性质");
|
||||||
}
|
}
|
||||||
@@ -2054,8 +1924,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
// 保存付款详情
|
// 保存付款详情
|
||||||
this.savePaymentDetail(paymentResult, payment, paymentDetails, accountId);
|
this.savePaymentDetail(paymentResult, payment, paymentDetails, accountId);
|
||||||
// 更改chargeItem的状态
|
// 更改chargeItem的状态
|
||||||
List<Long> chargeItemIds =
|
List<Long> chargeItemIds
|
||||||
Arrays.stream(payment.getChargeItemIds().split(",")).map(Long::parseLong).collect(Collectors.toList());
|
= Arrays.stream(payment.getChargeItemIds().split(",")).map(Long::parseLong).collect(Collectors.toList());
|
||||||
chargeItemService.updatePaymentStatus(chargeItemIds, ChargeItemStatus.BILLED.getValue());
|
chargeItemService.updatePaymentStatus(chargeItemIds, ChargeItemStatus.BILLED.getValue());
|
||||||
|
|
||||||
// 保存付款快照信息 2025/08/08
|
// 保存付款快照信息 2025/08/08
|
||||||
@@ -2174,8 +2044,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
piModel.setBusNo(chargeItem.getBusNo());
|
piModel.setBusNo(chargeItem.getBusNo());
|
||||||
|
|
||||||
EncounterDiagnosis encounterDiagnosis;
|
EncounterDiagnosis encounterDiagnosis;
|
||||||
Optional<EncounterDiagnosis> optional =
|
Optional<EncounterDiagnosis> optional
|
||||||
diagList.stream().filter(e -> e.getId().equals(chargeItem.getEncounterDiagnosisId())).findFirst();
|
= diagList.stream().filter(e -> e.getId().equals(chargeItem.getEncounterDiagnosisId())).findFirst();
|
||||||
|
|
||||||
if (optional.isPresent()) {
|
if (optional.isPresent()) {
|
||||||
encounterDiagnosis = optional.get();
|
encounterDiagnosis = optional.get();
|
||||||
@@ -2216,17 +2086,17 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (paymentRecDetails.isEmpty() || byId == null) {
|
if (paymentRecDetails.isEmpty() || byId == null) {
|
||||||
throw new ServiceException("未查询到收费详情");
|
throw new ServiceException("未查询到收费详情");
|
||||||
}
|
}
|
||||||
List<String> payTransNoList =
|
List<String> payTransNoList
|
||||||
paymentRecDetails.stream().map(PaymentRecDetail::getPayTransNo).distinct().collect(Collectors.toList());
|
= paymentRecDetails.stream().map(PaymentRecDetail::getPayTransNo).distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
List<Long> accountIdList =
|
List<Long> accountIdList
|
||||||
paymentRecDetails.stream().map(PaymentRecDetail::getAccountId).distinct().collect(Collectors.toList());
|
= paymentRecDetails.stream().map(PaymentRecDetail::getAccountId).distinct().collect(Collectors.toList());
|
||||||
if (accountIdList.isEmpty()) {
|
if (accountIdList.isEmpty()) {
|
||||||
throw new ServiceException("未查到账户信息");
|
throw new ServiceException("未查到账户信息");
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Account> accountList =
|
List<Account> accountList
|
||||||
iAccountService.list(new LambdaQueryWrapper<Account>().in(Account::getId, accountIdList));
|
= iAccountService.list(new LambdaQueryWrapper<Account>().in(Account::getId, accountIdList));
|
||||||
if (accountList.isEmpty()) {
|
if (accountList.isEmpty()) {
|
||||||
throw new ServiceException("未查到账户信息");
|
throw new ServiceException("未查到账户信息");
|
||||||
}
|
}
|
||||||
@@ -2245,11 +2115,11 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
*/
|
*/
|
||||||
public InpatientPreSettleResultDto inpatientPreSettle(PrePaymentDto prePaymentDto) {
|
public InpatientPreSettleResultDto inpatientPreSettle(PrePaymentDto prePaymentDto) {
|
||||||
|
|
||||||
List<ChargeItemBaseInfoDto> chargeItemBaseInfoByIds =
|
List<ChargeItemBaseInfoDto> chargeItemBaseInfoByIds
|
||||||
iChargeItemService.getChargeItemBaseInfoByIds(prePaymentDto.getChargeItemIds());
|
= iChargeItemService.getChargeItemBaseInfoByIds(prePaymentDto.getChargeItemIds());
|
||||||
|
|
||||||
Map<String, List<ChargeItemBaseInfoDto>> chargeItemKVByContractNo =
|
Map<String, List<ChargeItemBaseInfoDto>> chargeItemKVByContractNo
|
||||||
chargeItemBaseInfoByIds.stream().collect(Collectors.groupingBy(ChargeItemBaseInfoDto::getContractNo));
|
= chargeItemBaseInfoByIds.stream().collect(Collectors.groupingBy(ChargeItemBaseInfoDto::getContractNo));
|
||||||
|
|
||||||
List<InpatientPreSettleDto> yb2303OutputSetInfos = new ArrayList<>();
|
List<InpatientPreSettleDto> yb2303OutputSetInfos = new ArrayList<>();
|
||||||
Yb2303OutputSetInfo yb2303OutputSetInfo;
|
Yb2303OutputSetInfo yb2303OutputSetInfo;
|
||||||
@@ -2265,8 +2135,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
inpatientPreSettleDto =
|
inpatientPreSettleDto
|
||||||
preSettleInpatientBySelf(prePaymentDto.getEncounterId(), stringListEntry.getValue());
|
= preSettleInpatientBySelf(prePaymentDto.getEncounterId(), stringListEntry.getValue());
|
||||||
yb2303OutputSetInfos.add(inpatientPreSettleDto);
|
yb2303OutputSetInfos.add(inpatientPreSettleDto);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2279,8 +2149,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
PaymentReconciliation paymentReconciliation = getPaymentReconciliation(chargeItemBaseInfoByIds);
|
PaymentReconciliation paymentReconciliation = getPaymentReconciliation(chargeItemBaseInfoByIds);
|
||||||
iPaymentReconciliationService.save(paymentReconciliation);
|
iPaymentReconciliationService.save(paymentReconciliation);
|
||||||
|
|
||||||
List<PaymentRecDetail> paymentDetailList =
|
List<PaymentRecDetail> paymentDetailList
|
||||||
getPaymentRecDetailList(paymentReconciliation.getId(), yb2303OutputSetInfos);
|
= getPaymentRecDetailList(paymentReconciliation.getId(), yb2303OutputSetInfos);
|
||||||
iPaymentRecDetailService.saveBatch(paymentDetailList);
|
iPaymentRecDetailService.saveBatch(paymentDetailList);
|
||||||
|
|
||||||
// 查询原预交金 payment
|
// 查询原预交金 payment
|
||||||
@@ -2354,8 +2224,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查找对应的收费详情,根据批次号查询
|
// 查找对应的收费详情,根据批次号查询
|
||||||
List<PaymentRecDetail> paymentRecDetails =
|
List<PaymentRecDetail> paymentRecDetails
|
||||||
paymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
= paymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
||||||
.eq(PaymentRecDetail::getReconciliationId, paymentReconciliation.getId()));
|
.eq(PaymentRecDetail::getReconciliationId, paymentReconciliation.getId()));
|
||||||
|
|
||||||
if (paymentRecDetails.isEmpty()) {
|
if (paymentRecDetails.isEmpty()) {
|
||||||
@@ -2374,10 +2244,10 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// <2> 查询基础数据
|
// <2> 查询基础数据
|
||||||
List<ChargeItemBaseInfoDto> chargeItemBaseInfoByIds =
|
List<ChargeItemBaseInfoDto> chargeItemBaseInfoByIds
|
||||||
iChargeItemService.getChargeItemBaseInfoByIds(paymentDto.getChargeItemIds());
|
= iChargeItemService.getChargeItemBaseInfoByIds(paymentDto.getChargeItemIds());
|
||||||
Map<String, List<ChargeItemBaseInfoDto>> chargeItemKVByContractNo =
|
Map<String, List<ChargeItemBaseInfoDto>> chargeItemKVByContractNo
|
||||||
chargeItemBaseInfoByIds.stream().collect(Collectors.groupingBy(ChargeItemBaseInfoDto::getContractNo));
|
= chargeItemBaseInfoByIds.stream().collect(Collectors.groupingBy(ChargeItemBaseInfoDto::getContractNo));
|
||||||
|
|
||||||
List<Account> accountList = iAccountService.getAccountListByEncounter(paymentDto.getEncounterId());
|
List<Account> accountList = iAccountService.getAccountListByEncounter(paymentDto.getEncounterId());
|
||||||
if (accountList.isEmpty()) {
|
if (accountList.isEmpty()) {
|
||||||
@@ -2392,8 +2262,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
Integer mcsTracCnt = 0;
|
Integer mcsTracCnt = 0;
|
||||||
|
|
||||||
// <3>收费详情按照收费批次进行分组后结算
|
// <3>收费详情按照收费批次进行分组后结算
|
||||||
Map<Long, List<PaymentRecDetail>> payTransNoMap =
|
Map<Long, List<PaymentRecDetail>> payTransNoMap
|
||||||
paymentRecDetails.stream().collect(Collectors.groupingBy(PaymentRecDetail::getAccountId));
|
= paymentRecDetails.stream().collect(Collectors.groupingBy(PaymentRecDetail::getAccountId));
|
||||||
|
|
||||||
for (Map.Entry<Long, List<PaymentRecDetail>> stringListEntry : payTransNoMap.entrySet()) {
|
for (Map.Entry<Long, List<PaymentRecDetail>> stringListEntry : payTransNoMap.entrySet()) {
|
||||||
// paymentResult = new PaymentResult();
|
// paymentResult = new PaymentResult();
|
||||||
@@ -2525,8 +2395,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
throw new ServiceException("请选择正确退费渠道,该付款不是住院收费");
|
throw new ServiceException("请选择正确退费渠道,该付款不是住院收费");
|
||||||
}
|
}
|
||||||
// 查找对应的收费详情,根据批次号查询
|
// 查找对应的收费详情,根据批次号查询
|
||||||
List<PaymentRecDetail> paymentRecDetails =
|
List<PaymentRecDetail> paymentRecDetails
|
||||||
paymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
= paymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
||||||
.eq(PaymentRecDetail::getReconciliationId, paymentReconciliation.getId()));
|
.eq(PaymentRecDetail::getReconciliationId, paymentReconciliation.getId()));
|
||||||
if (paymentRecDetails.isEmpty()) {
|
if (paymentRecDetails.isEmpty()) {
|
||||||
return R.fail("未查询到业务付款记录收费详情");
|
return R.fail("未查询到业务付款记录收费详情");
|
||||||
@@ -2559,8 +2429,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
// 获取医保反结算后的2305输出参数
|
// 获取医保反结算后的2305输出参数
|
||||||
stringBuilder.append(yb2305OutputSetlInfo.getSetlId()).append(",");
|
stringBuilder.append(yb2305OutputSetlInfo.getSetlId()).append(",");
|
||||||
// 对payment详情的结算id进行处理
|
// 对payment详情的结算id进行处理
|
||||||
List<PaymentRecDetail> paymentRecDetailList =
|
List<PaymentRecDetail> paymentRecDetailList
|
||||||
iPaymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
= iPaymentRecDetailService.list(new LambdaQueryWrapper<PaymentRecDetail>()
|
||||||
.eq(PaymentRecDetail::getReconciliationId, unPaymentReconciliation.getId())
|
.eq(PaymentRecDetail::getReconciliationId, unPaymentReconciliation.getId())
|
||||||
.eq(PaymentRecDetail::getPayTransText, inpatientSettle.getSetlId()));
|
.eq(PaymentRecDetail::getPayTransText, inpatientSettle.getSetlId()));
|
||||||
if (!paymentRecDetailList.isEmpty()) {
|
if (!paymentRecDetailList.isEmpty()) {
|
||||||
@@ -2768,8 +2638,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
if (inpatientPreSettleDto.getSetldetail() != null && !inpatientPreSettleDto.getSetldetail().isEmpty()) {
|
if (inpatientPreSettleDto.getSetldetail() != null && !inpatientPreSettleDto.getSetldetail().isEmpty()) {
|
||||||
PaymentRecDetail paymentRecDetail20;
|
PaymentRecDetail paymentRecDetail20;
|
||||||
for (Clinic2206FundPaymentResult clinic2206FundPaymentResult : inpatientPreSettleDto.getSetldetail()) {
|
for (Clinic2206FundPaymentResult clinic2206FundPaymentResult : inpatientPreSettleDto.getSetldetail()) {
|
||||||
YbPayment ybPayment =
|
YbPayment ybPayment
|
||||||
YbPayment.getByValue(Integer.parseInt(clinic2206FundPaymentResult.getFundPayType()));
|
= YbPayment.getByValue(Integer.parseInt(clinic2206FundPaymentResult.getFundPayType()));
|
||||||
if (ybPayment == null) {
|
if (ybPayment == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -2925,8 +2795,6 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
|
|
||||||
return r.getMsg();
|
return r.getMsg();
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PaymentDetailDto> cancelPreReg(Long encounterId) {
|
public List<PaymentDetailDto> cancelPreReg(Long encounterId) {
|
||||||
@@ -2944,8 +2812,8 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
.map(Long::valueOf) // 转换为Long
|
.map(Long::valueOf) // 转换为Long
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
List<ChargeItemBaseInfoDto> chargeItemBaseInfoByIds =
|
List<ChargeItemBaseInfoDto> chargeItemBaseInfoByIds
|
||||||
chargeItemService.getChargeItemBaseInfoByIds(chargeItemIdList);
|
= chargeItemService.getChargeItemBaseInfoByIds(chargeItemIdList);
|
||||||
|
|
||||||
// 查找第一个匹配的对象
|
// 查找第一个匹配的对象
|
||||||
Optional<ChargeItemBaseInfoDto> targetObject = chargeItemBaseInfoByIds.stream()
|
Optional<ChargeItemBaseInfoDto> targetObject = chargeItemBaseInfoByIds.stream()
|
||||||
@@ -2975,5 +2843,4 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
|||||||
|
|
||||||
return detail;
|
return detail;
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,22 +2,14 @@ package com.openhis.web.paymentmanage.appservice.impl;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.constant.Constants;
|
import com.core.common.constant.Constants;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.core.common.enums.TenantOptionDict;
|
import com.core.common.enums.TenantOptionDict;
|
||||||
import com.core.common.exception.ServiceException;
|
import com.core.common.exception.ServiceException;
|
||||||
import com.core.common.utils.SecurityUtils;
|
import com.core.common.utils.SecurityUtils;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.web.util.TenantOptionUtil;
|
|
||||||
import com.openhis.administration.domain.Practitioner;
|
|
||||||
import com.openhis.administration.service.IPractitionerService;
|
|
||||||
=======
|
|
||||||
import com.core.common.utils.StringUtils;
|
import com.core.common.utils.StringUtils;
|
||||||
import com.core.web.util.TenantOptionUtil;
|
import com.core.web.util.TenantOptionUtil;
|
||||||
import com.openhis.administration.domain.Practitioner;
|
import com.openhis.administration.domain.Practitioner;
|
||||||
@@ -25,19 +17,15 @@ import com.openhis.administration.service.IPractitionerService;
|
|||||||
import com.openhis.common.constant.CommonConstants;
|
import com.openhis.common.constant.CommonConstants;
|
||||||
import com.openhis.common.enums.PaymentStatus;
|
import com.openhis.common.enums.PaymentStatus;
|
||||||
import com.openhis.common.utils.HisQueryUtils;
|
import com.openhis.common.utils.HisQueryUtils;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.financial.domain.PaymentReconciliation;
|
import com.openhis.financial.domain.PaymentReconciliation;
|
||||||
import com.openhis.financial.domain.ThreePartPayCallBack;
|
import com.openhis.financial.domain.ThreePartPayCallBack;
|
||||||
import com.openhis.financial.service.IPaymentRecDetailService;
|
import com.openhis.financial.service.IPaymentRecDetailService;
|
||||||
import com.openhis.financial.service.IPaymentReconciliationService;
|
import com.openhis.financial.service.IPaymentReconciliationService;
|
||||||
import com.openhis.financial.service.ThreePartPayCallBackService;
|
import com.openhis.financial.service.ThreePartPayCallBackService;
|
||||||
import com.openhis.web.paymentmanage.appservice.ThreePartPayService;
|
import com.openhis.web.paymentmanage.appservice.ThreePartPayService;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import com.openhis.web.paymentmanage.dto.PaymentVO;
|
import com.openhis.web.paymentmanage.dto.PaymentVO;
|
||||||
import com.openhis.web.paymentmanage.dto.ThreePartCallBackVo;
|
import com.openhis.web.paymentmanage.dto.ThreePartCallBackVo;
|
||||||
import com.openhis.web.paymentmanage.mapper.PaymentMapper;
|
import com.openhis.web.paymentmanage.mapper.PaymentMapper;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.yb.dto.BaseInfo;
|
import com.openhis.yb.dto.BaseInfo;
|
||||||
import com.openhis.yb.dto.BaseParam;
|
import com.openhis.yb.dto.BaseParam;
|
||||||
import com.openhis.yb.dto.PaymentDetailDto;
|
import com.openhis.yb.dto.PaymentDetailDto;
|
||||||
@@ -52,15 +40,6 @@ import org.apache.http.entity.StringEntity;
|
|||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.impl.client.HttpClients;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
<<<<<<< HEAD
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
=======
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -75,43 +54,27 @@ import java.util.HashMap;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ThreePartPayServiceImpl implements ThreePartPayService {
|
public class ThreePartPayServiceImpl implements ThreePartPayService {
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
Logger logger = LoggerFactory.getLogger(ThreePartPayServiceImpl.class);
|
Logger logger = LoggerFactory.getLogger(ThreePartPayServiceImpl.class);
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPractitionerService practitionerService;
|
private IPractitionerService practitionerService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPaymentRecDetailService paymentRecDetailService;
|
private IPaymentRecDetailService paymentRecDetailService;
|
||||||
@Autowired
|
@Autowired
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
private PaymentMapper paymentMapper;
|
private PaymentMapper paymentMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
>>>>>>> v1.3
|
|
||||||
private IPaymentReconciliationService paymentReconciliationService;
|
private IPaymentReconciliationService paymentReconciliationService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ThreePartPayCallBackService threePartPayCallBackService;
|
private ThreePartPayCallBackService threePartPayCallBackService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ThreePartSimpleFieldMappingService threePartSimpleFieldMappingService;
|
private ThreePartSimpleFieldMappingService threePartSimpleFieldMappingService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> payFor(ThreePartPayDto threePartPayDto) {
|
|
||||||
String threePartUrl = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_PAY_URL);
|
|
||||||
//String threePartUrl = "http://127.0.0.1:19994/?MSG=EXEC&yylx=02&posjh=&posygh=&jylx=00&je={je}&yjyrq=&yjyckh=&ypzh=&lrcjy=&cm={cm}&ysddh=&erpddh=&body=";
|
|
||||||
String threePartParam = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_PARAM);
|
|
||||||
JSONObject jsonObject = JSON.parseObject(threePartParam);
|
|
||||||
|
|
||||||
=======
|
|
||||||
public R<?> sign() {
|
public R<?> sign() {
|
||||||
// A.获取配置信息
|
// A.获取配置信息
|
||||||
String threePartUrl = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_SIGN_URL);
|
String threePartUrl = TenantOptionUtil.getOptionContent(TenantOptionDict.THREE_PART_SIGN_URL);
|
||||||
@@ -180,7 +143,6 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
JSONObject jsonObject = JSON.parseObject(activeParam);
|
JSONObject jsonObject = JSON.parseObject(activeParam);
|
||||||
|
|
||||||
//B.基础信息查询
|
//B.基础信息查询
|
||||||
>>>>>>> v1.3
|
|
||||||
//订单号及订单信息
|
//订单号及订单信息
|
||||||
Long paymentId = threePartPayDto.getId();
|
Long paymentId = threePartPayDto.getId();
|
||||||
PaymentReconciliation paymentReconciliation = paymentReconciliationService.getById(paymentId);
|
PaymentReconciliation paymentReconciliation = paymentReconciliationService.getById(paymentId);
|
||||||
@@ -188,21 +150,12 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
//金额处理
|
//金额处理
|
||||||
BigDecimal amount = BigDecimal.ZERO;
|
BigDecimal amount = BigDecimal.ZERO;
|
||||||
for (PaymentDetailDto paymentDetail : threePartPayDto.getPaymentDetails()) {
|
for (PaymentDetailDto paymentDetail : threePartPayDto.getPaymentDetails()) {
|
||||||
<<<<<<< HEAD
|
|
||||||
if(threePartPayDto.getIndex().equals(paymentDetail.getPayEnum())){
|
|
||||||
amount = paymentDetail.getAmount();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
amount = amount.multiply(new BigDecimal("100"));
|
|
||||||
String amountResult = String.format("%010d", Integer.parseInt(amount.toString()));
|
|
||||||
=======
|
|
||||||
//if(threePartPayDto.getIndex().equals(paymentDetail.getPayEnum())){
|
//if(threePartPayDto.getIndex().equals(paymentDetail.getPayEnum())){
|
||||||
amount = amount.add(paymentDetail.getAmount());
|
amount = amount.add(paymentDetail.getAmount());
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
amount = amount.multiply(new BigDecimal("100"));
|
amount = amount.multiply(new BigDecimal("100"));
|
||||||
String amountResult = String.format("%010d", amount.intValue());
|
String amountResult = String.format("%010d", amount.intValue());
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
//款员信息查询
|
//款员信息查询
|
||||||
Practitioner practitioner = practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
Practitioner practitioner = practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
||||||
@@ -210,25 +163,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
//获取支付码
|
//获取支付码
|
||||||
String txtCode = threePartPayDto.getTxtCode();
|
String txtCode = threePartPayDto.getTxtCode();
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
//获取参数
|
|
||||||
Map<String, String> paramMap = this.getParamMap(jsonObject, practitioner, null, paymentReconciliation, amountResult, txtCode);
|
|
||||||
|
|
||||||
//获取完整url
|
|
||||||
String url = renderTemplateSafe(threePartUrl, paramMap);
|
|
||||||
|
|
||||||
String result = httpGet(url);
|
|
||||||
|
|
||||||
String threePartMapping = threePartSimpleFieldMappingService.reverseMap("threePartMapping", result);
|
|
||||||
|
|
||||||
threePartPayCallBackService.save(JSON.parseObject(threePartMapping,ThreePartPayCallBack.class));
|
|
||||||
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
|
|
||||||
=======
|
|
||||||
//C.根据不同的请求方式处理参数
|
//C.根据不同的请求方式处理参数
|
||||||
|
|
||||||
//获取动态参数
|
//获取动态参数
|
||||||
Map<String, String> paramMap = this.getParamMap(jsonObject, practitioner, null, paymentReconciliation, amountResult, txtCode);
|
Map<String, String> paramMap = this.getParamMap(jsonObject, practitioner, null, paymentReconciliation, amountResult, txtCode);
|
||||||
//执行请求
|
//执行请求
|
||||||
@@ -324,7 +259,6 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
//款员信息查询
|
//款员信息查询
|
||||||
Practitioner practitioner = practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
Practitioner practitioner = practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
||||||
|
|
||||||
|
|
||||||
//C.根据不同的请求方式处理参数
|
//C.根据不同的请求方式处理参数
|
||||||
//获取动态参数
|
//获取动态参数
|
||||||
Map<String, String> paramMap = this.getParamMap(jsonObject, practitioner, threePartPayCallBack, paymentReconciliation, null, null);
|
Map<String, String> paramMap = this.getParamMap(jsonObject, practitioner, threePartPayCallBack, paymentReconciliation, null, null);
|
||||||
@@ -368,7 +302,6 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
//款员信息查询
|
//款员信息查询
|
||||||
Practitioner practitioner = practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
Practitioner practitioner = practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
||||||
|
|
||||||
|
|
||||||
//C.根据不同的请求方式处理参数
|
//C.根据不同的请求方式处理参数
|
||||||
//获取动态参数
|
//获取动态参数
|
||||||
Map<String, String> paramMap = this.getParamMap(jsonObject, practitioner, threePartPayCallBack, paymentReconciliation, null, null);
|
Map<String, String> paramMap = this.getParamMap(jsonObject, practitioner, threePartPayCallBack, paymentReconciliation, null, null);
|
||||||
@@ -408,13 +341,11 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
|
|
||||||
//B.基础信息查询
|
//B.基础信息查询
|
||||||
//PaymentReconciliation paymentReconciliation = paymentReconciliationService.getById(paymentId);
|
//PaymentReconciliation paymentReconciliation = paymentReconciliationService.getById(paymentId);
|
||||||
|
|
||||||
ThreePartPayCallBack threePartPayCallBack = threePartPayCallBackService.getById(id);
|
ThreePartPayCallBack threePartPayCallBack = threePartPayCallBackService.getById(id);
|
||||||
|
|
||||||
//款员信息查询
|
//款员信息查询
|
||||||
Practitioner practitioner = practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
Practitioner practitioner = practitionerService.getPractitionerByUserId(SecurityUtils.getLoginUser().getUserId());
|
||||||
|
|
||||||
|
|
||||||
//C.根据不同的请求方式处理参数
|
//C.根据不同的请求方式处理参数
|
||||||
//获取动态参数
|
//获取动态参数
|
||||||
Map<String, String> paramMap = this.getParamMap(jsonObject, practitioner, threePartPayCallBack, null, null, null);
|
Map<String, String> paramMap = this.getParamMap(jsonObject, practitioner, threePartPayCallBack, null, null, null);
|
||||||
@@ -446,8 +377,8 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
new HashSet<>(Arrays.asList(CommonConstants.FieldName.PatientName, CommonConstants.FieldName.PaymentNo)),
|
new HashSet<>(Arrays.asList(CommonConstants.FieldName.PatientName, CommonConstants.FieldName.PaymentNo)),
|
||||||
request);
|
request);
|
||||||
|
|
||||||
IPage<ThreePartCallBackVo> ThreePartCallBackVoIPage =
|
IPage<ThreePartCallBackVo> ThreePartCallBackVoIPage
|
||||||
paymentMapper.getThreePartCallBackVoPage(new Page<>(pageNo, pageSize), queryWrapper);
|
= paymentMapper.getThreePartCallBackVoPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||||
|
|
||||||
ThreePartCallBackVoIPage.getRecords().forEach(e -> {
|
ThreePartCallBackVoIPage.getRecords().forEach(e -> {
|
||||||
e.setIdStr(e.getId().toString());
|
e.setIdStr(e.getId().toString());
|
||||||
@@ -456,10 +387,10 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
|
|
||||||
return R.ok(ThreePartCallBackVoIPage);
|
return R.ok(ThreePartCallBackVoIPage);
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 拼接参数
|
* 拼接参数
|
||||||
|
*
|
||||||
* @param jsonObject 配置信息
|
* @param jsonObject 配置信息
|
||||||
* @param practitioner 款员信息
|
* @param practitioner 款员信息
|
||||||
* @param threePartPayCallBack 原订单
|
* @param threePartPayCallBack 原订单
|
||||||
@@ -516,8 +447,6 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
if (payWayOrderIdKey != null) {
|
if (payWayOrderIdKey != null) {
|
||||||
paramMap.put(merTradeNoKey, threePartPayCallBack.getMerTradeNo());//商户系统订单号
|
paramMap.put(merTradeNoKey, threePartPayCallBack.getMerTradeNo());//商户系统订单号
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
String tradeNoKey = jsonObject.getString("tradeNo");
|
String tradeNoKey = jsonObject.getString("tradeNo");
|
||||||
if (tradeNoKey != null) {
|
if (tradeNoKey != null) {
|
||||||
paramMap.put(tradeNoKey, threePartPayCallBack.getTradeNo());//商户系统订单号
|
paramMap.put(tradeNoKey, threePartPayCallBack.getTradeNo());//商户系统订单号
|
||||||
@@ -526,7 +455,6 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
if (txnAmtKey != null) {
|
if (txnAmtKey != null) {
|
||||||
paramMap.put(txnAmtKey, threePartPayCallBack.getTxnAmt());//金额
|
paramMap.put(txnAmtKey, threePartPayCallBack.getTxnAmt());//金额
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (paymentReconciliation != null) {
|
if (paymentReconciliation != null) {
|
||||||
@@ -547,12 +475,17 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
}
|
}
|
||||||
return paramMap;
|
return paramMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 安全替换,避免空指针
|
* 安全替换,避免空指针
|
||||||
*/
|
*/
|
||||||
private String renderTemplateSafe(String template, Map<String, String> params) {
|
private String renderTemplateSafe(String template, Map<String, String> params) {
|
||||||
if (template == null) return "";
|
if (template == null) {
|
||||||
if (params == null) params = new HashMap<>();
|
return "";
|
||||||
|
}
|
||||||
|
if (params == null) {
|
||||||
|
params = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
String result = template;
|
String result = template;
|
||||||
for (Map.Entry<String, String> entry : params.entrySet()) {
|
for (Map.Entry<String, String> entry : params.entrySet()) {
|
||||||
@@ -566,9 +499,8 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
* 执行请求
|
* 执行请求
|
||||||
|
*
|
||||||
* @param method 请求类型
|
* @param method 请求类型
|
||||||
* @param threePartUrl 路径参数
|
* @param threePartUrl 路径参数
|
||||||
* @param staticParam 静态参数
|
* @param staticParam 静态参数
|
||||||
@@ -614,7 +546,6 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
>>>>>>> v1.3
|
|
||||||
* 发送http请求(2025/05/02经测试,若以自带的工具类发送请求失败,故使用原peis系统中成功调用的写法重新封装)
|
* 发送http请求(2025/05/02经测试,若以自带的工具类发送请求失败,故使用原peis系统中成功调用的写法重新封装)
|
||||||
*
|
*
|
||||||
* @param url 路径
|
* @param url 路径
|
||||||
@@ -632,10 +563,7 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
HttpGet httpGet = new HttpGet(url);
|
HttpGet httpGet = new HttpGet(url);
|
||||||
// 执行http请求
|
// 执行http请求
|
||||||
response = httpClient.execute(httpGet);
|
response = httpClient.execute(httpGet);
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
System.out.println("回复信息:" + JSON.toJSONString(response));
|
System.out.println("回复信息:" + JSON.toJSONString(response));
|
||||||
>>>>>>> v1.3
|
|
||||||
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
|
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -649,8 +577,6 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
}
|
}
|
||||||
return resultString;
|
return resultString;
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送http请求(2025/05/02经测试,若以自带的工具类发送请求失败,故使用原peis系统中成功调用的写法重新封装)
|
* 发送http请求(2025/05/02经测试,若以自带的工具类发送请求失败,故使用原peis系统中成功调用的写法重新封装)
|
||||||
@@ -691,9 +617,6 @@ public class ThreePartPayServiceImpl implements ThreePartPayService {
|
|||||||
@Override
|
@Override
|
||||||
public R<?> payForNenu(ThreePartPayDto threePartPayDto) {
|
public R<?> payForNenu(ThreePartPayDto threePartPayDto) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.openhis.web.paymentmanage.appservice.impl;
|
package com.openhis.web.paymentmanage.appservice.impl;
|
||||||
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.openhis.web.paymentmanage.util.ReverseMappingProperties;
|
import com.openhis.web.paymentmanage.util.ReverseMappingProperties;
|
||||||
@@ -16,17 +15,11 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
<<<<<<< HEAD
|
|
||||||
@ConfigurationProperties(prefix = "threepart.mapping")
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
@Data
|
@Data
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ThreePartSimpleFieldMappingService {
|
public class ThreePartSimpleFieldMappingService {
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ReverseMappingProperties properties;
|
private ReverseMappingProperties properties;
|
||||||
|
|
||||||
@@ -38,11 +31,7 @@ public class ThreePartSimpleFieldMappingService {
|
|||||||
public String reverseMap(String businessType, String sourceJson) {
|
public String reverseMap(String businessType, String sourceJson) {
|
||||||
try {
|
try {
|
||||||
// 1. 获取映射配置
|
// 1. 获取映射配置
|
||||||
<<<<<<< HEAD
|
|
||||||
Map<String, String> mappingConfig = properties.getMappingConfig(businessType);
|
|
||||||
=======
|
|
||||||
Map<String, String> mappingConfig = properties.getReverseMappings().get(businessType);
|
Map<String, String> mappingConfig = properties.getReverseMappings().get(businessType);
|
||||||
>>>>>>> v1.3
|
|
||||||
if (mappingConfig.isEmpty()) {
|
if (mappingConfig.isEmpty()) {
|
||||||
log.warn("未找到业务类型[{}]的映射配置", businessType);
|
log.warn("未找到业务类型[{}]的映射配置", businessType);
|
||||||
return sourceJson; // 返回原JSON
|
return sourceJson; // 返回原JSON
|
||||||
@@ -50,14 +39,12 @@ public class ThreePartSimpleFieldMappingService {
|
|||||||
|
|
||||||
// 2. 解析源JSON
|
// 2. 解析源JSON
|
||||||
Map<String, Object> sourceMap;
|
Map<String, Object> sourceMap;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
// 修复BOM问题
|
// 修复BOM问题
|
||||||
if (sourceJson.startsWith("\uFEFF")) {
|
if (sourceJson.startsWith("\uFEFF")) {
|
||||||
sourceJson = sourceJson.substring(1);
|
sourceJson = sourceJson.substring(1);
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
sourceMap = objectMapper.readValue(sourceJson, new TypeReference<Map<String, Object>>() {
|
||||||
sourceMap = objectMapper.readValue(sourceJson, new TypeReference<Map<String,Object>>(){});
|
});
|
||||||
|
|
||||||
// 3. 执行反向映射
|
// 3. 执行反向映射
|
||||||
Map<String, Object> resultMap = reverseMap(mappingConfig, sourceMap);
|
Map<String, Object> resultMap = reverseMap(mappingConfig, sourceMap);
|
||||||
|
|||||||
@@ -120,8 +120,8 @@ public class PaymentReconciliationController {
|
|||||||
if ("0".equals(TenantOptionUtil.getOptionContent(TenantOptionDict.INVOICE_SWITCH))) {
|
if ("0".equals(TenantOptionUtil.getOptionContent(TenantOptionDict.INVOICE_SWITCH))) {
|
||||||
return result;
|
return result;
|
||||||
} else {
|
} else {
|
||||||
R<?> eleResult =
|
R<?> eleResult
|
||||||
eleInvoiceService.invoiceWriteoff(paymentRecon.getRelationId(), cancelPaymentDto.getReason());
|
= eleInvoiceService.invoiceWriteoff(paymentRecon.getRelationId(), cancelPaymentDto.getReason());
|
||||||
if (eleResult.getCode() != 200) {
|
if (eleResult.getCode() != 200) {
|
||||||
// 因取消付款成功前端需要关闭弹窗,此处信息仅用于提示所以返回ok
|
// 因取消付款成功前端需要关闭弹窗,此处信息仅用于提示所以返回ok
|
||||||
return R.ok(null, " 取消付款成功,电子发票开具失败 :" + eleResult.getMsg());
|
return R.ok(null, " 取消付款成功,电子发票开具失败 :" + eleResult.getMsg());
|
||||||
@@ -257,8 +257,8 @@ public class PaymentReconciliationController {
|
|||||||
if (PaymentReconciliation.class.isAssignableFrom(r.getData().getClass())) {
|
if (PaymentReconciliation.class.isAssignableFrom(r.getData().getClass())) {
|
||||||
paymentRecon = (PaymentReconciliation) r.getData();
|
paymentRecon = (PaymentReconciliation) r.getData();
|
||||||
}
|
}
|
||||||
R<?> eleResult =
|
R<?> eleResult
|
||||||
eleInvoiceService.invoiceWriteoff(paymentRecon.getRelationId(), cancelPaymentInpatientDto.getReason());
|
= eleInvoiceService.invoiceWriteoff(paymentRecon.getRelationId(), cancelPaymentInpatientDto.getReason());
|
||||||
if (eleResult.getCode() != 200) {
|
if (eleResult.getCode() != 200) {
|
||||||
// 因取消付款成功前端需要关闭弹窗,此处信息仅用于提示所以返回ok
|
// 因取消付款成功前端需要关闭弹窗,此处信息仅用于提示所以返回ok
|
||||||
return R.ok(null, " 取消付款成功,电子发票开具失败 :" + eleResult.getMsg());
|
return R.ok(null, " 取消付款成功,电子发票开具失败 :" + eleResult.getMsg());
|
||||||
@@ -277,8 +277,6 @@ public class PaymentReconciliationController {
|
|||||||
public R<?> nenuBpcPay(@RequestBody NenuBpcPayDto nenuBpcPayDto) {
|
public R<?> nenuBpcPay(@RequestBody NenuBpcPayDto nenuBpcPayDto) {
|
||||||
return R.ok(paymentReconciliationService.nenuBpcPay(nenuBpcPayDto));
|
return R.ok(paymentReconciliationService.nenuBpcPay(nenuBpcPayDto));
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退号查询
|
* 退号查询
|
||||||
@@ -290,5 +288,4 @@ public class PaymentReconciliationController {
|
|||||||
public R<?> cancelPreReg(@RequestParam(name = "encounterId") Long encounterId) {
|
public R<?> cancelPreReg(@RequestParam(name = "encounterId") Long encounterId) {
|
||||||
return R.ok(paymentReconciliationService.cancelPreReg(encounterId));
|
return R.ok(paymentReconciliationService.cancelPreReg(encounterId));
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,17 +20,9 @@ import com.openhis.yb.dto.ThreePartPayDto;
|
|||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
<<<<<<< HEAD
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
=======
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
>>>>>>> v1.3
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.security.Security;
|
import java.security.Security;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -53,10 +45,9 @@ public class ThreePartPayController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 扫码付款
|
* 扫码付款
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
@PostMapping("/sign")
|
@PostMapping("/sign")
|
||||||
public R<?> sign() {
|
public R<?> sign() {
|
||||||
return threePartPayService.sign();
|
return threePartPayService.sign();
|
||||||
@@ -64,6 +55,7 @@ public class ThreePartPayController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 扫码付款
|
* 扫码付款
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/sign-out")
|
@PostMapping("/sign-out")
|
||||||
@@ -73,18 +65,17 @@ public class ThreePartPayController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 扫码付款
|
* 扫码付款
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
>>>>>>> v1.3
|
|
||||||
@PostMapping("/pay-for")
|
@PostMapping("/pay-for")
|
||||||
public R<?> payFor(@RequestBody ThreePartPayDto threePartPayDto) {
|
public R<?> payFor(@RequestBody ThreePartPayDto threePartPayDto) {
|
||||||
return threePartPayService.payFor(threePartPayDto);
|
return threePartPayService.payFor(threePartPayDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 扫码付款(师大)
|
* 扫码付款(师大)
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/pay-for-nenu")
|
@PostMapping("/pay-for-nenu")
|
||||||
@@ -92,10 +83,9 @@ public class ThreePartPayController {
|
|||||||
return threePartPayService.payForNenu(threePartPayDto);
|
return threePartPayService.payForNenu(threePartPayDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 扫码付款结果查询(预结算窗口)
|
* 扫码付款结果查询(预结算窗口)
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/pay-query")
|
@GetMapping("/pay-query")
|
||||||
@@ -104,9 +94,9 @@ public class ThreePartPayController {
|
|||||||
//return threePartPayService.returnQuery(threePartPayDto.getId());
|
//return threePartPayService.returnQuery(threePartPayDto.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 当天退费
|
* 当天退费
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/return-bill")
|
@GetMapping("/return-bill")
|
||||||
@@ -116,6 +106,7 @@ public class ThreePartPayController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 隔天退费
|
* 隔天退费
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/return-goods")
|
@GetMapping("/return-goods")
|
||||||
@@ -125,6 +116,7 @@ public class ThreePartPayController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 退费结果查询
|
* 退费结果查询
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/return-query")
|
@GetMapping("/return-query")
|
||||||
@@ -134,6 +126,7 @@ public class ThreePartPayController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 网银支付参数
|
* 网银支付参数
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@@ -142,7 +135,5 @@ public class ThreePartPayController {
|
|||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
||||||
return threePartPayService.getPage(searchKey, pageNo, pageSize, request);
|
return threePartPayService.getPage(searchKey, pageNo, pageSize, request);
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,11 +8,7 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
<<<<<<< HEAD
|
|
||||||
@ConfigurationProperties(prefix = "threepaymapping")
|
|
||||||
=======
|
|
||||||
@ConfigurationProperties(prefix = "mapping.reverse-mappings")
|
@ConfigurationProperties(prefix = "mapping.reverse-mappings")
|
||||||
>>>>>>> v1.3
|
|
||||||
@Data
|
@Data
|
||||||
public class ReverseMappingProperties {
|
public class ReverseMappingProperties {
|
||||||
|
|
||||||
|
|||||||
@@ -2,16 +2,7 @@ package com.openhis.web.pharmacymanage.appservice;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.openhis.web.inhospitalnursestation.dto.AdmissionPageParam;
|
|
||||||
import com.openhis.web.pharmacymanage.dto.*;
|
|
||||||
=======
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 住院汇总发药 应用实现接口
|
* 住院汇总发药 应用实现接口
|
||||||
@@ -24,98 +15,14 @@ public interface ISummaryDispenseMedicineAppService {
|
|||||||
/**
|
/**
|
||||||
* 汇总发药
|
* 汇总发药
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @return 初始化信息
|
|
||||||
*/
|
|
||||||
R<?> init();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页查询住院病人列表
|
|
||||||
*
|
|
||||||
* @param admissionPageParam 查询条件
|
|
||||||
* @param startTime 开始时间
|
|
||||||
* @param endTime 结束时间
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 病人列表
|
|
||||||
*/
|
|
||||||
R<?> getEncounterInfoListPage(AdmissionPageParam admissionPageParam, String startTime, String endTime,
|
|
||||||
Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
|
||||||
|
|
||||||
|
|
||||||
void makeExcelFile(MedicineSummarySearchParam searchParam, Integer pageNo,
|
|
||||||
Integer pageSize, String searchKey,
|
|
||||||
HttpServletRequest request, HttpServletResponse response);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院汇总药品
|
|
||||||
*
|
|
||||||
* @param searchParam 查询信息
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @return 药品汇总
|
|
||||||
*/
|
|
||||||
R<?> getSummaryMedicationInfo(MedicineSummarySearchParam searchParam, Integer pageNo, Integer pageSize);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院汇总发药单
|
|
||||||
*
|
|
||||||
* @param searchParam 查询信息
|
|
||||||
* @param startTime 开始时间
|
|
||||||
* @param endTime 结束时间
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 药品汇总
|
|
||||||
*/
|
|
||||||
R<?> getSummaryFromInfo(FromSummarySearchParam searchParam, String startTime, String endTime, String searchKey,
|
|
||||||
Integer pageNo, Integer pageSize, HttpServletRequest request);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院药品汇总发药单详细
|
|
||||||
*
|
|
||||||
* @param searchParam 查询条件
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求数据
|
|
||||||
*/
|
|
||||||
R<?> getOrderInfo(FromSearchParam searchParam, String searchKey, Integer pageNo, Integer pageSize,
|
|
||||||
HttpServletRequest request);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处方单核对发药
|
|
||||||
*
|
|
||||||
* @param dispenseMedicineList 发药信息
|
|
||||||
* @return 处理结果
|
|
||||||
*/
|
|
||||||
R<?> SummaryDispenseMedicine(List<DispenseItemDto> dispenseMedicineList);
|
|
||||||
=======
|
|
||||||
* @param summaryNoList 汇总单列表
|
* @param summaryNoList 汇总单列表
|
||||||
* @return 处理结果
|
* @return 处理结果
|
||||||
*/
|
*/
|
||||||
R<?> SummaryDispenseMedicine(List<String> summaryNoList);
|
R<?> SummaryDispenseMedicine(List<String> summaryNoList);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 作废
|
* 作废
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param dispenseMedicineList 作废信息
|
|
||||||
* @return 处理结果
|
|
||||||
*/
|
|
||||||
R<?> dispenseCancel(List<DispenseItemDto> dispenseMedicineList);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退药处理
|
|
||||||
*
|
|
||||||
* @param dispenseMedicineList 退药清单
|
|
||||||
* @return 处理结果
|
|
||||||
*/
|
|
||||||
R<?> medicineReturn(List<DispenseItemDto> dispenseMedicineList);
|
|
||||||
=======
|
|
||||||
* @param summaryNoList 汇总单列表
|
* @param summaryNoList 汇总单列表
|
||||||
* @return 处理结果
|
* @return 处理结果
|
||||||
*/
|
*/
|
||||||
@@ -144,10 +51,4 @@ public interface ISummaryDispenseMedicineAppService {
|
|||||||
// */
|
// */
|
||||||
// void takeExcelField(FromSearchParam searchParam, String searchKey, Integer pageNo, Integer pageSize,
|
// void takeExcelField(FromSearchParam searchParam, String searchKey, Integer pageNo, Integer pageSize,
|
||||||
// HttpServletRequest request, HttpServletResponse response);
|
// HttpServletRequest request, HttpServletResponse response);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -95,22 +95,22 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
DispenseInitDto initDto = new DispenseInitDto();
|
DispenseInitDto initDto = new DispenseInitDto();
|
||||||
|
|
||||||
// 获取科室下拉选列表
|
// 获取科室下拉选列表
|
||||||
List<Organization> organizationList =
|
List<Organization> organizationList
|
||||||
organizationService.getList(OrganizationType.DEPARTMENT.getValue(), OrganizationClass.CLINIC.getValue());
|
= organizationService.getList(OrganizationType.DEPARTMENT.getValue(), OrganizationClass.CLINIC.getValue());
|
||||||
List<DispenseInitDto.DepartmentOption> organizationOptions = organizationList.stream()
|
List<DispenseInitDto.DepartmentOption> organizationOptions = organizationList.stream()
|
||||||
.map(organization -> new DispenseInitDto.DepartmentOption(organization.getId(), organization.getName()))
|
.map(organization -> new DispenseInitDto.DepartmentOption(organization.getId(), organization.getName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 获取配药人下拉选列表
|
// 获取配药人下拉选列表
|
||||||
List<Practitioner> preparerDoctorList =
|
List<Practitioner> preparerDoctorList
|
||||||
medicalDeviceDispenseMapper.getPreparerDoctorList(PractitionerRoles.PHARMACIST.getCode());
|
= medicalDeviceDispenseMapper.getPreparerDoctorList(PractitionerRoles.PHARMACIST.getCode());
|
||||||
List<DispenseInitDto.PreparerDoctorOption> preparerDoctorOptions = preparerDoctorList.stream()
|
List<DispenseInitDto.PreparerDoctorOption> preparerDoctorOptions = preparerDoctorList.stream()
|
||||||
.map(practitioner -> new DispenseInitDto.PreparerDoctorOption(practitioner.getId(), practitioner.getName()))
|
.map(practitioner -> new DispenseInitDto.PreparerDoctorOption(practitioner.getId(), practitioner.getName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 未发药原因下拉选列表
|
// 未发药原因下拉选列表
|
||||||
List<DispenseInitDto.NotPerformedReasonOption> notPerformedReasonOptions =
|
List<DispenseInitDto.NotPerformedReasonOption> notPerformedReasonOptions
|
||||||
Stream.of(NotPerformedReasonEnum.values())
|
= Stream.of(NotPerformedReasonEnum.values())
|
||||||
.map(notPerformedReason -> new DispenseInitDto.NotPerformedReasonOption(notPerformedReason.getValue(),
|
.map(notPerformedReason -> new DispenseInitDto.NotPerformedReasonOption(notPerformedReason.getValue(),
|
||||||
notPerformedReason.getInfo()))
|
notPerformedReason.getInfo()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
@@ -144,14 +144,14 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
Integer statusEnum = encounterInfoSearchParam.getStatusEnum();
|
Integer statusEnum = encounterInfoSearchParam.getStatusEnum();
|
||||||
encounterInfoSearchParam.setStatusEnum(null);
|
encounterInfoSearchParam.setStatusEnum(null);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<EncounterInfoSearchParam> queryWrapper =
|
QueryWrapper<EncounterInfoSearchParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(encounterInfoSearchParam, searchKey,
|
= HisQueryUtils.buildQueryWrapper(encounterInfoSearchParam, searchKey,
|
||||||
new HashSet<>(Arrays.asList(CommonConstants.FieldName.PatientName, CommonConstants.FieldName.IdCard,
|
new HashSet<>(Arrays.asList(CommonConstants.FieldName.PatientName, CommonConstants.FieldName.IdCard,
|
||||||
CommonConstants.FieldName.PatientPyStr, CommonConstants.FieldName.PatientWbStr)),
|
CommonConstants.FieldName.PatientPyStr, CommonConstants.FieldName.PatientWbStr)),
|
||||||
request);
|
request);
|
||||||
// 查询就诊病人列表
|
// 查询就诊病人列表
|
||||||
Page<EncounterInfoDto> encounterInfoPage =
|
Page<EncounterInfoDto> encounterInfoPage
|
||||||
medicalDeviceDispenseMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper,
|
= medicalDeviceDispenseMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
statusEnum, DispenseStatus.IN_PROGRESS.getValue(), DispenseStatus.COMPLETED.getValue(),
|
statusEnum, DispenseStatus.IN_PROGRESS.getValue(), DispenseStatus.COMPLETED.getValue(),
|
||||||
DispenseStatus.PREPARATION.getValue(), DispenseStatus.PREPARED.getValue());
|
DispenseStatus.PREPARATION.getValue(), DispenseStatus.PREPARED.getValue());
|
||||||
encounterInfoPage.getRecords().forEach(encounterInfo -> {
|
encounterInfoPage.getRecords().forEach(encounterInfo -> {
|
||||||
@@ -184,11 +184,11 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
Integer dispenseStatus = itemDispenseOrderDto.getStatusEnum();
|
Integer dispenseStatus = itemDispenseOrderDto.getStatusEnum();
|
||||||
itemDispenseOrderDto.setStatusEnum(null);
|
itemDispenseOrderDto.setStatusEnum(null);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<ItemDispenseOrderDto> queryWrapper =
|
QueryWrapper<ItemDispenseOrderDto> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(itemDispenseOrderDto, null, null, null);
|
= HisQueryUtils.buildQueryWrapper(itemDispenseOrderDto, null, null, null);
|
||||||
// 处方单信息查询
|
// 处方单信息查询
|
||||||
Page<ItemDispenseOrderDto> deviceDispenseOrderPage =
|
Page<ItemDispenseOrderDto> deviceDispenseOrderPage
|
||||||
medicalDeviceDispenseMapper.selectDeviceDispenseOrderPage(new Page<>(pageNo, pageSize), queryWrapper,
|
= medicalDeviceDispenseMapper.selectDeviceDispenseOrderPage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
DispenseStatus.IN_PROGRESS.getValue(), DispenseStatus.COMPLETED.getValue(),
|
DispenseStatus.IN_PROGRESS.getValue(), DispenseStatus.COMPLETED.getValue(),
|
||||||
DispenseStatus.PREPARATION.getValue(), DispenseStatus.PREPARED.getValue(), dispenseStatus);
|
DispenseStatus.PREPARATION.getValue(), DispenseStatus.PREPARED.getValue(), dispenseStatus);
|
||||||
deviceDispenseOrderPage.getRecords().forEach(deviceDispenseOrder -> {
|
deviceDispenseOrderPage.getRecords().forEach(deviceDispenseOrder -> {
|
||||||
@@ -215,54 +215,12 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
return R.fail("请选择调配药师");
|
return R.fail("请选择调配药师");
|
||||||
}
|
}
|
||||||
// 获取发药单id列表
|
// 获取发药单id列表
|
||||||
List<Long> devDispenseIdList =
|
List<Long> devDispenseIdList
|
||||||
dispenseDeviceList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
= dispenseDeviceList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
||||||
<<<<<<< HEAD
|
|
||||||
// 获取库存信息
|
|
||||||
List<UnDispenseInventoryDto> inventoryList = returnMedicineMapper.selectInventoryInfoList(devDispenseIdList, null,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
// 按每个药品分组
|
|
||||||
Map<Long, List<UnDispenseInventoryDto>> groupedByItemId =
|
|
||||||
inventoryList.stream().collect(Collectors.groupingBy(UnDispenseInventoryDto::getItemId));
|
|
||||||
// 遍历每个分组校验库存状态
|
|
||||||
for (Map.Entry<Long, List<UnDispenseInventoryDto>> entry : groupedByItemId.entrySet()) {
|
|
||||||
List<UnDispenseInventoryDto> groupItems = entry.getValue();
|
|
||||||
if (groupItems.stream().map(UnDispenseInventoryDto::getInventoryStatusEnum)
|
|
||||||
.allMatch(x -> x.equals(PublicationStatus.RETIRED.getValue()))) {
|
|
||||||
// 库存停供校验
|
|
||||||
return R.fail(groupItems.get(0).getItemName() + "库存已停供");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!inventoryList.isEmpty()) {
|
|
||||||
for (UnDispenseInventoryDto unDispenseInventoryDto : inventoryList) {
|
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())) {
|
|
||||||
InventoryItem inventoryItem = new InventoryItem();
|
|
||||||
// 库存数量判定
|
|
||||||
if (unDispenseInventoryDto.getDispenseUnit().equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-请求数量
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity().subtract(unDispenseInventoryDto.getQuantity());
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-拆零数量(拆零比×请求数量)
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity()
|
|
||||||
.subtract(unDispenseInventoryDto.getPartPercent().multiply(unDispenseInventoryDto.getQuantity()));
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
=======
|
|
||||||
|
|
||||||
// 获取耗材待发放库存信息
|
// 获取耗材待发放库存信息
|
||||||
List<UnDispenseInventoryDto> unDispenseInventoryList =
|
List<UnDispenseInventoryDto> unDispenseInventoryList
|
||||||
returnMedicineMapper.selectInventoryInfoList(devDispenseIdList, null,
|
= returnMedicineMapper.selectInventoryInfoList(devDispenseIdList, null,
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
||||||
if (unDispenseInventoryList == null || unDispenseInventoryList.isEmpty()) {
|
if (unDispenseInventoryList == null || unDispenseInventoryList.isEmpty()) {
|
||||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||||
@@ -271,8 +229,8 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
// 库存待更新列表
|
// 库存待更新列表
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
||||||
// 根据批号,发放项目,发放药房进行分组处理
|
// 根据批号,发放项目,发放药房进行分组处理
|
||||||
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap =
|
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap
|
||||||
unDispenseInventoryList.stream().collect(Collectors.groupingBy(x -> x.getItemId()
|
= unDispenseInventoryList.stream().collect(Collectors.groupingBy(x -> x.getItemId()
|
||||||
+ CommonConstants.Common.DASH + x.getLotNumber() + CommonConstants.Common.DASH + x.getLocationId()));
|
+ CommonConstants.Common.DASH + x.getLotNumber() + CommonConstants.Common.DASH + x.getLocationId()));
|
||||||
if (!unDispenseInventoryMap.isEmpty()) {
|
if (!unDispenseInventoryMap.isEmpty()) {
|
||||||
for (Map.Entry<String, List<UnDispenseInventoryDto>> entry : unDispenseInventoryMap.entrySet()) {
|
for (Map.Entry<String, List<UnDispenseInventoryDto>> entry : unDispenseInventoryMap.entrySet()) {
|
||||||
@@ -294,15 +252,14 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
if (!unDispenseInventoryDto.getDispenseUnit()
|
if (!unDispenseInventoryDto.getDispenseUnit()
|
||||||
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
||||||
// 转换为小单位进行累加
|
// 转换为小单位进行累加
|
||||||
quantity =
|
quantity
|
||||||
unDispenseInventoryDto.getQuantity().multiply(unDispenseInventoryDto.getPartPercent());
|
= unDispenseInventoryDto.getQuantity().multiply(unDispenseInventoryDto.getPartPercent());
|
||||||
}
|
}
|
||||||
minQuantity = minQuantity.add(quantity);
|
minQuantity = minQuantity.add(quantity);
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())
|
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())
|
||||||
&& unDispenseInventoryDto.getInventoryQuantity().compareTo(BigDecimal.ZERO) > 0) {
|
&& unDispenseInventoryDto.getInventoryQuantity().compareTo(BigDecimal.ZERO) > 0) {
|
||||||
inventoryQuantity = unDispenseInventoryDto.getInventoryQuantity();
|
inventoryQuantity = unDispenseInventoryDto.getInventoryQuantity();
|
||||||
inventoryId = unDispenseInventoryDto.getInventoryId();
|
inventoryId = unDispenseInventoryDto.getInventoryId();
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (minQuantity.compareTo(inventoryQuantity) > 0) {
|
if (minQuantity.compareTo(inventoryQuantity) > 0) {
|
||||||
@@ -432,8 +389,8 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
@Override
|
@Override
|
||||||
public R<?> dispenseMedicalConsumables(List<Long> chargeItemIds) {
|
public R<?> dispenseMedicalConsumables(List<Long> chargeItemIds) {
|
||||||
// 查看所属医院
|
// 查看所属医院
|
||||||
String fixmedinsCode =
|
String fixmedinsCode
|
||||||
SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE);
|
= SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE);
|
||||||
if (!HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
if (!HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
@@ -443,58 +400,16 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取发申请id列表
|
// 获取发申请id列表
|
||||||
List<Long> devRequestIdList =
|
List<Long> devRequestIdList
|
||||||
chargeItemList.stream().map(ChargeItem::getServiceId).collect(Collectors.toList());
|
= chargeItemList.stream().map(ChargeItem::getServiceId).collect(Collectors.toList());
|
||||||
// 获取耗材发放id列表
|
// 获取耗材发放id列表
|
||||||
List<Long> devDispenseIdList = deviceDispenseService
|
List<Long> devDispenseIdList = deviceDispenseService
|
||||||
.list(new LambdaQueryWrapper<DeviceDispense>().in(DeviceDispense::getDeviceReqId, devRequestIdList))
|
.list(new LambdaQueryWrapper<DeviceDispense>().in(DeviceDispense::getDeviceReqId, devRequestIdList))
|
||||||
.stream().map(DeviceDispense::getId).collect(Collectors.toList());
|
.stream().map(DeviceDispense::getId).collect(Collectors.toList());
|
||||||
<<<<<<< HEAD
|
|
||||||
// 获取库存信息
|
|
||||||
List<UnDispenseInventoryDto> inventoryList = returnMedicineMapper.selectInventoryInfoList(devDispenseIdList, null,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
// 按每个耗材分组
|
|
||||||
Map<Long, List<UnDispenseInventoryDto>> groupedByItemId =
|
|
||||||
inventoryList.stream().collect(Collectors.groupingBy(UnDispenseInventoryDto::getItemId));
|
|
||||||
// 遍历每个分组校验库存状态
|
|
||||||
for (Map.Entry<Long, List<UnDispenseInventoryDto>> entry : groupedByItemId.entrySet()) {
|
|
||||||
List<UnDispenseInventoryDto> groupItems = entry.getValue();
|
|
||||||
if (groupItems.stream().map(UnDispenseInventoryDto::getInventoryStatusEnum)
|
|
||||||
.allMatch(x -> x.equals(PublicationStatus.RETIRED.getValue()))) {
|
|
||||||
// 库存停供校验
|
|
||||||
return R.fail(groupItems.get(0).getItemName() + "库存已停供");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!inventoryList.isEmpty()) {
|
|
||||||
for (UnDispenseInventoryDto unDispenseInventoryDto : inventoryList) {
|
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())) {
|
|
||||||
InventoryItem inventoryItem = new InventoryItem();
|
|
||||||
// 库存数量判定
|
|
||||||
if (unDispenseInventoryDto.getDispenseUnit().equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-请求数量
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity().subtract(unDispenseInventoryDto.getQuantity());
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-拆零数量(拆零比×请求数量)
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity()
|
|
||||||
.subtract(unDispenseInventoryDto.getPartPercent().multiply(unDispenseInventoryDto.getQuantity()));
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
=======
|
|
||||||
|
|
||||||
// 获取耗材待发放库存信息
|
// 获取耗材待发放库存信息
|
||||||
List<UnDispenseInventoryDto> unDispenseInventoryList =
|
List<UnDispenseInventoryDto> unDispenseInventoryList
|
||||||
returnMedicineMapper.selectInventoryInfoList(devDispenseIdList, null,
|
= returnMedicineMapper.selectInventoryInfoList(devDispenseIdList, null,
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
||||||
if (unDispenseInventoryList == null || unDispenseInventoryList.isEmpty()) {
|
if (unDispenseInventoryList == null || unDispenseInventoryList.isEmpty()) {
|
||||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||||
@@ -503,8 +418,8 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
// 库存待更新列表
|
// 库存待更新列表
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
||||||
// 根据批号,发放项目,发放药房进行分组处理
|
// 根据批号,发放项目,发放药房进行分组处理
|
||||||
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap =
|
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap
|
||||||
unDispenseInventoryList.stream().collect(Collectors.groupingBy(x -> x.getItemId()
|
= unDispenseInventoryList.stream().collect(Collectors.groupingBy(x -> x.getItemId()
|
||||||
+ CommonConstants.Common.DASH + x.getLotNumber() + CommonConstants.Common.DASH + x.getLocationId()));
|
+ CommonConstants.Common.DASH + x.getLotNumber() + CommonConstants.Common.DASH + x.getLocationId()));
|
||||||
if (!unDispenseInventoryMap.isEmpty()) {
|
if (!unDispenseInventoryMap.isEmpty()) {
|
||||||
for (Map.Entry<String, List<UnDispenseInventoryDto>> entry : unDispenseInventoryMap.entrySet()) {
|
for (Map.Entry<String, List<UnDispenseInventoryDto>> entry : unDispenseInventoryMap.entrySet()) {
|
||||||
@@ -526,15 +441,14 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
if (!unDispenseInventoryDto.getDispenseUnit()
|
if (!unDispenseInventoryDto.getDispenseUnit()
|
||||||
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
||||||
// 转换为小单位进行累加
|
// 转换为小单位进行累加
|
||||||
quantity =
|
quantity
|
||||||
unDispenseInventoryDto.getQuantity().multiply(unDispenseInventoryDto.getPartPercent());
|
= unDispenseInventoryDto.getQuantity().multiply(unDispenseInventoryDto.getPartPercent());
|
||||||
}
|
}
|
||||||
minQuantity = minQuantity.add(quantity);
|
minQuantity = minQuantity.add(quantity);
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())
|
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())
|
||||||
&& unDispenseInventoryDto.getInventoryQuantity().compareTo(BigDecimal.ZERO) > 0) {
|
&& unDispenseInventoryDto.getInventoryQuantity().compareTo(BigDecimal.ZERO) > 0) {
|
||||||
inventoryQuantity = unDispenseInventoryDto.getInventoryQuantity();
|
inventoryQuantity = unDispenseInventoryDto.getInventoryQuantity();
|
||||||
inventoryId = unDispenseInventoryDto.getInventoryId();
|
inventoryId = unDispenseInventoryDto.getInventoryId();
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (minQuantity.compareTo(inventoryQuantity) > 0) {
|
if (minQuantity.compareTo(inventoryQuantity) > 0) {
|
||||||
@@ -627,8 +541,8 @@ public class MedicalDeviceDispenseAppServiceImpl implements IMedicalDeviceDispen
|
|||||||
@Override
|
@Override
|
||||||
public R<?> deviceCancel(List<DispenseItemDto> dispenseDeviceList) {
|
public R<?> deviceCancel(List<DispenseItemDto> dispenseDeviceList) {
|
||||||
// 获取发材料单id列表
|
// 获取发材料单id列表
|
||||||
List<Long> devDispenseIdList =
|
List<Long> devDispenseIdList
|
||||||
dispenseDeviceList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
= dispenseDeviceList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
||||||
// 材料发放信息查询
|
// 材料发放信息查询
|
||||||
List<DeviceDispense> dispenseList = deviceDispenseService
|
List<DeviceDispense> dispenseList = deviceDispenseService
|
||||||
.list(new LambdaQueryWrapper<DeviceDispense>().in(DeviceDispense::getId, devDispenseIdList));
|
.list(new LambdaQueryWrapper<DeviceDispense>().in(DeviceDispense::getId, devDispenseIdList));
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
package com.openhis.web.pharmacymanage.appservice.impl;
|
package com.openhis.web.pharmacymanage.appservice.impl;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.math.RoundingMode;
|
|
||||||
import java.util.*;
|
|
||||||
=======
|
|
||||||
import static com.openhis.common.constant.CommonConstants.ExcelOut.*;
|
import static com.openhis.common.constant.CommonConstants.ExcelOut.*;
|
||||||
import static com.openhis.common.constant.CommonConstants.SheetName.SHEET_NAME_DRUG_DETAIL;
|
import static com.openhis.common.constant.CommonConstants.SheetName.SHEET_NAME_DRUG_DETAIL;
|
||||||
|
|
||||||
@@ -13,18 +8,12 @@ import java.math.RoundingMode;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
>>>>>>> v1.3
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.core.common.utils.poi.ExcelUtil;
|
|
||||||
import com.openhis.web.inventorymanage.dto.ReceiptPageDto;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -32,23 +21,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.core.common.core.domain.entity.SysDictData;
|
import com.core.common.core.domain.entity.SysDictData;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import com.core.common.exception.NonCaptureException;
|
import com.core.common.exception.NonCaptureException;
|
||||||
import com.core.common.utils.StringUtils;
|
import com.core.common.utils.StringUtils;
|
||||||
import com.core.common.utils.poi.ExcelUtil;
|
import com.core.common.utils.poi.ExcelUtil;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.core.system.service.ISysDictTypeService;
|
import com.core.system.service.ISysDictTypeService;
|
||||||
import com.openhis.administration.domain.Practitioner;
|
import com.openhis.administration.domain.Practitioner;
|
||||||
import com.openhis.administration.service.IPractitionerService;
|
import com.openhis.administration.service.IPractitionerService;
|
||||||
import com.openhis.common.constant.CommonConstants;
|
import com.openhis.common.constant.CommonConstants;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.common.enums.DispenseStatus;
|
|
||||||
import com.openhis.common.enums.EncounterClass;
|
|
||||||
=======
|
|
||||||
import com.openhis.common.enums.ConditionCode;
|
import com.openhis.common.enums.ConditionCode;
|
||||||
import com.openhis.common.enums.DispenseStatus;
|
import com.openhis.common.enums.DispenseStatus;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.common.enums.PublicationStatus;
|
import com.openhis.common.enums.PublicationStatus;
|
||||||
import com.openhis.common.enums.RequestStatus;
|
import com.openhis.common.enums.RequestStatus;
|
||||||
import com.openhis.common.utils.HisQueryUtils;
|
import com.openhis.common.utils.HisQueryUtils;
|
||||||
@@ -80,11 +61,6 @@ public class MedicationDetailsAppServiceImpl implements IMedicationDetailsAppSer
|
|||||||
/**
|
/**
|
||||||
* 获取页面初始化信息
|
* 获取页面初始化信息
|
||||||
*/
|
*/
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
@Override
|
@Override
|
||||||
public R<?> init() {
|
public R<?> init() {
|
||||||
|
|
||||||
@@ -134,19 +110,11 @@ public class MedicationDetailsAppServiceImpl implements IMedicationDetailsAppSer
|
|||||||
QueryWrapper<MedDetailsSearchParam> queryWrapper = HisQueryUtils.buildQueryWrapper(medDetailsSearchParam,
|
QueryWrapper<MedDetailsSearchParam> queryWrapper = HisQueryUtils.buildQueryWrapper(medDetailsSearchParam,
|
||||||
searchKey, new HashSet<>(Arrays.asList("patient_name", "medication_name", "bus_no", "py_str")), request);
|
searchKey, new HashSet<>(Arrays.asList("patient_name", "medication_name", "bus_no", "py_str")), request);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
Page<MedDetailedAccountPageDto> medDetailsPage =
|
|
||||||
medicationDetailsMapper.selectAmbPractitionerDetailPage(new Page<>(pageNo, pageSize), queryWrapper,
|
|
||||||
EncounterClass.AMB.getValue(), DispenseStatus.COMPLETED.getValue(), RequestStatus.COMPLETED.getValue(),
|
|
||||||
DispenseStatus.REFUNDED.getValue(), 1, flg, CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
|
||||||
CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
=======
|
|
||||||
Page<MedDetailedAccountPageDto> medDetailsPage = medicationDetailsMapper.selectAmbPractitionerDetailPage(
|
Page<MedDetailedAccountPageDto> medDetailsPage = medicationDetailsMapper.selectAmbPractitionerDetailPage(
|
||||||
new Page<>(pageNo, pageSize), queryWrapper, DispenseStatus.COMPLETED.getValue(),
|
new Page<>(pageNo, pageSize), queryWrapper, DispenseStatus.COMPLETED.getValue(),
|
||||||
RequestStatus.COMPLETED.getValue(), DispenseStatus.REFUNDED.getValue(), statisticalType, flg,
|
RequestStatus.COMPLETED.getValue(), DispenseStatus.REFUNDED.getValue(), statisticalType, flg,
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
||||||
ConditionCode.LOT_NUMBER_COST.getCode());
|
ConditionCode.LOT_NUMBER_COST.getCode());
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
return R.ok(medDetailsPage);
|
return R.ok(medDetailsPage);
|
||||||
|
|
||||||
@@ -171,22 +139,6 @@ public class MedicationDetailsAppServiceImpl implements IMedicationDetailsAppSer
|
|||||||
// 先获取Page对象,再获取其中的记录列表
|
// 先获取Page对象,再获取其中的记录列表
|
||||||
Page<MedDetailedAccountPageDto> pageData = (Page<MedDetailedAccountPageDto>) result.getData();
|
Page<MedDetailedAccountPageDto> pageData = (Page<MedDetailedAccountPageDto>) result.getData();
|
||||||
List<MedDetailedAccountPageDto> dataList = pageData.getRecords();
|
List<MedDetailedAccountPageDto> dataList = pageData.getRecords();
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
// 获取字典数据
|
|
||||||
for (MedDetailedAccountPageDto medDetailedAccountPageDto : dataList) {
|
|
||||||
String unitCode = medDetailedAccountPageDto.getUnitCode();
|
|
||||||
// 添加空值检查
|
|
||||||
if (unitCode != null && sysDictTypeService != null) {
|
|
||||||
// 缓存字典数据,避免重复查询
|
|
||||||
List<SysDictData> unitCodelist = sysDictTypeService.selectDictDataByType("unit_code");
|
|
||||||
if (unitCodelist != null) {
|
|
||||||
for (SysDictData dictData : unitCodelist) {
|
|
||||||
if (dictData != null && dictData.getDictValue() != null
|
|
||||||
&& dictData.getDictValue().equals(unitCode)) {
|
|
||||||
medDetailedAccountPageDto.setUnitCode_dictText(dictData.getDictLabel());
|
|
||||||
break;
|
|
||||||
=======
|
|
||||||
// 判断项目类别
|
// 判断项目类别
|
||||||
try {
|
try {
|
||||||
// 获取字典数据
|
// 获取字典数据
|
||||||
@@ -195,8 +147,8 @@ public class MedicationDetailsAppServiceImpl implements IMedicationDetailsAppSer
|
|||||||
// 添加空值检查
|
// 添加空值检查
|
||||||
if (unitCode != null && sysDictTypeService != null) {
|
if (unitCode != null && sysDictTypeService != null) {
|
||||||
// 缓存字典数据,避免重复查询
|
// 缓存字典数据,避免重复查询
|
||||||
List<SysDictData> unitCodelist =
|
List<SysDictData> unitCodelist
|
||||||
sysDictTypeService.selectDictDataByType(CommonConstants.FieldName.UnitCode);
|
= sysDictTypeService.selectDictDataByType(CommonConstants.FieldName.UnitCode);
|
||||||
if (unitCodelist != null) {
|
if (unitCodelist != null) {
|
||||||
for (SysDictData dictData : unitCodelist) {
|
for (SysDictData dictData : unitCodelist) {
|
||||||
if (dictData != null && dictData.getDictValue() != null
|
if (dictData != null && dictData.getDictValue() != null
|
||||||
@@ -205,110 +157,10 @@ public class MedicationDetailsAppServiceImpl implements IMedicationDetailsAppSer
|
|||||||
medDetailedAccountPageDto.setUnitCode_dictText(dictData.getDictLabel());
|
medDetailedAccountPageDto.setUnitCode_dictText(dictData.getDictLabel());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
}
|
|
||||||
|
|
||||||
// 将发药数量与单位拼接
|
|
||||||
for (MedDetailedAccountPageDto medDetailedAccountPageDto : dataList) {
|
|
||||||
String unitCode_dictText = medDetailedAccountPageDto.getUnitCode_dictText();
|
|
||||||
Integer dispenseQuantity = medDetailedAccountPageDto.getDispenseQuantity();
|
|
||||||
// 将发药数量与单位拼接
|
|
||||||
medDetailedAccountPageDto.setDispenseQuantitystr(dispenseQuantity + unitCode_dictText);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 将退药数量与单位拼接
|
|
||||||
for (MedDetailedAccountPageDto medDetailedAccountPageDto : dataList) {
|
|
||||||
String unitCode_dictText = medDetailedAccountPageDto.getUnitCode_dictText();
|
|
||||||
Integer refundQuantity = medDetailedAccountPageDto.getRefundQuantity();
|
|
||||||
// 添加完整的空值检查和默认值处理
|
|
||||||
String unitText = (unitCode_dictText != null) ? unitCode_dictText : "";
|
|
||||||
if (refundQuantity == null) {
|
|
||||||
medDetailedAccountPageDto.setRefundQuantitystr("0.00" + unitCode_dictText);
|
|
||||||
} else if (refundQuantity == 0) {
|
|
||||||
medDetailedAccountPageDto.setRefundQuantitystr("0.00" + unitCode_dictText);
|
|
||||||
} else {
|
|
||||||
medDetailedAccountPageDto.setRefundQuantitystr(refundQuantity.toString() + unitCode_dictText);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 将退药金额
|
|
||||||
for (MedDetailedAccountPageDto medDetailedAccountPageDto : dataList) {
|
|
||||||
BigDecimal refundPrice = medDetailedAccountPageDto.getRefundPrice();
|
|
||||||
if (refundPrice == null) {
|
|
||||||
medDetailedAccountPageDto.setRefundPricestr("0.00" );
|
|
||||||
} else if (refundPrice.signum() == 0) {
|
|
||||||
medDetailedAccountPageDto.setRefundPricestr("0.00" );
|
|
||||||
} else {
|
|
||||||
refundPrice = refundPrice.setScale(6, RoundingMode.HALF_UP);
|
|
||||||
medDetailedAccountPageDto.setRefundPricestr(refundPrice.toString() );
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//发药金额
|
|
||||||
for (MedDetailedAccountPageDto medDetailedAccountPageDto : dataList) {
|
|
||||||
BigDecimal dispensePrice = medDetailedAccountPageDto.getDispensePrice();
|
|
||||||
if (dispensePrice == null) {
|
|
||||||
medDetailedAccountPageDto.setDispensePricestr("0.00" );
|
|
||||||
} else if (dispensePrice.signum() == 0) {
|
|
||||||
medDetailedAccountPageDto.setDispensePricestr("0.00" );
|
|
||||||
} else {
|
|
||||||
dispensePrice = dispensePrice.setScale(6, RoundingMode.HALF_UP);
|
|
||||||
medDetailedAccountPageDto.setDispensePricestr(dispensePrice.toString() );
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
// 添加项目类别
|
|
||||||
for (MedDetailedAccountPageDto medDetailedAccountPageDto : dataList) {
|
|
||||||
String itemTable = medDetailedAccountPageDto.getItemTable();
|
|
||||||
if (itemTable != null) {
|
|
||||||
if(itemTable.equals("med_medication_definition")){
|
|
||||||
medDetailedAccountPageDto.setItemTable("药品");
|
|
||||||
}
|
|
||||||
if(itemTable.equals("adm_device_definition")){
|
|
||||||
medDetailedAccountPageDto.setItemTable("耗材");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
medDetailedAccountPageDto.setItemTable("未知类型");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//判断项目类别
|
|
||||||
|
|
||||||
try {
|
|
||||||
// 准备表头(key对应DTO的字段名)
|
|
||||||
//Map<String, String> headers = new LinkedHashMap<>();
|
|
||||||
// headers.put("practitionerName", "发药人");
|
|
||||||
// headers.put("dispenseNo", "发药单号");
|
|
||||||
// headers.put("medicationName", "药品项目");
|
|
||||||
// headers.put("itemTable", "项目类别");
|
|
||||||
// headers.put("busNo", "药品编码");
|
|
||||||
// headers.put("ybNo", "医保编码");
|
|
||||||
// headers.put("totalVolume", "规格");
|
|
||||||
// headers.put("dispenseQuantitystr", "发药数量");
|
|
||||||
// headers.put("dispensePricestr", "发药金额");
|
|
||||||
// headers.put("refundQuantitystr", "退药数量");
|
|
||||||
// headers.put("refundPricestr", "退药金额");
|
|
||||||
// headers.put("lotNumber", "生产批号");
|
|
||||||
// headers.put("manufacturerText", "厂家/产地");
|
|
||||||
// headers.put("supplierName", "供应商");
|
|
||||||
// headers.put("dispenseTime", "发药时间");
|
|
||||||
// 导出到Excel
|
|
||||||
// ExcelFillerUtil.makeExcelFile(response, dataList, headers, "发药明细", null);
|
|
||||||
// 导出到Excel
|
|
||||||
ExcelUtil<MedDetailedAccountPageDto> util = new ExcelUtil<MedDetailedAccountPageDto>(MedDetailedAccountPageDto.class);
|
|
||||||
util.exportExcel(response,dataList,"发药明细");
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
System.out.printf("导出Excel失败:" + e.getMessage());
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
|
|
||||||
// 将发药数量与单位拼接
|
// 将发药数量与单位拼接
|
||||||
for (MedDetailedAccountPageDto medDetailedAccountPageDto : dataList) {
|
for (MedDetailedAccountPageDto medDetailedAccountPageDto : dataList) {
|
||||||
@@ -408,7 +260,6 @@ public class MedicationDetailsAppServiceImpl implements IMedicationDetailsAppSer
|
|||||||
throw new NonCaptureException(StringUtils.format("导出excel失败"), e);
|
throw new NonCaptureException(StringUtils.format("导出excel失败"), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -440,19 +291,11 @@ public class MedicationDetailsAppServiceImpl implements IMedicationDetailsAppSer
|
|||||||
QueryWrapper<MedDetailsSearchParam> queryWrapper = HisQueryUtils.buildQueryWrapper(medDetailsSearchParam,
|
QueryWrapper<MedDetailsSearchParam> queryWrapper = HisQueryUtils.buildQueryWrapper(medDetailsSearchParam,
|
||||||
searchKey, new HashSet<>(Arrays.asList("patient_name", "medication_name", "bus_no", "py_str")), request);
|
searchKey, new HashSet<>(Arrays.asList("patient_name", "medication_name", "bus_no", "py_str")), request);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
Page<MedDetailedAccountPageDto> medDetailsPage =
|
|
||||||
medicationDetailsMapper.selectAmbPractitionerDetailPage(new Page<>(pageNo, pageSize), queryWrapper,
|
|
||||||
EncounterClass.AMB.getValue(), DispenseStatus.COMPLETED.getValue(), RequestStatus.COMPLETED.getValue(),
|
|
||||||
DispenseStatus.REFUNDED.getValue(), 2, flg, CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
|
||||||
CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
=======
|
|
||||||
Page<MedDetailedAccountPageDto> medDetailsPage = medicationDetailsMapper.selectAmbPractitionerDetailPage(
|
Page<MedDetailedAccountPageDto> medDetailsPage = medicationDetailsMapper.selectAmbPractitionerDetailPage(
|
||||||
new Page<>(pageNo, pageSize), queryWrapper, DispenseStatus.COMPLETED.getValue(),
|
new Page<>(pageNo, pageSize), queryWrapper, DispenseStatus.COMPLETED.getValue(),
|
||||||
RequestStatus.COMPLETED.getValue(), DispenseStatus.REFUNDED.getValue(), statisticalType, flg,
|
RequestStatus.COMPLETED.getValue(), DispenseStatus.REFUNDED.getValue(), statisticalType, flg,
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
||||||
ConditionCode.LOT_NUMBER_COST.getCode());
|
ConditionCode.LOT_NUMBER_COST.getCode());
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
return R.ok(medDetailsPage);
|
return R.ok(medDetailsPage);
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,7 @@ import java.util.stream.Collectors;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
@@ -135,8 +132,8 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
ReturnMedicineInitDto initDto = new ReturnMedicineInitDto();
|
ReturnMedicineInitDto initDto = new ReturnMedicineInitDto();
|
||||||
|
|
||||||
// 获取科室下拉选列表
|
// 获取科室下拉选列表
|
||||||
List<Organization> organizationList =
|
List<Organization> organizationList
|
||||||
iOrganizationService.getList(OrganizationType.DEPARTMENT.getValue(), OrganizationClass.CLINIC.getValue());
|
= iOrganizationService.getList(OrganizationType.DEPARTMENT.getValue(), OrganizationClass.CLINIC.getValue());
|
||||||
List<ReturnMedicineInitDto.DepartmentOption> organizationOptions = organizationList.stream().map(
|
List<ReturnMedicineInitDto.DepartmentOption> organizationOptions = organizationList.stream().map(
|
||||||
organization -> new ReturnMedicineInitDto.DepartmentOption(organization.getId(), organization.getName()))
|
organization -> new ReturnMedicineInitDto.DepartmentOption(organization.getId(), organization.getName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
@@ -170,8 +167,8 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
CommonConstants.FieldName.PatientPyStr, CommonConstants.FieldName.PatientWbStr)),
|
CommonConstants.FieldName.PatientPyStr, CommonConstants.FieldName.PatientWbStr)),
|
||||||
request);
|
request);
|
||||||
// 查询退药患者分页列表
|
// 查询退药患者分页列表
|
||||||
Page<EncounterInfoDto> encounterInfoPage =
|
Page<EncounterInfoDto> encounterInfoPage
|
||||||
returnMedicineMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper);
|
= returnMedicineMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||||
encounterInfoPage.getRecords().forEach(encounterInfo -> {
|
encounterInfoPage.getRecords().forEach(encounterInfo -> {
|
||||||
// 性别
|
// 性别
|
||||||
encounterInfo.setGenderEnum_enumText(
|
encounterInfo.setGenderEnum_enumText(
|
||||||
@@ -230,9 +227,11 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
|
|
||||||
medicineReturnList.forEach(item -> {
|
medicineReturnList.forEach(item -> {
|
||||||
switch (item.getTableName()) {
|
switch (item.getTableName()) {
|
||||||
case CommonConstants.TableName.MED_MEDICATION_REQUEST -> returnMedicineList
|
case CommonConstants.TableName.MED_MEDICATION_REQUEST ->
|
||||||
|
returnMedicineList
|
||||||
.add(new ReturnMedicineDto().setDispenseId(item.getDispenseId()).setRequestId(item.getRequestId()));
|
.add(new ReturnMedicineDto().setDispenseId(item.getDispenseId()).setRequestId(item.getRequestId()));
|
||||||
case CommonConstants.TableName.WOR_DEVICE_REQUEST -> returnDeviceList
|
case CommonConstants.TableName.WOR_DEVICE_REQUEST ->
|
||||||
|
returnDeviceList
|
||||||
.add(new ReturnMedicineDto().setDispenseId(item.getDispenseId()).setRequestId(item.getRequestId()));
|
.add(new ReturnMedicineDto().setDispenseId(item.getDispenseId()).setRequestId(item.getRequestId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -244,11 +243,11 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
List<Long> medReturnIdList = new ArrayList<>();
|
List<Long> medReturnIdList = new ArrayList<>();
|
||||||
if (!returnMedicineList.isEmpty()) {
|
if (!returnMedicineList.isEmpty()) {
|
||||||
// 获取药品退药id列表
|
// 获取药品退药id列表
|
||||||
medReturnIdList =
|
medReturnIdList
|
||||||
returnMedicineList.stream().map(ReturnMedicineDto::getDispenseId).collect(Collectors.toList());
|
= returnMedicineList.stream().map(ReturnMedicineDto::getDispenseId).collect(Collectors.toList());
|
||||||
// 获取药品退药请求id列表
|
// 获取药品退药请求id列表
|
||||||
List<Long> medRequestIdList =
|
List<Long> medRequestIdList
|
||||||
returnMedicineList.stream().map(ReturnMedicineDto::getRequestId).collect(Collectors.toList());
|
= returnMedicineList.stream().map(ReturnMedicineDto::getRequestId).collect(Collectors.toList());
|
||||||
if (medReturnIdList.isEmpty()) {
|
if (medReturnIdList.isEmpty()) {
|
||||||
throw new ServiceException("请选择要退的药品");
|
throw new ServiceException("请选择要退的药品");
|
||||||
}
|
}
|
||||||
@@ -334,11 +333,11 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
List<Long> devReturnIdList = new ArrayList<>();
|
List<Long> devReturnIdList = new ArrayList<>();
|
||||||
if (!returnDeviceList.isEmpty()) {
|
if (!returnDeviceList.isEmpty()) {
|
||||||
// 获取退耗材id列表
|
// 获取退耗材id列表
|
||||||
devReturnIdList =
|
devReturnIdList
|
||||||
returnDeviceList.stream().map(ReturnMedicineDto::getDispenseId).collect(Collectors.toList());
|
= returnDeviceList.stream().map(ReturnMedicineDto::getDispenseId).collect(Collectors.toList());
|
||||||
// 获取退耗材请求id列表
|
// 获取退耗材请求id列表
|
||||||
List<Long> devRequestIdList =
|
List<Long> devRequestIdList
|
||||||
returnDeviceList.stream().map(ReturnMedicineDto::getRequestId).collect(Collectors.toList());
|
= returnDeviceList.stream().map(ReturnMedicineDto::getRequestId).collect(Collectors.toList());
|
||||||
if (devReturnIdList.isEmpty()) {
|
if (devReturnIdList.isEmpty()) {
|
||||||
throw new ServiceException("请选择要退的耗材");
|
throw new ServiceException("请选择要退的耗材");
|
||||||
}
|
}
|
||||||
@@ -402,34 +401,14 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
|
|
||||||
// 处理退库存
|
// 处理退库存
|
||||||
// 获取库存信息
|
// 获取库存信息
|
||||||
<<<<<<< HEAD
|
List<UnDispenseInventoryDto> unDispenseInventoryList
|
||||||
List<UnDispenseInventoryDto> inventoryList =
|
= returnMedicineMapper.selectInventoryInfoList(devReturnIdList, medReturnIdList,
|
||||||
returnMedicineMapper.selectInventoryInfoList(devDispenseIdList, medDispenseIdList,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
if (inventoryList != null && !inventoryList.isEmpty()) {
|
|
||||||
// 设置库存数量
|
|
||||||
for (UnDispenseInventoryDto inventory : inventoryList) {
|
|
||||||
// 库存表项目设定
|
|
||||||
InventoryItem inventoryItem = new InventoryItem();
|
|
||||||
// id
|
|
||||||
inventoryItem.setId(inventory.getInventoryId());
|
|
||||||
// 库存数量
|
|
||||||
if (inventory.getDispenseUnit().equals(inventory.getInventoryUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)+待退数量
|
|
||||||
inventoryItem.setQuantity(inventory.getInventoryQuantity().add(inventory.getDispenseQuantity()));
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)+退药数量(拆零比×待退数量)
|
|
||||||
inventoryItem.setQuantity(inventory.getInventoryQuantity()
|
|
||||||
.add(inventory.getPartPercent().multiply(inventory.getDispenseQuantity())));
|
|
||||||
=======
|
|
||||||
List<UnDispenseInventoryDto> unDispenseInventoryList =
|
|
||||||
returnMedicineMapper.selectInventoryInfoList(devReturnIdList, medReturnIdList,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
||||||
// 库存待更新列表
|
// 库存待更新列表
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
||||||
// 根据批号,发放项目,发放药房进行分组处理
|
// 根据批号,发放项目,发放药房进行分组处理
|
||||||
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap =
|
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap
|
||||||
unDispenseInventoryList.stream().collect(Collectors.groupingBy(x -> x.getItemId()
|
= unDispenseInventoryList.stream().collect(Collectors.groupingBy(x -> x.getItemId()
|
||||||
+ CommonConstants.Common.DASH + x.getLotNumber() + CommonConstants.Common.DASH + x.getLocationId()));
|
+ CommonConstants.Common.DASH + x.getLotNumber() + CommonConstants.Common.DASH + x.getLocationId()));
|
||||||
if (!unDispenseInventoryMap.isEmpty()) {
|
if (!unDispenseInventoryMap.isEmpty()) {
|
||||||
for (Map.Entry<String, List<UnDispenseInventoryDto>> entry : unDispenseInventoryMap.entrySet()) {
|
for (Map.Entry<String, List<UnDispenseInventoryDto>> entry : unDispenseInventoryMap.entrySet()) {
|
||||||
@@ -443,8 +422,8 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
if (!unDispenseInventoryDto.getDispenseUnit()
|
if (!unDispenseInventoryDto.getDispenseUnit()
|
||||||
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
||||||
// 转换为小单位进行累加
|
// 转换为小单位进行累加
|
||||||
quantity =
|
quantity
|
||||||
unDispenseInventoryDto.getQuantity().multiply(unDispenseInventoryDto.getPartPercent());
|
= unDispenseInventoryDto.getQuantity().multiply(unDispenseInventoryDto.getPartPercent());
|
||||||
}
|
}
|
||||||
minQuantity = minQuantity.add(quantity);
|
minQuantity = minQuantity.add(quantity);
|
||||||
}
|
}
|
||||||
@@ -452,7 +431,6 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
// 设置待更新的库存信息
|
// 设置待更新的库存信息
|
||||||
inventoryItemList.add(new InventoryItem().setId(inventoryList.get(0).getInventoryId())
|
inventoryItemList.add(new InventoryItem().setId(inventoryList.get(0).getInventoryId())
|
||||||
.setQuantity(inventoryList.get(0).getInventoryQuantity().add(minQuantity)));
|
.setQuantity(inventoryList.get(0).getInventoryQuantity().add(minQuantity)));
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 库存更新
|
// 库存更新
|
||||||
@@ -483,18 +461,19 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 创建映射表,添加空集合保护
|
// 创建映射表,添加空集合保护
|
||||||
Map<Long, MedicationDefinition> medicationMap =
|
Map<Long, MedicationDefinition> medicationMap
|
||||||
medicationDefinitions != null ? medicationDefinitions.stream().filter(Objects::nonNull)
|
= medicationDefinitions != null ? medicationDefinitions.stream().filter(Objects::nonNull)
|
||||||
.collect(Collectors.toMap(MedicationDefinition::getId, Function.identity())) : new HashMap<>();
|
.collect(Collectors.toMap(MedicationDefinition::getId, Function.identity())) : new HashMap<>();
|
||||||
|
|
||||||
Map<Long, DeviceDefinition> deviceMap =
|
Map<Long, DeviceDefinition> deviceMap
|
||||||
deviceDefinitions != null ? deviceDefinitions.stream().filter(Objects::nonNull)
|
= deviceDefinitions != null ? deviceDefinitions.stream().filter(Objects::nonNull)
|
||||||
.collect(Collectors.toMap(DeviceDefinition::getId, Function.identity())) : new HashMap<>();
|
.collect(Collectors.toMap(DeviceDefinition::getId, Function.identity())) : new HashMap<>();
|
||||||
|
|
||||||
// 设置库存变更参数,添加完整判空
|
// 设置库存变更参数,添加完整判空
|
||||||
for (SupplyItemDetailDto supplyItemDetailDto : supplyItemDetailList) {
|
for (SupplyItemDetailDto supplyItemDetailDto : supplyItemDetailList) {
|
||||||
if (supplyItemDetailDto == null)
|
if (supplyItemDetailDto == null) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(supplyItemDetailDto.getItemTable())) {
|
if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(supplyItemDetailDto.getItemTable())) {
|
||||||
if (supplyItemDetailDto.getItemId() != null) {
|
if (supplyItemDetailDto.getItemId() != null) {
|
||||||
MedicationDefinition med = medicationMap.get(supplyItemDetailDto.getItemId());
|
MedicationDefinition med = medicationMap.get(supplyItemDetailDto.getItemId());
|
||||||
@@ -587,8 +566,8 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
throw new ServiceException("未查找到就诊诊断信息");
|
throw new ServiceException("未查找到就诊诊断信息");
|
||||||
}
|
}
|
||||||
// 查询付款信息
|
// 查询付款信息
|
||||||
PaymentReconciliation paymentReconciliation =
|
PaymentReconciliation paymentReconciliation
|
||||||
iPaymentReconciliationService.getOne(new LambdaQueryWrapper<PaymentReconciliation>()
|
= iPaymentReconciliationService.getOne(new LambdaQueryWrapper<PaymentReconciliation>()
|
||||||
.eq(PaymentReconciliation::getEncounterId, chargeItem.getEncounterId())
|
.eq(PaymentReconciliation::getEncounterId, chargeItem.getEncounterId())
|
||||||
.like(PaymentReconciliation::getChargeItemIds, chargeItem.getId())
|
.like(PaymentReconciliation::getChargeItemIds, chargeItem.getId())
|
||||||
.eq(PaymentReconciliation::getStatusEnum, PaymentStatus.SUCCESS.getValue())
|
.eq(PaymentReconciliation::getStatusEnum, PaymentStatus.SUCCESS.getValue())
|
||||||
@@ -606,8 +585,8 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
throw new ServiceException("未查询到账户");
|
throw new ServiceException("未查询到账户");
|
||||||
}
|
}
|
||||||
// 查询合同实体
|
// 查询合同实体
|
||||||
Contract contract =
|
Contract contract
|
||||||
iContractService.getOne(new LambdaQueryWrapper<Contract>().eq(Contract::getBusNo, account.getContractNo()));
|
= iContractService.getOne(new LambdaQueryWrapper<Contract>().eq(Contract::getBusNo, account.getContractNo()));
|
||||||
if (contract == null) {
|
if (contract == null) {
|
||||||
throw new ServiceException("未查询到合同信息");
|
throw new ServiceException("未查询到合同信息");
|
||||||
}
|
}
|
||||||
@@ -643,8 +622,8 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
JSONArray medicalTraceNo = new JSONArray();
|
JSONArray medicalTraceNo = new JSONArray();
|
||||||
// 获取追溯码信息
|
// 获取追溯码信息
|
||||||
if (dispenseInventoryDto.getTraceNo() != null) {
|
if (dispenseInventoryDto.getTraceNo() != null) {
|
||||||
List<String> traceNoList =
|
List<String> traceNoList
|
||||||
Arrays.stream(dispenseInventoryDto.getTraceNo().split(CommonConstants.Common.COMMA)).map(String::trim)
|
= Arrays.stream(dispenseInventoryDto.getTraceNo().split(CommonConstants.Common.COMMA)).map(String::trim)
|
||||||
.filter(s -> !s.isEmpty()).toList();
|
.filter(s -> !s.isEmpty()).toList();
|
||||||
for (String traceNo : traceNoList) {
|
for (String traceNo : traceNoList) {
|
||||||
Map<String, String> traceNoMap = new HashMap<>();
|
Map<String, String> traceNoMap = new HashMap<>();
|
||||||
@@ -662,8 +641,8 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
.setSelRetnTime(dispenseInventoryDto.getDispenseTime()).setExpyEnd(dispenseInventoryDto.getExpirationDate())
|
.setSelRetnTime(dispenseInventoryDto.getDispenseTime()).setExpyEnd(dispenseInventoryDto.getExpirationDate())
|
||||||
.setDrugtracinfo(medicalTraceNo).setCertno(dispenseInventoryDto.getIdCard());
|
.setDrugtracinfo(medicalTraceNo).setCertno(dispenseInventoryDto.getIdCard());
|
||||||
// 查看所属医院
|
// 查看所属医院
|
||||||
String fixmedinsCode =
|
String fixmedinsCode
|
||||||
SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE);
|
= SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE);
|
||||||
if (dispenseInventoryDto.getPreparerName() == null && HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
if (dispenseInventoryDto.getPreparerName() == null && HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
||||||
medical3506Param.setSelRetnOpterName(CommonConstants.CCU.DisDeviceDoctorName);
|
medical3506Param.setSelRetnOpterName(CommonConstants.CCU.DisDeviceDoctorName);
|
||||||
} else {
|
} else {
|
||||||
@@ -686,18 +665,14 @@ public class ReturnMedicineAppServiceImpl implements IReturnMedicineAppService {
|
|||||||
} else if (CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(dispenseInventoryDto.getItemTable())) {
|
} else if (CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(dispenseInventoryDto.getItemTable())) {
|
||||||
medical3506Param.setFixmedinsHilistName(CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
medical3506Param.setFixmedinsHilistName(CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
return medical3506Param;
|
|
||||||
=======
|
|
||||||
return Pair.of(medical3506Param, contract);
|
return Pair.of(medical3506Param, contract);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private MedicalInventory3511Param getMedical3511Param(DispenseInventoryDto dispenseInventoryDto) {
|
private MedicalInventory3511Param getMedical3511Param(DispenseInventoryDto dispenseInventoryDto) {
|
||||||
MedicalInventory3511Param medicalInventory3511Param = new MedicalInventory3511Param();
|
MedicalInventory3511Param medicalInventory3511Param = new MedicalInventory3511Param();
|
||||||
|
|
||||||
String fixmedinsCode =
|
String fixmedinsCode
|
||||||
SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE);
|
= SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE);
|
||||||
// TODO
|
// TODO
|
||||||
medicalInventory3511Param.setFixmedinsCode(fixmedinsCode).setMedinsListCodg(dispenseInventoryDto.getYbNo())
|
medicalInventory3511Param.setFixmedinsCode(fixmedinsCode).setMedinsListCodg(dispenseInventoryDto.getYbNo())
|
||||||
.setFixmedinsBchno(dispenseInventoryDto.getLotNumber()).setBegndate(dispenseInventoryDto.getDispenseTime())
|
.setFixmedinsBchno(dispenseInventoryDto.getLotNumber()).setBegndate(dispenseInventoryDto.getDispenseTime())
|
||||||
|
|||||||
@@ -1,47 +1,14 @@
|
|||||||
package com.openhis.web.pharmacymanage.appservice.impl;
|
package com.openhis.web.pharmacymanage.appservice.impl;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
<<<<<<< HEAD
|
|
||||||
import java.math.RoundingMode;
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.util.*;
|
|
||||||
=======
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
>>>>>>> v1.3
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
<<<<<<< HEAD
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
import com.core.common.core.domain.entity.SysDictData;
|
|
||||||
import com.core.common.utils.poi.ExcelUtil;
|
|
||||||
import com.core.system.mapper.SysDictDataMapper;
|
|
||||||
import com.core.system.service.ISysDictTypeService;
|
|
||||||
import com.openhis.web.reportmanage.utils.ExcelFillerUtil;
|
|
||||||
import org.springframework.beans.BeanUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
import com.core.common.exception.ServiceException;
|
|
||||||
import com.core.common.utils.*;
|
|
||||||
import com.openhis.administration.domain.Organization;
|
|
||||||
import com.openhis.administration.domain.TraceNoManage;
|
|
||||||
import com.openhis.administration.service.ILocationService;
|
|
||||||
import com.openhis.administration.service.IOrganizationService;
|
|
||||||
import com.openhis.administration.service.IPractitionerService;
|
|
||||||
=======
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -52,44 +19,20 @@ import com.core.common.utils.DateUtils;
|
|||||||
import com.core.common.utils.MessageUtils;
|
import com.core.common.utils.MessageUtils;
|
||||||
import com.core.common.utils.SecurityUtils;
|
import com.core.common.utils.SecurityUtils;
|
||||||
import com.openhis.administration.domain.TraceNoManage;
|
import com.openhis.administration.domain.TraceNoManage;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.administration.service.ITraceNoManageService;
|
import com.openhis.administration.service.ITraceNoManageService;
|
||||||
import com.openhis.common.constant.CommonConstants;
|
import com.openhis.common.constant.CommonConstants;
|
||||||
import com.openhis.common.constant.PromptMsgConstant;
|
import com.openhis.common.constant.PromptMsgConstant;
|
||||||
import com.openhis.common.enums.*;
|
import com.openhis.common.enums.*;
|
||||||
import com.openhis.common.enums.ybenums.YbInvChgType;
|
import com.openhis.common.enums.ybenums.YbInvChgType;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.common.utils.EnumUtils;
|
|
||||||
import com.openhis.common.utils.HisQueryUtils;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.medication.domain.MedicationDefinition;
|
import com.openhis.medication.domain.MedicationDefinition;
|
||||||
import com.openhis.medication.domain.MedicationDispense;
|
import com.openhis.medication.domain.MedicationDispense;
|
||||||
import com.openhis.medication.service.IMedicationDefinitionService;
|
import com.openhis.medication.service.IMedicationDefinitionService;
|
||||||
import com.openhis.medication.service.IMedicationDispenseService;
|
import com.openhis.medication.service.IMedicationDispenseService;
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.medication.service.impl.MedicationRequestServiceImpl;
|
|
||||||
import com.openhis.web.basedatamanage.appservice.IPractitionerAppService;
|
|
||||||
import com.openhis.web.basedatamanage.dto.PractitionerOrgAndLocationDto;
|
|
||||||
import com.openhis.web.basedatamanage.dto.UserAndPractitionerDto;
|
|
||||||
import com.openhis.web.inhospitalnursestation.appservice.IMedicineSummaryAppService;
|
|
||||||
import com.openhis.web.inhospitalnursestation.dto.AdmissionPageParam;
|
|
||||||
import com.openhis.web.inhospitalnursestation.dto.AdmissionPatientPageDto;
|
|
||||||
import com.openhis.web.inhospitalnursestation.mapper.AdviceProcessAppMapper;
|
|
||||||
import com.openhis.web.inventorymanage.appservice.impl.ReceiptApprovalAppServiceImpl;
|
|
||||||
import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto;
|
|
||||||
import com.openhis.web.pharmacymanage.appservice.ISummaryDispenseMedicineAppService;
|
|
||||||
import com.openhis.web.pharmacymanage.dto.*;
|
|
||||||
import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper;
|
|
||||||
import com.openhis.web.pharmacymanage.mapper.SummaryDispenseMedicineMapper;
|
|
||||||
import com.openhis.web.pharmacymanage.mapper.WesternMedicineDispenseMapper;
|
|
||||||
=======
|
|
||||||
import com.openhis.web.inventorymanage.appservice.impl.ReceiptApprovalAppServiceImpl;
|
import com.openhis.web.inventorymanage.appservice.impl.ReceiptApprovalAppServiceImpl;
|
||||||
import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto;
|
import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto;
|
||||||
import com.openhis.web.pharmacymanage.appservice.ISummaryDispenseMedicineAppService;
|
import com.openhis.web.pharmacymanage.appservice.ISummaryDispenseMedicineAppService;
|
||||||
import com.openhis.web.pharmacymanage.dto.UnDispenseInventoryDto;
|
import com.openhis.web.pharmacymanage.dto.UnDispenseInventoryDto;
|
||||||
import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper;
|
import com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper;
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.openhis.workflow.domain.InventoryItem;
|
import com.openhis.workflow.domain.InventoryItem;
|
||||||
import com.openhis.workflow.domain.SupplyDelivery;
|
import com.openhis.workflow.domain.SupplyDelivery;
|
||||||
import com.openhis.workflow.domain.SupplyRequest;
|
import com.openhis.workflow.domain.SupplyRequest;
|
||||||
@@ -107,37 +50,11 @@ import com.openhis.workflow.service.ISupplyRequestService;
|
|||||||
public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMedicineAppService {
|
public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMedicineAppService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
<<<<<<< HEAD
|
|
||||||
private IPractitionerAppService practitionerAppService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IMedicationDispenseService medicationDispenseService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IDeviceDispenseService deviceDispenseService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IInventoryItemService iInventoryItemService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private SummaryDispenseMedicineMapper inpatientMedicineDispenseMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ReturnMedicineMapper returnMedicineMapper;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ILocationService locationService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IPractitionerService practitionerService;
|
|
||||||
|
|
||||||
=======
|
|
||||||
private IMedicationDispenseService medicationDispenseService;
|
private IMedicationDispenseService medicationDispenseService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ReturnMedicineMapper returnMedicineMapper;
|
private ReturnMedicineMapper returnMedicineMapper;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
@Resource
|
@Resource
|
||||||
private ISupplyRequestService supplyRequestService;
|
private ISupplyRequestService supplyRequestService;
|
||||||
|
|
||||||
@@ -146,14 +63,6 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ITraceNoManageService traceNoManageService;
|
private ITraceNoManageService traceNoManageService;
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private WesternMedicineDispenseAppServiceImpl westernMedicineDispenseAppServiceImpl;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IMedicineSummaryAppService inpatientMedicineCollectionAppService;
|
|
||||||
=======
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private IInventoryItemService inventoryItemService;
|
private IInventoryItemService inventoryItemService;
|
||||||
@@ -166,7 +75,6 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private WesternMedicineDispenseAppServiceImpl westernMedicineDispenseAppService;
|
private WesternMedicineDispenseAppServiceImpl westernMedicineDispenseAppService;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private WesternMedicineDispenseMapper westernMedicineDispenseMapper;
|
private WesternMedicineDispenseMapper westernMedicineDispenseMapper;
|
||||||
@@ -204,426 +112,6 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
/**
|
/**
|
||||||
* 汇总发药
|
* 汇总发药
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @return 初始化信息
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> init() {
|
|
||||||
|
|
||||||
DispenseInitDto initDto = new DispenseInitDto();
|
|
||||||
|
|
||||||
// 获取科室下拉选列表
|
|
||||||
List<Organization> organizationList =
|
|
||||||
organizationService.getList(OrganizationType.DEPARTMENT.getValue(), OrganizationClass.CLINIC.getValue());
|
|
||||||
List<DispenseInitDto.DepartmentOption> organizationOptions = organizationList.stream()
|
|
||||||
.map(organization -> new DispenseInitDto.DepartmentOption(organization.getId(), organization.getName()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
initDto.setDepartmentOptions(organizationOptions);
|
|
||||||
return R.ok(initDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public R<?> getEncounterInfoListPage(AdmissionPageParam admissionPageParam, String startTime, String endTime,
|
|
||||||
Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) {
|
|
||||||
// 构建查询条件
|
|
||||||
QueryWrapper<AdmissionPageParam> queryWrapper = HisQueryUtils.buildQueryWrapper(admissionPageParam, searchKey,
|
|
||||||
new HashSet<>(Arrays.asList(CommonConstants.FieldName.PatientWbStr, CommonConstants.FieldName.PatientPyStr,
|
|
||||||
CommonConstants.FieldName.PatientName, CommonConstants.FieldName.BusNo)),
|
|
||||||
request);
|
|
||||||
// 入院患者分页列表
|
|
||||||
Page<AdmissionPatientPageDto> admissionPatientPage =
|
|
||||||
adviceProcessAppMapper.selectInpatientPage(new Page<>(pageNo, pageSize), queryWrapper,
|
|
||||||
EncounterClass.IMP.getValue(), EncounterZyStatus.TO_BE_REGISTERED.getValue(),
|
|
||||||
EncounterZyStatus.REGISTERED.getValue(), EncounterActivityStatus.ACTIVE.getValue(),
|
|
||||||
LocationForm.WARD.getValue(), LocationForm.HOUSE.getValue(), LocationForm.BED.getValue());
|
|
||||||
admissionPatientPage.getRecords().forEach(e -> {
|
|
||||||
// 性别枚举
|
|
||||||
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
|
|
||||||
// 病情
|
|
||||||
e.setPriorityEnum_enumText(EnumUtils.getInfoByValue(PriorityLevel.class, e.getPriorityEnum()));
|
|
||||||
// 计算年龄
|
|
||||||
if (e.getBirthDate() != null) {
|
|
||||||
e.setAge(AgeCalculatorUtil.getAge(e.getBirthDate()));
|
|
||||||
}
|
|
||||||
// 住院状态
|
|
||||||
e.setEncounterStatus_enumText(EnumUtils.getInfoByValue(EncounterZyStatus.class, e.getEncounterStatus()));
|
|
||||||
});
|
|
||||||
return R.ok(admissionPatientPage);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院汇总药品
|
|
||||||
*
|
|
||||||
* @param searchParam 查询信息
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @return 药品汇总
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> getSummaryMedicationInfo(MedicineSummarySearchParam searchParam, Integer pageNo, Integer pageSize) {
|
|
||||||
ItemDispenseOrderDto itemDispenseOrderDto = new ItemDispenseOrderDto();
|
|
||||||
itemDispenseOrderDto.setEncounterId(searchParam.getEncounterId());
|
|
||||||
// 发药状态初始化
|
|
||||||
Integer dispenseStatus = itemDispenseOrderDto.getStatusEnum();
|
|
||||||
itemDispenseOrderDto.setStatusEnum(null);
|
|
||||||
// 构建查询条件
|
|
||||||
QueryWrapper<ItemDispenseOrderDto> queryWrapper =
|
|
||||||
HisQueryUtils.buildQueryWrapper(itemDispenseOrderDto, null, null, null);
|
|
||||||
// 处方单信息查询
|
|
||||||
Page<ItemDispenseOrderDto> medicineDispenseOrderPage =
|
|
||||||
westernMedicineDispenseMapper.selectMedicineDispenseOrderPage(new Page<>(pageNo, pageSize), queryWrapper,
|
|
||||||
DispenseStatus.IN_PROGRESS.getValue(), DispenseStatus.COMPLETED.getValue(),
|
|
||||||
DispenseStatus.PREPARATION.getValue(), DispenseStatus.PREPARED.getValue(), dispenseStatus);
|
|
||||||
medicineDispenseOrderPage.getRecords().forEach(medicineDispenseOrder -> {
|
|
||||||
// 发药状态
|
|
||||||
medicineDispenseOrder.setStatusEnum_enumText(
|
|
||||||
EnumUtils.getInfoByValue(DispenseStatus.class, medicineDispenseOrder.getStatusEnum()));
|
|
||||||
// 设置所在表名
|
|
||||||
medicineDispenseOrder.setItemTable(CommonConstants.TableName.MED_MEDICATION_DEFINITION);
|
|
||||||
});
|
|
||||||
return R.ok(medicineDispenseOrderPage);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 导出住院发药信息到Excel
|
|
||||||
*
|
|
||||||
* @param searchParam 查询参数
|
|
||||||
* @param searchKey 搜索关键字
|
|
||||||
* @param pageNo 页码
|
|
||||||
* @param pageSize 每页大小
|
|
||||||
* @param request HTTP请求对象
|
|
||||||
* @param response HTTP响应对象
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void makeExcelFile(MedicineSummarySearchParam searchParam, Integer pageNo,
|
|
||||||
Integer pageSize, String searchKey,
|
|
||||||
HttpServletRequest request, HttpServletResponse response) {
|
|
||||||
|
|
||||||
// 获取发药数据
|
|
||||||
R<?> result = this.getSummaryMedicationInfo(searchParam,1, 10000);
|
|
||||||
|
|
||||||
if (result != null && result.getCode() == 200 && result.getData() != null) {
|
|
||||||
// 获取Page对象中的记录列表
|
|
||||||
Page<ItemDispenseOrderDto> pageData = (Page<ItemDispenseOrderDto>) result.getData();
|
|
||||||
List<ItemDispenseOrderDto> dataList = pageData.getRecords();
|
|
||||||
try {
|
|
||||||
//获取药品类型
|
|
||||||
for (ItemDispenseOrderDto itemDispenseOrderDto : dataList) {
|
|
||||||
String itemType = itemDispenseOrderDto.getItemType();
|
|
||||||
if (itemType != null) {
|
|
||||||
List<SysDictData> itemTypeList = sysDictTypeService.selectDictDataByType("med_category_code");
|
|
||||||
if (itemTypeList != null) {
|
|
||||||
for (SysDictData dictData : itemTypeList) {
|
|
||||||
if (dictData != null && dictData.getDictValue() != null
|
|
||||||
&& dictData.getDictValue().equals(itemType)) {
|
|
||||||
itemDispenseOrderDto.setItemType_dictText(dictData.getDictLabel());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//用药频次
|
|
||||||
for (ItemDispenseOrderDto itemDispenseOrderDto : dataList) {
|
|
||||||
String rateCode = itemDispenseOrderDto.getRateCode();
|
|
||||||
if (rateCode != null) {
|
|
||||||
List<SysDictData> rateCodeList = sysDictTypeService.selectDictDataByType("rate_code");
|
|
||||||
if (rateCodeList != null) {
|
|
||||||
for (SysDictData dictData : rateCodeList) {
|
|
||||||
if (dictData != null && dictData.getDictValue() != null
|
|
||||||
&& dictData.getDictValue().equals(rateCode)) {
|
|
||||||
itemDispenseOrderDto.setRateCode_dictText(dictData.getDictLabel());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//用法
|
|
||||||
for (ItemDispenseOrderDto itemDispenseOrderDto : dataList) {
|
|
||||||
String methodCode = itemDispenseOrderDto.getMethodCode();
|
|
||||||
if (methodCode != null) {
|
|
||||||
List<SysDictData> methodCodeList = sysDictTypeService.selectDictDataByType("method_code");
|
|
||||||
if (methodCodeList != null) {
|
|
||||||
for (SysDictData dictData : methodCodeList) {
|
|
||||||
if (dictData != null && dictData.getDictValue() != null
|
|
||||||
&& dictData.getDictValue().equals(methodCode)) {
|
|
||||||
itemDispenseOrderDto.setMethodCode_dictText(dictData.getDictLabel());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 计量单位
|
|
||||||
for (ItemDispenseOrderDto itemDispenseOrderDto : dataList) {
|
|
||||||
//获取计量单位翻译前的值
|
|
||||||
String doseUnitCode = itemDispenseOrderDto.getDoseUnitCode();
|
|
||||||
if (doseUnitCode != null) {
|
|
||||||
//从系统字典服务中查询计量单位的值
|
|
||||||
List<SysDictData> doseUnitCodeList = sysDictTypeService.selectDictDataByType("unit_code");
|
|
||||||
if (doseUnitCodeList != null) {
|
|
||||||
for (SysDictData dictData : doseUnitCodeList) {
|
|
||||||
if (dictData != null && dictData.getDictValue() != null
|
|
||||||
&& dictData.getDictValue().equals(doseUnitCode)) {
|
|
||||||
itemDispenseOrderDto.setDoseUnitCode_dictText(dictData.getDictLabel());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 获取单位翻译值
|
|
||||||
for (ItemDispenseOrderDto itemDispenseOrderDto : dataList) {
|
|
||||||
//获取单位翻译前的值
|
|
||||||
String unitCode = itemDispenseOrderDto.getUnitCode();
|
|
||||||
if (unitCode != null) {
|
|
||||||
//从系统字典服务中查询单位的值
|
|
||||||
List<SysDictData> unitCodeList = sysDictTypeService.selectDictDataByType("unit_code");
|
|
||||||
if (unitCodeList != null) {
|
|
||||||
for (SysDictData dictData : unitCodeList) {
|
|
||||||
if (dictData != null && dictData.getDictValue() != null
|
|
||||||
&& dictData.getDictValue().equals(unitCode)) {
|
|
||||||
itemDispenseOrderDto.setUnitCode_dictText(dictData.getDictLabel());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 金额保留两位小数
|
|
||||||
for (ItemDispenseOrderDto itemDispenseOrderDto : dataList) {
|
|
||||||
//获取金额的值
|
|
||||||
BigDecimal totalPrice = itemDispenseOrderDto.getTotalPrice();
|
|
||||||
//把金额值转换成double
|
|
||||||
double doubleValue = totalPrice.doubleValue();
|
|
||||||
double value = Math.round(doubleValue * 100.0) / 100.0;
|
|
||||||
itemDispenseOrderDto.setTotalPrice(BigDecimal.valueOf(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 单价保留两位小数
|
|
||||||
for (ItemDispenseOrderDto itemDispenseOrderDto : dataList) {
|
|
||||||
//获取单价的值
|
|
||||||
BigDecimal unitPrice = itemDispenseOrderDto.getUnitPrice();
|
|
||||||
//把单价值转换成double
|
|
||||||
double valueLis = unitPrice.doubleValue();
|
|
||||||
double valuePis = Math.round(valueLis * 100.0) / 100.0;
|
|
||||||
itemDispenseOrderDto.setUnitPrice(BigDecimal.valueOf(valuePis));
|
|
||||||
}
|
|
||||||
|
|
||||||
//单次剂量保留两位小数
|
|
||||||
for (ItemDispenseOrderDto itemDispenseOrderDto : dataList) {
|
|
||||||
//获取单次剂量的值
|
|
||||||
BigDecimal dose = itemDispenseOrderDto.getDose();
|
|
||||||
//把单次剂量转换成double
|
|
||||||
double valuePas = dose.doubleValue();
|
|
||||||
double valueRas = Math.round(valuePas * 100.0) / 100.0;
|
|
||||||
itemDispenseOrderDto.setDose(BigDecimal.valueOf(valueRas));
|
|
||||||
}
|
|
||||||
|
|
||||||
ExcelUtil<ItemDispenseOrderDto> util = new ExcelUtil<ItemDispenseOrderDto>(ItemDispenseOrderDto.class);
|
|
||||||
util.exportExcel(response, dataList, "住院发药单");
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
System.out.printf("导出住院发药Excel失败:%s", e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院汇总发药单
|
|
||||||
*
|
|
||||||
* @param searchParam 查询信息
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 药品汇总
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> getSummaryFromInfo(FromSummarySearchParam searchParam, String startTime, String endTime,
|
|
||||||
String searchKey, Integer pageNo, Integer pageSize, HttpServletRequest request) {
|
|
||||||
// 构建查询条件
|
|
||||||
QueryWrapper<MedicineSummarySearchParam> queryWrapper = HisQueryUtils.buildQueryWrapper(searchParam, searchKey,
|
|
||||||
new HashSet<>(List.of(CommonConstants.FieldName.ApplicantName, CommonConstants.FieldName.BusNo)), request);
|
|
||||||
|
|
||||||
// 查询医嘱详细信息
|
|
||||||
Page<MedicineSummaryDto> prescriptionItemInfoPageDto =
|
|
||||||
inpatientMedicineDispenseMapper.selectMedicationSummaryInfo(new Page<>(pageNo, pageSize), queryWrapper);
|
|
||||||
|
|
||||||
List<MedicineSummaryDto> medicineSummaryDtoList = prescriptionItemInfoPageDto.getRecords();
|
|
||||||
|
|
||||||
List<MedicineSummaryDto.Option> unitList;
|
|
||||||
// 个别项目设定
|
|
||||||
for (MedicineSummaryDto prescriptionInfoDto : medicineSummaryDtoList) {
|
|
||||||
// 状态
|
|
||||||
prescriptionInfoDto.setStatusEnum_enumText(
|
|
||||||
EnumUtils.getInfoByValue(DispenseStatus.class, prescriptionInfoDto.getStatusEnum()));
|
|
||||||
// 追溯码单位列表
|
|
||||||
unitList = new ArrayList<>();
|
|
||||||
unitList.add(new MedicineSummaryDto.Option(prescriptionInfoDto.getMaxUnitCode(),
|
|
||||||
prescriptionInfoDto.getMaxUnitCode_dictText()));
|
|
||||||
unitList.add(new MedicineSummaryDto.Option(prescriptionInfoDto.getMinUnitCode(),
|
|
||||||
prescriptionInfoDto.getMinUnitCode_dictText()));
|
|
||||||
|
|
||||||
prescriptionInfoDto.setUnitList(unitList);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取当前用户id
|
|
||||||
Long userId = SecurityUtils.getUserId();
|
|
||||||
UserAndPractitionerDto userAndPractitionerDto = new UserAndPractitionerDto();
|
|
||||||
userAndPractitionerDto.setUserId(userId);
|
|
||||||
IPage<UserAndPractitionerDto> userPractitionerPage =
|
|
||||||
practitionerAppService.getUserPractitionerPage(userAndPractitionerDto, "", 1, 1);
|
|
||||||
// 查询该用户管理的药房
|
|
||||||
List<Long> locationIdList = userPractitionerPage.getRecords().get(0).getManageMedicationLocationDtoList()
|
|
||||||
.stream().map(PractitionerOrgAndLocationDto::getLocationId).toList();
|
|
||||||
|
|
||||||
List<FromSummaryDto> fromSummaryDtoList = new ArrayList<>();
|
|
||||||
for (MedicineSummaryDto medicineSummaryDto : medicineSummaryDtoList) {
|
|
||||||
|
|
||||||
FromSummaryDto fromSummaryDto = new FromSummaryDto();
|
|
||||||
BeanUtils.copyProperties(medicineSummaryDto, fromSummaryDto);
|
|
||||||
|
|
||||||
if (!locationIdList.isEmpty() && locationIdList.contains(fromSummaryDto.getSourceLocationId()))
|
|
||||||
fromSummaryDtoList.add(fromSummaryDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
return R.ok(fromSummaryDtoList);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院药品汇总发药单详细
|
|
||||||
*
|
|
||||||
* @param searchParam 查询条件
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求数据
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> getOrderInfo(FromSearchParam searchParam, String searchKey, Integer pageNo, Integer pageSize,
|
|
||||||
HttpServletRequest request) {
|
|
||||||
|
|
||||||
// 构建查询条件
|
|
||||||
QueryWrapper<FromSearchParam> queryWrapper =
|
|
||||||
HisQueryUtils.buildQueryWrapper(searchParam, searchKey, null, request);
|
|
||||||
|
|
||||||
// 查询医嘱详细信息
|
|
||||||
Page<MedicineSummaryDto> prescriptionItemInfoPageDto =
|
|
||||||
inpatientMedicineDispenseMapper.selectOrderInfo(new Page<>(pageNo, pageSize), queryWrapper);
|
|
||||||
|
|
||||||
List<MedicineSummaryDto.Option> unitList;
|
|
||||||
// 个别项目设定
|
|
||||||
for (MedicineSummaryDto prescriptionInfoDto : prescriptionItemInfoPageDto.getRecords()) {
|
|
||||||
// 状态
|
|
||||||
prescriptionInfoDto.setStatusEnum_enumText(
|
|
||||||
EnumUtils.getInfoByValue(DispenseStatus.class, prescriptionInfoDto.getStatusEnum()));
|
|
||||||
// 追溯码单位列表
|
|
||||||
unitList = new ArrayList<>();
|
|
||||||
unitList.add(new MedicineSummaryDto.Option(prescriptionInfoDto.getMaxUnitCode(),
|
|
||||||
prescriptionInfoDto.getMaxUnitCode_dictText()));
|
|
||||||
unitList.add(new MedicineSummaryDto.Option(prescriptionInfoDto.getMinUnitCode(),
|
|
||||||
prescriptionInfoDto.getMinUnitCode_dictText()));
|
|
||||||
|
|
||||||
prescriptionInfoDto.setUnitList(unitList);
|
|
||||||
}
|
|
||||||
return R.ok(prescriptionItemInfoPageDto);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 处方单核对发药
|
|
||||||
*
|
|
||||||
* @param dispenseMedicineList 发药信息
|
|
||||||
* @return 处理结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> SummaryDispenseMedicine(List<DispenseItemDto> dispenseMedicineList) {
|
|
||||||
// 汇总状态更新标志
|
|
||||||
boolean summaryFlag = false;
|
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
|
||||||
|
|
||||||
// 获取发药单id列表
|
|
||||||
List<Long> medDispenseIdList =
|
|
||||||
dispenseMedicineList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
|
||||||
|
|
||||||
if (medDispenseIdList.stream().allMatch(Objects::isNull)) {
|
|
||||||
List<String> busNoList =
|
|
||||||
dispenseMedicineList.stream().map(DispenseItemDto::getBusNo).collect(Collectors.toList());
|
|
||||||
medDispenseIdList = medicationDispenseService.getMedDispenseBySummaryNo(busNoList).stream()
|
|
||||||
.map(MedicationDispense::getId).toList();
|
|
||||||
summaryFlag = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取库存信息
|
|
||||||
List<UnDispenseInventoryDto> inventoryList =
|
|
||||||
returnMedicineMapper.selectInventoryInfoList(null, medDispenseIdList,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
|
|
||||||
// 按每个药品分组
|
|
||||||
Map<Long, List<UnDispenseInventoryDto>> groupedByItemId =
|
|
||||||
inventoryList.stream().collect(Collectors.groupingBy(UnDispenseInventoryDto::getItemId));
|
|
||||||
// 遍历每个分组校验库存状态
|
|
||||||
for (Map.Entry<Long, List<UnDispenseInventoryDto>> entry : groupedByItemId.entrySet()) {
|
|
||||||
List<UnDispenseInventoryDto> groupItems = entry.getValue();
|
|
||||||
if (groupItems.stream().map(UnDispenseInventoryDto::getInventoryStatusEnum)
|
|
||||||
.allMatch(x -> x.equals(PublicationStatus.RETIRED.getValue()))) {
|
|
||||||
// 库存停供校验
|
|
||||||
return R.fail(groupItems.get(0).getItemName() + "库存已停供");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!inventoryList.isEmpty()) {
|
|
||||||
for (UnDispenseInventoryDto unDispenseInventoryDto : inventoryList) {
|
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())) {
|
|
||||||
InventoryItem inventoryItem = new InventoryItem();
|
|
||||||
// 库存数量判定
|
|
||||||
if (unDispenseInventoryDto.getDispenseUnit()
|
|
||||||
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-请求数量
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity()
|
|
||||||
.subtract(unDispenseInventoryDto.getQuantity());
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-拆零数量(拆零比×请求数量)
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity().subtract(
|
|
||||||
unDispenseInventoryDto.getPartPercent().multiply(unDispenseInventoryDto.getQuantity()));
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
inventoryItemList.add(inventoryItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 药品发药信息查询
|
|
||||||
List<MedicationDispense> dispenseList = medicationDispenseService
|
|
||||||
.list(new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getId, medDispenseIdList));
|
|
||||||
=======
|
|
||||||
* @param summaryNoList 汇总单列表
|
* @param summaryNoList 汇总单列表
|
||||||
* @return 处理结果
|
* @return 处理结果
|
||||||
*/
|
*/
|
||||||
@@ -638,11 +126,11 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
if (medDispenseList == null || medDispenseList.isEmpty()) {
|
if (medDispenseList == null || medDispenseList.isEmpty()) {
|
||||||
return R.fail("未查询到发药单明细,请刷新后重试");
|
return R.fail("未查询到发药单明细,请刷新后重试");
|
||||||
}
|
}
|
||||||
List<Long> medDispenseIdList =
|
List<Long> medDispenseIdList
|
||||||
medDispenseList.stream().map(MedicationDispense::getId).collect(Collectors.toList());
|
= medDispenseList.stream().map(MedicationDispense::getId).collect(Collectors.toList());
|
||||||
// 获取药品待发放库存信息
|
// 获取药品待发放库存信息
|
||||||
List<UnDispenseInventoryDto> unDispenseInventoryList =
|
List<UnDispenseInventoryDto> unDispenseInventoryList
|
||||||
returnMedicineMapper.selectInventoryInfoList(null, medDispenseIdList,
|
= returnMedicineMapper.selectInventoryInfoList(null, medDispenseIdList,
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
||||||
if (unDispenseInventoryList == null || unDispenseInventoryList.isEmpty()) {
|
if (unDispenseInventoryList == null || unDispenseInventoryList.isEmpty()) {
|
||||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||||
@@ -651,8 +139,8 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
// 库存待更新列表
|
// 库存待更新列表
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
||||||
// 根据批号,发放项目,发放药房进行分组处理
|
// 根据批号,发放项目,发放药房进行分组处理
|
||||||
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap =
|
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap
|
||||||
unDispenseInventoryList.stream().collect(Collectors.groupingBy(x -> x.getItemId()
|
= unDispenseInventoryList.stream().collect(Collectors.groupingBy(x -> x.getItemId()
|
||||||
+ CommonConstants.Common.DASH + x.getLotNumber() + CommonConstants.Common.DASH + x.getLocationId()));
|
+ CommonConstants.Common.DASH + x.getLotNumber() + CommonConstants.Common.DASH + x.getLocationId()));
|
||||||
if (!unDispenseInventoryMap.isEmpty()) {
|
if (!unDispenseInventoryMap.isEmpty()) {
|
||||||
for (Map.Entry<String, List<UnDispenseInventoryDto>> entry : unDispenseInventoryMap.entrySet()) {
|
for (Map.Entry<String, List<UnDispenseInventoryDto>> entry : unDispenseInventoryMap.entrySet()) {
|
||||||
@@ -674,8 +162,8 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
if (!unDispenseInventoryDto.getDispenseUnit()
|
if (!unDispenseInventoryDto.getDispenseUnit()
|
||||||
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
||||||
// 转换为小单位进行累加
|
// 转换为小单位进行累加
|
||||||
quantity =
|
quantity
|
||||||
unDispenseInventoryDto.getQuantity().multiply(unDispenseInventoryDto.getPartPercent());
|
= unDispenseInventoryDto.getQuantity().multiply(unDispenseInventoryDto.getPartPercent());
|
||||||
}
|
}
|
||||||
minQuantity = minQuantity.add(quantity);
|
minQuantity = minQuantity.add(quantity);
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())
|
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())
|
||||||
@@ -696,86 +184,10 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Date now = DateUtils.getNowDate();
|
Date now = DateUtils.getNowDate();
|
||||||
>>>>>>> v1.3
|
|
||||||
// 追溯码列表
|
// 追溯码列表
|
||||||
List<TraceNoManage> tracesNoManageList = new ArrayList<>();
|
List<TraceNoManage> tracesNoManageList = new ArrayList<>();
|
||||||
TraceNoManage traceNoManage;
|
TraceNoManage traceNoManage;
|
||||||
List<SupplyItemDetailDto> supplyItemDetailList = new ArrayList<>();
|
List<SupplyItemDetailDto> supplyItemDetailList = new ArrayList<>();
|
||||||
<<<<<<< HEAD
|
|
||||||
if (dispenseList != null) {
|
|
||||||
// if (dispenseList.stream().map(MedicationDispense::getStatusEnum)
|
|
||||||
// .anyMatch(x -> !x.equals(DispenseStatus.PREPARED.getValue()))) {
|
|
||||||
// throw new ServiceException("发药失败,请检查发药单状态");
|
|
||||||
// } else {
|
|
||||||
for (MedicationDispense medicationDispense : dispenseList) {
|
|
||||||
// 药品发放状态
|
|
||||||
medicationDispense.setStatusEnum(DispenseStatus.COMPLETED.getValue());
|
|
||||||
// 状态变更时间
|
|
||||||
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
|
|
||||||
// 发药数量
|
|
||||||
medicationDispense.setDispenseQuantity(medicationDispense.getQuantity());
|
|
||||||
// 发药时间
|
|
||||||
medicationDispense.setDispenseTime(DateUtils.getNowDate());
|
|
||||||
// 发药人
|
|
||||||
medicationDispense.setPractitionerId(SecurityUtils.getLoginUser().getPractitionerId());
|
|
||||||
// 设置库存变更参数
|
|
||||||
supplyItemDetailList.add(new SupplyItemDetailDto().setItemId(medicationDispense.getMedicationId())
|
|
||||||
.setLotNumber(medicationDispense.getLotNumber())
|
|
||||||
.setItemTable(CommonConstants.TableName.MED_MEDICATION_DEFINITION));
|
|
||||||
// 使用逗号分割追溯码并转换为List
|
|
||||||
if (medicationDispense.getTraceNo() != null) {
|
|
||||||
String[] traceNoList = medicationDispense.getTraceNo().split(CommonConstants.Common.COMMA);
|
|
||||||
for (String item : traceNoList) {
|
|
||||||
traceNoManage = new TraceNoManage();
|
|
||||||
// 追溯码处理
|
|
||||||
traceNoManage.setItemTable(CommonConstants.TableName.MED_MEDICATION_DEFINITION)
|
|
||||||
// 项目id
|
|
||||||
.setItemId(medicationDispense.getMedicationId())
|
|
||||||
// 仓库类型
|
|
||||||
.setLocationTypeEnum(LocationForm.PHARMACY.getValue())
|
|
||||||
// 仓库
|
|
||||||
.setLocationId(medicationDispense.getLocationId())
|
|
||||||
// 产品批号
|
|
||||||
.setLotNumber(medicationDispense.getLotNumber())
|
|
||||||
// 追溯码
|
|
||||||
.setTraceNo(item)
|
|
||||||
// 追溯码状态
|
|
||||||
.setStatusEnum(TraceNoStatus.OUT.getValue())
|
|
||||||
// 追溯码单位
|
|
||||||
.setUnitCode(medicationDispense.getUnitCode())
|
|
||||||
// 操作类型
|
|
||||||
.setOperationType(SupplyType.DISPENSE_MEDICATION.getValue());
|
|
||||||
tracesNoManageList.add(traceNoManage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 药品发放更新
|
|
||||||
medicationDispenseService.updateBatchById(dispenseList);
|
|
||||||
// 汇总发放更新
|
|
||||||
if (summaryFlag) {
|
|
||||||
List<Long> requestId = supplyRequestService.getSupplyByBusNo(dispenseMedicineList.get(0).getBusNo())
|
|
||||||
.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
|
||||||
List<SupplyDelivery> supplyDeliveryList = supplyDeliveryService.selectByRequestIdList(requestId);
|
|
||||||
for (SupplyDelivery supplyDelivery : supplyDeliveryList) {
|
|
||||||
// 药品发放状态
|
|
||||||
supplyDelivery.setStatusEnum(DispenseStatus.COMPLETED.getValue());
|
|
||||||
// 发药时间
|
|
||||||
supplyDelivery.setOccurrenceTime(DateUtils.getNowDate());
|
|
||||||
// 发药人
|
|
||||||
supplyDelivery.setPractitionerId(SecurityUtils.getLoginUser().getPractitionerId());
|
|
||||||
}
|
|
||||||
supplyDeliveryService.updateBatchById(supplyDeliveryList);
|
|
||||||
List<SupplyRequest> supplyRequestList = supplyRequestService.selectByIdList(requestId);
|
|
||||||
for (SupplyRequest supplyRequest : supplyRequestList) {
|
|
||||||
supplyRequest.setStatusEnum(DispenseStatus.COMPLETED.getValue());
|
|
||||||
}
|
|
||||||
supplyRequestService.updateBatchById(supplyRequestList);
|
|
||||||
}
|
|
||||||
// }
|
|
||||||
} else {
|
|
||||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
// 更新发药明细状态
|
// 更新发药明细状态
|
||||||
for (MedicationDispense medicationDispense : medDispenseList) {
|
for (MedicationDispense medicationDispense : medDispenseList) {
|
||||||
// 药品发放状态
|
// 药品发放状态
|
||||||
@@ -855,7 +267,6 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
}
|
}
|
||||||
supplyRequestService.updateBatchById(supplyRequestList);
|
supplyRequestService.updateBatchById(supplyRequestList);
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 库存更新
|
// 库存更新
|
||||||
inventoryItemService.updateBatchById(inventoryItemList);
|
inventoryItemService.updateBatchById(inventoryItemList);
|
||||||
// 追溯码管理表数据追加
|
// 追溯码管理表数据追加
|
||||||
@@ -885,11 +296,7 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
}
|
}
|
||||||
uploadFailedNoList = westernMedicineDispenseAppService.ybMedicineIntegrated(medDispenseIdList, null);
|
uploadFailedNoList = westernMedicineDispenseAppService.ybMedicineIntegrated(medDispenseIdList, null);
|
||||||
uploadFailedNoList = receiptApprovalAppService.ybInventoryIntegrated(supplyItemDetailList,
|
uploadFailedNoList = receiptApprovalAppService.ybInventoryIntegrated(supplyItemDetailList,
|
||||||
<<<<<<< HEAD
|
|
||||||
YbInvChgType.OTHER_OUT, DateUtils.getNowDate());
|
|
||||||
=======
|
|
||||||
YbInvChgType.OTHER_OUT, DateUtils.getNowDate(), true);
|
YbInvChgType.OTHER_OUT, DateUtils.getNowDate(), true);
|
||||||
>>>>>>> v1.3
|
|
||||||
if (uploadFailedNoList != null) {
|
if (uploadFailedNoList != null) {
|
||||||
returnMsg = "3505商品销售上传错误,错误项目编码" + uploadFailedNoList;
|
returnMsg = "3505商品销售上传错误,错误项目编码" + uploadFailedNoList;
|
||||||
} else {
|
} else {
|
||||||
@@ -902,27 +309,6 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
/**
|
/**
|
||||||
* 作废
|
* 作废
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param dispenseMedicineList 作废信息
|
|
||||||
* @return 处理结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> dispenseCancel(List<DispenseItemDto> dispenseMedicineList) {
|
|
||||||
// 汇总状态更新标志
|
|
||||||
boolean summaryFlag = false;
|
|
||||||
// 获取发药单id列表
|
|
||||||
List<Long> medDispenseIdList =
|
|
||||||
dispenseMedicineList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
|
||||||
|
|
||||||
if (medDispenseIdList.isEmpty()) {
|
|
||||||
List<String> busNoList =
|
|
||||||
dispenseMedicineList.stream().map(DispenseItemDto::getBusNo).collect(Collectors.toList());
|
|
||||||
medDispenseIdList = medicationDispenseService.getMedDispenseBySummaryNo(busNoList).stream()
|
|
||||||
.map(MedicationDispense::getId).toList();
|
|
||||||
summaryFlag = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
=======
|
|
||||||
* @param summaryNoList 汇总单列表
|
* @param summaryNoList 汇总单列表
|
||||||
* @return 处理结果
|
* @return 处理结果
|
||||||
*/
|
*/
|
||||||
@@ -936,7 +322,6 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
List<Long> medDispenseIdList = medicationDispenseService.getMedDispenseBySummaryNo(summaryNoList).stream()
|
List<Long> medDispenseIdList = medicationDispenseService.getMedDispenseBySummaryNo(summaryNoList).stream()
|
||||||
.map(MedicationDispense::getId).toList();
|
.map(MedicationDispense::getId).toList();
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 药品发药信息查询
|
// 药品发药信息查询
|
||||||
List<MedicationDispense> dispenseList = medicationDispenseService
|
List<MedicationDispense> dispenseList = medicationDispenseService
|
||||||
.list(new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getId, medDispenseIdList));
|
.list(new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getId, medDispenseIdList));
|
||||||
@@ -945,26 +330,16 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
// 药品发放状态
|
// 药品发放状态
|
||||||
medicationDispense.setStatusEnum(DispenseStatus.DECLINED.getValue());
|
medicationDispense.setStatusEnum(DispenseStatus.DECLINED.getValue());
|
||||||
// 未发药原因
|
// 未发药原因
|
||||||
<<<<<<< HEAD
|
|
||||||
medicationDispense.setNotPerformedReasonEnum(dispenseMedicineList.get(0).getNotPerformedReasonEnum());
|
|
||||||
=======
|
|
||||||
// medicationDispense.setNotPerformedReasonEnum(dispenseMedicineList.get(0).getNotPerformedReasonEnum());
|
// medicationDispense.setNotPerformedReasonEnum(dispenseMedicineList.get(0).getNotPerformedReasonEnum());
|
||||||
>>>>>>> v1.3
|
|
||||||
// 状态变更时间
|
// 状态变更时间
|
||||||
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
|
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
|
||||||
}
|
}
|
||||||
// 药品发放更新
|
// 药品发放更新
|
||||||
medicationDispenseService.updateBatchById(dispenseList);
|
medicationDispenseService.updateBatchById(dispenseList);
|
||||||
// 汇总发放更新
|
// 汇总发放更新
|
||||||
<<<<<<< HEAD
|
|
||||||
if (summaryFlag) {
|
|
||||||
List<Long> requestId = supplyRequestService.getSupplyByBusNo(dispenseMedicineList.get(0).getBusNo())
|
|
||||||
.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
|
||||||
=======
|
|
||||||
for (String summaryNo : summaryNoList) {
|
for (String summaryNo : summaryNoList) {
|
||||||
List<Long> requestId = supplyRequestService.getSupplyByBusNo(summaryNo).stream()
|
List<Long> requestId = supplyRequestService.getSupplyByBusNo(summaryNo).stream()
|
||||||
.map(SupplyRequest::getId).collect(Collectors.toList());
|
.map(SupplyRequest::getId).collect(Collectors.toList());
|
||||||
>>>>>>> v1.3
|
|
||||||
List<SupplyDelivery> supplyDeliveryList = supplyDeliveryService.selectByRequestIdList(requestId);
|
List<SupplyDelivery> supplyDeliveryList = supplyDeliveryService.selectByRequestIdList(requestId);
|
||||||
for (SupplyDelivery supplyDelivery : supplyDeliveryList) {
|
for (SupplyDelivery supplyDelivery : supplyDeliveryList) {
|
||||||
// 药品发放状态
|
// 药品发放状态
|
||||||
@@ -977,223 +352,4 @@ public class SummaryDispenseMedicineAppServiceImpl implements ISummaryDispenseMe
|
|||||||
}
|
}
|
||||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退药处理
|
|
||||||
*
|
|
||||||
* @param dispenseMedicineList 退药清单
|
|
||||||
* @return 处理结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> medicineReturn(List<DispenseItemDto> dispenseMedicineList) {
|
|
||||||
if (dispenseMedicineList == null || dispenseMedicineList.isEmpty()) {
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 汇总状态更新标志
|
|
||||||
boolean summaryFlag = false;
|
|
||||||
// 获取发药单id列表
|
|
||||||
List<Long> medDispenseIdList =
|
|
||||||
dispenseMedicineList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
|
||||||
|
|
||||||
if (medDispenseIdList.stream().allMatch(Objects::isNull)) {
|
|
||||||
List<String> busNoList =
|
|
||||||
dispenseMedicineList.stream().map(DispenseItemDto::getBusNo).collect(Collectors.toList());
|
|
||||||
medDispenseIdList = medicationDispenseService.getMedDispenseBySummaryNo(busNoList).stream()
|
|
||||||
.map(MedicationDispense::getId).toList();
|
|
||||||
summaryFlag = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 退药请求列表
|
|
||||||
List<ReturnMedicineDto> returnMedicineList = new ArrayList<>();
|
|
||||||
// 追溯码列表
|
|
||||||
List<TraceNoManage> traceNoManageList = new ArrayList<>();
|
|
||||||
TraceNoManage traceNoManage;
|
|
||||||
|
|
||||||
medDispenseIdList.forEach(dispenseId -> {
|
|
||||||
MedicationDispense medicationDispense = medicationDispenseService.getById(dispenseId);
|
|
||||||
returnMedicineList
|
|
||||||
.add(new ReturnMedicineDto().setDispenseId(dispenseId).setRequestId(medicationDispense.getMedReqId()));
|
|
||||||
});
|
|
||||||
|
|
||||||
// 获取药品退药请求id列表
|
|
||||||
List<Long> medRequestIdList =
|
|
||||||
returnMedicineList.stream().map(ReturnMedicineDto::getRequestId).collect(Collectors.toList());
|
|
||||||
|
|
||||||
if (!medRequestIdList.isEmpty()) {
|
|
||||||
// 药品已退药信息查询
|
|
||||||
List<MedicationDispense> refundList = medicationDispenseService.list(
|
|
||||||
new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getMedReqId, medRequestIdList));
|
|
||||||
if (refundList != null) {
|
|
||||||
if (refundList.stream().map(MedicationDispense::getStatusEnum)
|
|
||||||
.anyMatch(x -> x.equals(DispenseStatus.REFUNDED.getValue()))) {
|
|
||||||
throw new ServiceException("药品已退药,请勿重复退药");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 退药单列表
|
|
||||||
List<MedicationDispense> medicationRefundList = new ArrayList<>();
|
|
||||||
List<SupplyItemDetailDto> supplyItemDetailList = new ArrayList<>();
|
|
||||||
if (!medDispenseIdList.isEmpty()) {
|
|
||||||
// 药品已发放信息查询
|
|
||||||
List<MedicationDispense> medicationDispenseList = medicationDispenseService
|
|
||||||
.list(new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getId, medDispenseIdList));
|
|
||||||
// 根据发药单对应生成退药单
|
|
||||||
for (MedicationDispense medicationDispense : medicationDispenseList) {
|
|
||||||
// 退药的药品请求id
|
|
||||||
for (ReturnMedicineDto returnMedicineDto : returnMedicineList) {
|
|
||||||
if (returnMedicineDto.getDispenseId().equals(medicationDispense.getId())) {
|
|
||||||
medicationDispense.setMedReqId(returnMedicineDto.getRequestId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 药品发放编码
|
|
||||||
medicationDispense.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_DIS_NO.getPrefix(), 4));
|
|
||||||
// 退药状态
|
|
||||||
medicationDispense.setStatusEnum(DispenseStatus.REFUNDED.getValue());
|
|
||||||
// 状态变更时间
|
|
||||||
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
|
|
||||||
// 退药时间
|
|
||||||
medicationDispense.setDispenseTime(DateUtils.getNowDate());
|
|
||||||
// 退药人
|
|
||||||
medicationDispense.setPractitionerId(SecurityUtils.getLoginUser().getPractitionerId());
|
|
||||||
medicationDispense.setId(null);
|
|
||||||
medicationRefundList.add(medicationDispense);
|
|
||||||
// 设置库存变更参数
|
|
||||||
supplyItemDetailList.add(new SupplyItemDetailDto()
|
|
||||||
.setItemTable(CommonConstants.TableName.MED_MEDICATION_DEFINITION)
|
|
||||||
.setItemId(medicationDispense.getMedicationId()).setLotNumber(medicationDispense.getLotNumber()));
|
|
||||||
if (medicationDispense.getTraceNo() != null) {
|
|
||||||
// 使用逗号分割追溯码并转换为List
|
|
||||||
String[] traceNoList = medicationDispense.getTraceNo().split(CommonConstants.Common.COMMA);
|
|
||||||
for (String item : traceNoList) {
|
|
||||||
traceNoManage = new TraceNoManage();
|
|
||||||
// 追溯码处理
|
|
||||||
traceNoManage.setItemTable(CommonConstants.TableName.MED_MEDICATION_DEFINITION)
|
|
||||||
// 项目id
|
|
||||||
.setItemId(medicationDispense.getMedicationId())
|
|
||||||
// 仓库类型
|
|
||||||
.setLocationTypeEnum(null)
|
|
||||||
// 仓库
|
|
||||||
.setLocationId(medicationDispense.getLocationId())
|
|
||||||
// 仓位
|
|
||||||
.setLocationStoreId(null)
|
|
||||||
// 产品批号
|
|
||||||
.setLotNumber(medicationDispense.getLotNumber())
|
|
||||||
// 追溯码
|
|
||||||
.setTraceNo(item)
|
|
||||||
// 追溯码状态
|
|
||||||
.setStatusEnum(TraceNoStatus.IN.getValue())
|
|
||||||
// 追溯码单位
|
|
||||||
.setUnitCode(medicationDispense.getUnitCode())
|
|
||||||
// 操作类型
|
|
||||||
.setOperationType(SupplyType.RETURN_MEDICATION.getValue());
|
|
||||||
traceNoManageList.add(traceNoManage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
medicationDispenseService.saveBatch(medicationRefundList);
|
|
||||||
// 药品退药请求状态变更(待退药→已完成)
|
|
||||||
medicationRequestService.updateCompletedStatusBatch(medRequestIdList, null, null);
|
|
||||||
// 汇总退药更新
|
|
||||||
if (summaryFlag) {
|
|
||||||
List<Long> requestId = supplyRequestService.getSupplyByBusNo(dispenseMedicineList.get(0).getBusNo())
|
|
||||||
.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
|
||||||
List<SupplyDelivery> supplyDeliveryList = supplyDeliveryService.selectByRequestIdList(requestId);
|
|
||||||
for (SupplyDelivery supplyDelivery : supplyDeliveryList) {
|
|
||||||
// 药品发放状态
|
|
||||||
supplyDelivery.setStatusEnum(DispenseStatus.REFUNDED.getValue());
|
|
||||||
// 发药时间
|
|
||||||
supplyDelivery.setOccurrenceTime(DateUtils.getNowDate());
|
|
||||||
// 发药人
|
|
||||||
supplyDelivery.setPractitionerId(SecurityUtils.getLoginUser().getPractitionerId());
|
|
||||||
}
|
|
||||||
supplyDeliveryService.updateBatchById(supplyDeliveryList);
|
|
||||||
List<SupplyRequest> supplyRequestList = supplyRequestService.selectByIdList(requestId);
|
|
||||||
for (SupplyRequest supplyRequest : supplyRequestList) {
|
|
||||||
supplyRequest.setStatusEnum(DispenseStatus.REFUNDED.getValue());
|
|
||||||
}
|
|
||||||
supplyRequestService.updateBatchById(supplyRequestList);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
|
||||||
// 获取库存信息
|
|
||||||
List<UnDispenseInventoryDto> inventoryList =
|
|
||||||
returnMedicineMapper.selectInventoryInfoList(null, medDispenseIdList,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
|
|
||||||
if (inventoryList != null && !inventoryList.isEmpty()) {
|
|
||||||
// 设置库存数量
|
|
||||||
for (UnDispenseInventoryDto inventory : inventoryList) {
|
|
||||||
// 库存表项目设定
|
|
||||||
InventoryItem inventoryItem = new InventoryItem();
|
|
||||||
// id
|
|
||||||
inventoryItem.setId(inventory.getInventoryId());
|
|
||||||
// 库存数量
|
|
||||||
if (inventory.getDispenseUnit().equals(inventory.getInventoryUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)+待退数量
|
|
||||||
inventoryItem.setQuantity(inventory.getInventoryQuantity().add(inventory.getDispenseQuantity()));
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)+退药数量(拆零比×待退数量)
|
|
||||||
inventoryItem.setQuantity(inventory.getInventoryQuantity()
|
|
||||||
.add(inventory.getPartPercent().multiply(inventory.getDispenseQuantity())));
|
|
||||||
}
|
|
||||||
inventoryItemList.add(inventoryItem);
|
|
||||||
}
|
|
||||||
// 库存更新
|
|
||||||
iInventoryItemService.updateBatchById(inventoryItemList);
|
|
||||||
// 追溯码管理表数据追加
|
|
||||||
traceNoManageService.saveBatch(traceNoManageList);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 返回信息
|
|
||||||
String returnMsg = null;
|
|
||||||
List<String> uploadFailedNoList;
|
|
||||||
// 调用医保商品销售退货接口
|
|
||||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
|
||||||
if (Whether.YES.getCode().equals(ybSwitch)) {
|
|
||||||
List<MedicationDefinition> medicationDefinitions = new ArrayList<>();
|
|
||||||
if (!medicationRefundList.isEmpty()) {
|
|
||||||
// 设置进销存参数
|
|
||||||
medicationDefinitions = medicationDefinitionService.listByIds(supplyItemDetailList.stream()
|
|
||||||
.filter(x -> x.getItemTable().equals(CommonConstants.TableName.MED_MEDICATION_DEFINITION))
|
|
||||||
.map(SupplyItemDetailDto::getItemId).collect(Collectors.toList()));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 创建映射表,添加空集合保护
|
|
||||||
Map<Long, MedicationDefinition> medicationMap =
|
|
||||||
medicationDefinitions != null ? medicationDefinitions.stream().filter(Objects::nonNull)
|
|
||||||
.collect(Collectors.toMap(MedicationDefinition::getId, Function.identity())) : new HashMap<>();
|
|
||||||
|
|
||||||
// 设置库存变更参数,添加完整判空
|
|
||||||
for (SupplyItemDetailDto dto : supplyItemDetailList) {
|
|
||||||
if (dto == null)
|
|
||||||
continue;
|
|
||||||
if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(dto.getItemTable())) {
|
|
||||||
if (dto.getItemId() != null) {
|
|
||||||
MedicationDefinition med = medicationMap.get(dto.getItemId());
|
|
||||||
if (med != null) {
|
|
||||||
dto.setItemBusNo(med.getBusNo()).setPartPercent(med.getPartPercent())
|
|
||||||
.setRxFlag(med.getRxFlag()).setYbNo(med.getYbNo());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
uploadFailedNoList = returnMedicineAppService.ybReturnIntegrated(medDispenseIdList, null);
|
|
||||||
uploadFailedNoList = receiptApprovalAppService.ybInventoryIntegrated(supplyItemDetailList,
|
|
||||||
YbInvChgType.OTHER_OUT, DateUtils.getNowDate());
|
|
||||||
if (uploadFailedNoList != null) {
|
|
||||||
returnMsg = "3506商品销售退货上传错误,错误项目编码" + uploadFailedNoList;
|
|
||||||
} else {
|
|
||||||
returnMsg = "3506商品销售退货上传成功";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 返回退药成功信息
|
|
||||||
return R.ok(returnMsg, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, new Object[] {"退药"}));
|
|
||||||
}
|
|
||||||
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -129,22 +129,22 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
DispenseInitDto initDto = new DispenseInitDto();
|
DispenseInitDto initDto = new DispenseInitDto();
|
||||||
|
|
||||||
// 获取科室下拉选列表
|
// 获取科室下拉选列表
|
||||||
List<Organization> organizationList =
|
List<Organization> organizationList
|
||||||
organizationService.getList(OrganizationType.DEPARTMENT.getValue(), OrganizationClass.CLINIC.getValue());
|
= organizationService.getList(OrganizationType.DEPARTMENT.getValue(), OrganizationClass.CLINIC.getValue());
|
||||||
List<DispenseInitDto.DepartmentOption> organizationOptions = organizationList.stream()
|
List<DispenseInitDto.DepartmentOption> organizationOptions = organizationList.stream()
|
||||||
.map(organization -> new DispenseInitDto.DepartmentOption(organization.getId(), organization.getName()))
|
.map(organization -> new DispenseInitDto.DepartmentOption(organization.getId(), organization.getName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 获取配药人下拉选列表
|
// 获取配药人下拉选列表
|
||||||
List<Practitioner> preparerDoctorList =
|
List<Practitioner> preparerDoctorList
|
||||||
westernMedicineDispenseMapper.getPreparerDoctorList(PractitionerRoles.PHARMACIST.getCode());
|
= westernMedicineDispenseMapper.getPreparerDoctorList(PractitionerRoles.PHARMACIST.getCode());
|
||||||
List<DispenseInitDto.PreparerDoctorOption> preparerDoctorOptions = preparerDoctorList.stream()
|
List<DispenseInitDto.PreparerDoctorOption> preparerDoctorOptions = preparerDoctorList.stream()
|
||||||
.map(practitioner -> new DispenseInitDto.PreparerDoctorOption(practitioner.getId(), practitioner.getName()))
|
.map(practitioner -> new DispenseInitDto.PreparerDoctorOption(practitioner.getId(), practitioner.getName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 未发药原因下拉选列表
|
// 未发药原因下拉选列表
|
||||||
List<DispenseInitDto.NotPerformedReasonOption> notPerformedReasonOptions =
|
List<DispenseInitDto.NotPerformedReasonOption> notPerformedReasonOptions
|
||||||
Stream.of(NotPerformedReasonEnum.values())
|
= Stream.of(NotPerformedReasonEnum.values())
|
||||||
.map(notPerformedReason -> new DispenseInitDto.NotPerformedReasonOption(notPerformedReason.getValue(),
|
.map(notPerformedReason -> new DispenseInitDto.NotPerformedReasonOption(notPerformedReason.getValue(),
|
||||||
notPerformedReason.getInfo()))
|
notPerformedReason.getInfo()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
@@ -185,14 +185,14 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
Integer statusEnum = encounterInfoSearchParam.getStatusEnum();
|
Integer statusEnum = encounterInfoSearchParam.getStatusEnum();
|
||||||
encounterInfoSearchParam.setStatusEnum(null);
|
encounterInfoSearchParam.setStatusEnum(null);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<EncounterInfoSearchParam> queryWrapper =
|
QueryWrapper<EncounterInfoSearchParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(encounterInfoSearchParam, searchKey,
|
= HisQueryUtils.buildQueryWrapper(encounterInfoSearchParam, searchKey,
|
||||||
new HashSet<>(Arrays.asList(CommonConstants.FieldName.PatientName, CommonConstants.FieldName.IdCard,
|
new HashSet<>(Arrays.asList(CommonConstants.FieldName.PatientName, CommonConstants.FieldName.IdCard,
|
||||||
CommonConstants.FieldName.PatientPyStr, CommonConstants.FieldName.PatientWbStr)),
|
CommonConstants.FieldName.PatientPyStr, CommonConstants.FieldName.PatientWbStr)),
|
||||||
request);
|
request);
|
||||||
// 查询就诊病人列表
|
// 查询就诊病人列表
|
||||||
Page<EncounterInfoDto> encounterInfoPage =
|
Page<EncounterInfoDto> encounterInfoPage
|
||||||
westernMedicineDispenseMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper,
|
= westernMedicineDispenseMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
statusEnum, DispenseStatus.IN_PROGRESS.getValue(), DispenseStatus.COMPLETED.getValue(),
|
statusEnum, DispenseStatus.IN_PROGRESS.getValue(), DispenseStatus.COMPLETED.getValue(),
|
||||||
DispenseStatus.PREPARATION.getValue(), DispenseStatus.PREPARED.getValue());
|
DispenseStatus.PREPARATION.getValue(), DispenseStatus.PREPARED.getValue());
|
||||||
encounterInfoPage.getRecords().forEach(encounterInfo -> {
|
encounterInfoPage.getRecords().forEach(encounterInfo -> {
|
||||||
@@ -225,11 +225,11 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
Integer dispenseStatus = itemDispenseOrderDto.getStatusEnum();
|
Integer dispenseStatus = itemDispenseOrderDto.getStatusEnum();
|
||||||
itemDispenseOrderDto.setStatusEnum(null);
|
itemDispenseOrderDto.setStatusEnum(null);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<ItemDispenseOrderDto> queryWrapper =
|
QueryWrapper<ItemDispenseOrderDto> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(itemDispenseOrderDto, null, null, null);
|
= HisQueryUtils.buildQueryWrapper(itemDispenseOrderDto, null, null, null);
|
||||||
// 处方单信息查询
|
// 处方单信息查询
|
||||||
Page<ItemDispenseOrderDto> medicineDispenseOrderPage =
|
Page<ItemDispenseOrderDto> medicineDispenseOrderPage
|
||||||
westernMedicineDispenseMapper.selectMedicineDispenseOrderPage(new Page<>(pageNo, pageSize), queryWrapper,
|
= westernMedicineDispenseMapper.selectMedicineDispenseOrderPage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
DispenseStatus.IN_PROGRESS.getValue(), DispenseStatus.COMPLETED.getValue(),
|
DispenseStatus.IN_PROGRESS.getValue(), DispenseStatus.COMPLETED.getValue(),
|
||||||
DispenseStatus.PREPARATION.getValue(), DispenseStatus.PREPARED.getValue(), dispenseStatus,
|
DispenseStatus.PREPARATION.getValue(), DispenseStatus.PREPARED.getValue(), dispenseStatus,
|
||||||
PublicationStatus.ACTIVE.getValue());
|
PublicationStatus.ACTIVE.getValue());
|
||||||
@@ -252,8 +252,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
@Override
|
@Override
|
||||||
public R<?> medicinePrepare(List<DispenseItemDto> dispenseMedicineList) {
|
public R<?> medicinePrepare(List<DispenseItemDto> dispenseMedicineList) {
|
||||||
// 追溯码集合
|
// 追溯码集合
|
||||||
List<String> traceNoList =
|
List<String> traceNoList
|
||||||
dispenseMedicineList.stream().map(DispenseItemDto::getTraceNo).collect(Collectors.toList());
|
= dispenseMedicineList.stream().map(DispenseItemDto::getTraceNo).collect(Collectors.toList());
|
||||||
// 非输液药品的已出库追溯码
|
// 非输液药品的已出库追溯码
|
||||||
List<String> outTraceNoList = westernMedicineDispenseMapper.getOutTraceNo(TraceNoStatus.OUT.getValue(),
|
List<String> outTraceNoList = westernMedicineDispenseMapper.getOutTraceNo(TraceNoStatus.OUT.getValue(),
|
||||||
Whether.YES.getValue(), SplitPropertyCode.OUTPATIENT_MIN_UNIT_CEIL.getValue(),
|
Whether.YES.getValue(), SplitPropertyCode.OUTPATIENT_MIN_UNIT_CEIL.getValue(),
|
||||||
@@ -271,54 +271,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
return R.fail("请选择调配药师");
|
return R.fail("请选择调配药师");
|
||||||
}
|
}
|
||||||
// 获取发药单id列表
|
// 获取发药单id列表
|
||||||
List<Long> medDispenseIdList =
|
List<Long> medDispenseIdList
|
||||||
dispenseMedicineList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
= dispenseMedicineList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
||||||
<<<<<<< HEAD
|
|
||||||
// 获取库存信息
|
|
||||||
List<UnDispenseInventoryDto> inventoryList =
|
|
||||||
returnMedicineMapper.selectInventoryInfoList(null, medDispenseIdList,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
// 按每个药品分组
|
|
||||||
Map<Long, List<UnDispenseInventoryDto>> groupedByItemId =
|
|
||||||
inventoryList.stream().collect(Collectors.groupingBy(UnDispenseInventoryDto::getItemId));
|
|
||||||
// 遍历每个分组校验库存状态
|
|
||||||
for (Map.Entry<Long, List<UnDispenseInventoryDto>> entry : groupedByItemId.entrySet()) {
|
|
||||||
List<UnDispenseInventoryDto> groupItems = entry.getValue();
|
|
||||||
if (groupItems.stream().map(UnDispenseInventoryDto::getInventoryStatusEnum)
|
|
||||||
.allMatch(x -> x.equals(PublicationStatus.RETIRED.getValue()))) {
|
|
||||||
// 库存停供校验
|
|
||||||
return R.fail(groupItems.get(0).getItemName() + "库存已停供");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!inventoryList.isEmpty()) {
|
|
||||||
for (UnDispenseInventoryDto unDispenseInventoryDto : inventoryList) {
|
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())) {
|
|
||||||
// 库存数量判定
|
|
||||||
if (unDispenseInventoryDto.getDispenseUnit()
|
|
||||||
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-请求数量
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity()
|
|
||||||
.subtract(unDispenseInventoryDto.getQuantity());
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-拆零数量(拆零比×请求数量)
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity().subtract(
|
|
||||||
unDispenseInventoryDto.getPartPercent().multiply(unDispenseInventoryDto.getQuantity()));
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 药品发药信息查询
|
// 药品发药信息查询
|
||||||
List<MedicationDispense> dispenseList = medicationDispenseService
|
List<MedicationDispense> dispenseList = medicationDispenseService
|
||||||
.list(new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getId, medDispenseIdList));
|
.list(new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getId, medDispenseIdList));
|
||||||
@@ -352,8 +306,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
List<MedicationRequest> medicationRequests = medicationRequestService.listByIds(
|
List<MedicationRequest> medicationRequests = medicationRequestService.listByIds(
|
||||||
dispenseList.stream().map(MedicationDispense::getMedReqId).distinct().collect(Collectors.toList()));
|
dispenseList.stream().map(MedicationDispense::getMedReqId).distinct().collect(Collectors.toList()));
|
||||||
// 根据请求id做map
|
// 根据请求id做map
|
||||||
Map<Long, List<MedicationDispense>> dispenseMap =
|
Map<Long, List<MedicationDispense>> dispenseMap
|
||||||
dispenseList.stream().collect(Collectors.groupingBy(MedicationDispense::getMedReqId));
|
= dispenseList.stream().collect(Collectors.groupingBy(MedicationDispense::getMedReqId));
|
||||||
for (MedicationRequest medicationRequest : medicationRequests) {
|
for (MedicationRequest medicationRequest : medicationRequests) {
|
||||||
List<MedicationDispense> medicationDispenseList = dispenseMap.get(medicationRequest.getId());
|
List<MedicationDispense> medicationDispenseList = dispenseMap.get(medicationRequest.getId());
|
||||||
BigDecimal dispenseQuantity = BigDecimal.ZERO;
|
BigDecimal dispenseQuantity = BigDecimal.ZERO;
|
||||||
@@ -387,57 +341,11 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
@Override
|
@Override
|
||||||
public R<?> medicineDispense(List<DispenseItemDto> dispenseMedicineList) {
|
public R<?> medicineDispense(List<DispenseItemDto> dispenseMedicineList) {
|
||||||
// 获取发药单id列表
|
// 获取发药单id列表
|
||||||
List<Long> medDispenseIdList =
|
List<Long> medDispenseIdList
|
||||||
dispenseMedicineList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
= dispenseMedicineList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
// 获取药品发放库存信息
|
|
||||||
List<UnDispenseInventoryDto> inventoryList =
|
|
||||||
returnMedicineMapper.selectInventoryInfoList(null, medDispenseIdList,
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
|
||||||
// 按每个药品分组
|
|
||||||
Map<Long, List<UnDispenseInventoryDto>> groupedByItemId =
|
|
||||||
inventoryList.stream().collect(Collectors.groupingBy(UnDispenseInventoryDto::getItemId));
|
|
||||||
// 遍历每个分组校验库存状态
|
|
||||||
for (Map.Entry<Long, List<UnDispenseInventoryDto>> entry : groupedByItemId.entrySet()) {
|
|
||||||
List<UnDispenseInventoryDto> groupItems = entry.getValue();
|
|
||||||
if (groupItems.stream().map(UnDispenseInventoryDto::getInventoryStatusEnum)
|
|
||||||
.allMatch(x -> x.equals(PublicationStatus.RETIRED.getValue()))) {
|
|
||||||
// 库存停供校验
|
|
||||||
return R.fail(groupItems.get(0).getItemName() + "库存已停供");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!inventoryList.isEmpty()) {
|
|
||||||
for (UnDispenseInventoryDto unDispenseInventoryDto : inventoryList) {
|
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())) {
|
|
||||||
InventoryItem inventoryItem = new InventoryItem();
|
|
||||||
// 库存数量判定
|
|
||||||
if (unDispenseInventoryDto.getDispenseUnit()
|
|
||||||
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-请求数量
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity()
|
|
||||||
.subtract(unDispenseInventoryDto.getQuantity());
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 当前库存数量(拆零单位)=当前库存数量(拆零单位)-拆零数量(拆零比×请求数量)
|
|
||||||
BigDecimal quantity = unDispenseInventoryDto.getInventoryQuantity().subtract(
|
|
||||||
unDispenseInventoryDto.getPartPercent().multiply(unDispenseInventoryDto.getQuantity()));
|
|
||||||
// 库存数量判定
|
|
||||||
if (quantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 库存数量不足
|
|
||||||
return R.fail(unDispenseInventoryDto.getItemName() + "当前库存数量不足");
|
|
||||||
} else {
|
|
||||||
inventoryItem.setId(unDispenseInventoryDto.getInventoryId()).setQuantity(quantity);
|
|
||||||
=======
|
|
||||||
// 获取药品待发放库存信息
|
// 获取药品待发放库存信息
|
||||||
List<UnDispenseInventoryDto> unDispenseInventoryList =
|
List<UnDispenseInventoryDto> unDispenseInventoryList
|
||||||
returnMedicineMapper.selectInventoryInfoList(null, medDispenseIdList,
|
= returnMedicineMapper.selectInventoryInfoList(null, medDispenseIdList,
|
||||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION);
|
||||||
if (unDispenseInventoryList == null || unDispenseInventoryList.isEmpty()) {
|
if (unDispenseInventoryList == null || unDispenseInventoryList.isEmpty()) {
|
||||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||||
@@ -451,8 +359,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
// 库存待更新列表
|
// 库存待更新列表
|
||||||
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
List<InventoryItem> inventoryItemList = new ArrayList<>();
|
||||||
// 根据批号,发放项目,发放药房进行分组处理
|
// 根据批号,发放项目,发放药房进行分组处理
|
||||||
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap =
|
Map<String, List<UnDispenseInventoryDto>> unDispenseInventoryMap
|
||||||
unDispenseInventoryList.stream().collect(Collectors.groupingBy(x -> x.getItemId()
|
= unDispenseInventoryList.stream().collect(Collectors.groupingBy(x -> x.getItemId()
|
||||||
+ CommonConstants.Common.DASH + x.getLotNumber() + CommonConstants.Common.DASH + x.getLocationId()));
|
+ CommonConstants.Common.DASH + x.getLotNumber() + CommonConstants.Common.DASH + x.getLocationId()));
|
||||||
if (!unDispenseInventoryMap.isEmpty()) {
|
if (!unDispenseInventoryMap.isEmpty()) {
|
||||||
for (Map.Entry<String, List<UnDispenseInventoryDto>> entry : unDispenseInventoryMap.entrySet()) {
|
for (Map.Entry<String, List<UnDispenseInventoryDto>> entry : unDispenseInventoryMap.entrySet()) {
|
||||||
@@ -474,15 +382,14 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
if (!unDispenseInventoryDto.getDispenseUnit()
|
if (!unDispenseInventoryDto.getDispenseUnit()
|
||||||
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
.equals(unDispenseInventoryDto.getInventoryUnitCode())) {
|
||||||
// 转换为小单位进行累加
|
// 转换为小单位进行累加
|
||||||
quantity =
|
quantity
|
||||||
unDispenseInventoryDto.getQuantity().multiply(unDispenseInventoryDto.getPartPercent());
|
= unDispenseInventoryDto.getQuantity().multiply(unDispenseInventoryDto.getPartPercent());
|
||||||
}
|
}
|
||||||
minQuantity = minQuantity.add(quantity);
|
minQuantity = minQuantity.add(quantity);
|
||||||
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())
|
if (PublicationStatus.ACTIVE.getValue().equals(unDispenseInventoryDto.getInventoryStatusEnum())
|
||||||
&& unDispenseInventoryDto.getInventoryQuantity().compareTo(BigDecimal.ZERO) > 0) {
|
&& unDispenseInventoryDto.getInventoryQuantity().compareTo(BigDecimal.ZERO) > 0) {
|
||||||
inventoryQuantity = unDispenseInventoryDto.getInventoryQuantity();
|
inventoryQuantity = unDispenseInventoryDto.getInventoryQuantity();
|
||||||
inventoryId = unDispenseInventoryDto.getInventoryId();
|
inventoryId = unDispenseInventoryDto.getInventoryId();
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (minQuantity.compareTo(inventoryQuantity) > 0) {
|
if (minQuantity.compareTo(inventoryQuantity) > 0) {
|
||||||
@@ -610,8 +517,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
@Override
|
@Override
|
||||||
public R<?> medicineCancel(List<DispenseItemDto> dispenseMedicineList) {
|
public R<?> medicineCancel(List<DispenseItemDto> dispenseMedicineList) {
|
||||||
// 获取发药单id列表
|
// 获取发药单id列表
|
||||||
List<Long> medDispenseIdList =
|
List<Long> medDispenseIdList
|
||||||
dispenseMedicineList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
= dispenseMedicineList.stream().map(DispenseItemDto::getDispenseId).collect(Collectors.toList());
|
||||||
// 药品发药信息查询
|
// 药品发药信息查询
|
||||||
List<MedicationDispense> dispenseList = medicationDispenseService
|
List<MedicationDispense> dispenseList = medicationDispenseService
|
||||||
.list(new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getId, medDispenseIdList));
|
.list(new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getId, medDispenseIdList));
|
||||||
@@ -696,8 +603,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
throw new ServiceException("未查找到就诊诊断信息");
|
throw new ServiceException("未查找到就诊诊断信息");
|
||||||
}
|
}
|
||||||
// 查询付款信息
|
// 查询付款信息
|
||||||
List<PaymentReconciliation> paymentReconciliationList =
|
List<PaymentReconciliation> paymentReconciliationList
|
||||||
paymentReconciliationService.list(new LambdaQueryWrapper<PaymentReconciliation>()
|
= paymentReconciliationService.list(new LambdaQueryWrapper<PaymentReconciliation>()
|
||||||
.eq(PaymentReconciliation::getEncounterId, dispenseInventoryDto.getEncounterId())
|
.eq(PaymentReconciliation::getEncounterId, dispenseInventoryDto.getEncounterId())
|
||||||
.eq(PaymentReconciliation::getTenantId, SecurityUtils.getLoginUser().getTenantId())
|
.eq(PaymentReconciliation::getTenantId, SecurityUtils.getLoginUser().getTenantId())
|
||||||
.like(PaymentReconciliation::getChargeItemIds, chargeItem.getId())
|
.like(PaymentReconciliation::getChargeItemIds, chargeItem.getId())
|
||||||
@@ -717,8 +624,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
throw new ServiceException("未查找到账户信息");
|
throw new ServiceException("未查找到账户信息");
|
||||||
}
|
}
|
||||||
// 查询合同实体
|
// 查询合同实体
|
||||||
Contract contract =
|
Contract contract
|
||||||
contractService.getOne(new LambdaQueryWrapper<Contract>().eq(Contract::getBusNo, account.getContractNo()));
|
= contractService.getOne(new LambdaQueryWrapper<Contract>().eq(Contract::getBusNo, account.getContractNo()));
|
||||||
if (contract == null) {
|
if (contract == null) {
|
||||||
throw new ServiceException("未查找到合同信息");
|
throw new ServiceException("未查找到合同信息");
|
||||||
}
|
}
|
||||||
@@ -755,8 +662,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
JSONArray medicalTraceNo = new JSONArray();
|
JSONArray medicalTraceNo = new JSONArray();
|
||||||
// 获取追溯码信息
|
// 获取追溯码信息
|
||||||
if (dispenseInventoryDto.getTraceNo() != null) {
|
if (dispenseInventoryDto.getTraceNo() != null) {
|
||||||
List<String> traceNoList =
|
List<String> traceNoList
|
||||||
Arrays.stream(dispenseInventoryDto.getTraceNo().split(CommonConstants.Common.COMMA)).map(String::trim)
|
= Arrays.stream(dispenseInventoryDto.getTraceNo().split(CommonConstants.Common.COMMA)).map(String::trim)
|
||||||
.filter(s -> !s.isEmpty()).toList();
|
.filter(s -> !s.isEmpty()).toList();
|
||||||
for (String traceNo : traceNoList) {
|
for (String traceNo : traceNoList) {
|
||||||
Map<String, String> traceNoMap = new HashMap<>();
|
Map<String, String> traceNoMap = new HashMap<>();
|
||||||
@@ -782,8 +689,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
|
|||||||
medical3505Param.setTrdnFlag(Whether.NO.getCode());
|
medical3505Param.setTrdnFlag(Whether.NO.getCode());
|
||||||
}
|
}
|
||||||
// 查看所属医院
|
// 查看所属医院
|
||||||
String fixmedinsCode =
|
String fixmedinsCode
|
||||||
SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE);
|
= SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.FIXMEDINS_CODE);
|
||||||
if (dispenseInventoryDto.getPreparerName() == null && HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
if (dispenseInventoryDto.getPreparerName() == null && HospitalCodeEnum.CCU.getCode().equals(fixmedinsCode)) {
|
||||||
medical3505Param.setSelRetnOpterName(CommonConstants.CCU.DisDeviceDoctorName);
|
medical3505Param.setSelRetnOpterName(CommonConstants.CCU.DisDeviceDoctorName);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -118,10 +118,6 @@ public class MedicationDetailsController {
|
|||||||
// return medicationDetailsAppService.getMedRunningAccountPage(medDetailsSearchParam, pageNo, pageSize, searchKey,
|
// return medicationDetailsAppService.getMedRunningAccountPage(medDetailsSearchParam, pageNo, pageSize, searchKey,
|
||||||
// request);
|
// request);
|
||||||
// }
|
// }
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发药明细导出
|
* 发药明细导出
|
||||||
*
|
*
|
||||||
@@ -132,7 +128,6 @@ public class MedicationDetailsController {
|
|||||||
* @param response 请求数据
|
* @param response 请求数据
|
||||||
* @param request 请求数据
|
* @param request 请求数据
|
||||||
*/
|
*/
|
||||||
>>>>>>> v1.3
|
|
||||||
@GetMapping(value = "/excel-out")
|
@GetMapping(value = "/excel-out")
|
||||||
public void exportExcel(MedDetailsSearchParam medDetailsSearchParam,
|
public void exportExcel(MedDetailsSearchParam medDetailsSearchParam,
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
|
|||||||
@@ -3,21 +3,11 @@ package com.openhis.web.pharmacymanage.controller;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
<<<<<<< HEAD
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
|
|
||||||
import com.openhis.web.inhospitalnursestation.dto.AdmissionPageParam;
|
|
||||||
import com.openhis.web.pharmacymanage.dto.*;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
=======
|
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.openhis.web.pharmacymanage.appservice.ISummaryDispenseMedicineAppService;
|
import com.openhis.web.pharmacymanage.appservice.ISummaryDispenseMedicineAppService;
|
||||||
@@ -25,7 +15,6 @@ import com.openhis.web.pharmacymanage.appservice.ISummaryDispenseMedicineAppServ
|
|||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 住院汇总发药
|
* 住院汇总发药
|
||||||
*
|
*
|
||||||
@@ -42,98 +31,6 @@ public class SummaryDispenseMedicineController {
|
|||||||
public ISummaryDispenseMedicineAppService medicineSummaryDispenseService;
|
public ISummaryDispenseMedicineAppService medicineSummaryDispenseService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 获取页面初始化信息
|
|
||||||
*
|
|
||||||
* @return 初始化信息
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/init")
|
|
||||||
public R<?> medicineDispenseInit() {
|
|
||||||
return medicineSummaryDispenseService.init();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 分页查询住院病人列表
|
|
||||||
*
|
|
||||||
* @param admissionPageParam 查询条件
|
|
||||||
* @param startTime 开始时间
|
|
||||||
* @param endTime 结束时间
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 病人列表
|
|
||||||
*/
|
|
||||||
@GetMapping("/encounter-list")
|
|
||||||
public R<?> getEncounterInfoList(AdmissionPageParam admissionPageParam, String startTime, String endTime,
|
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
|
||||||
return medicineSummaryDispenseService.getEncounterInfoListPage(admissionPageParam, startTime, endTime, pageNo,
|
|
||||||
pageSize, searchKey, request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院汇总药品
|
|
||||||
*
|
|
||||||
* @param searchParam 查询信息
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @return 药品汇总
|
|
||||||
*/
|
|
||||||
@GetMapping("/medication_summary-list")
|
|
||||||
public R<?> getSummaryMedicationInfo(MedicineSummarySearchParam searchParam,
|
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
|
||||||
return medicineSummaryDispenseService.getSummaryMedicationInfo(searchParam, pageNo, pageSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院汇总发药单
|
|
||||||
*
|
|
||||||
* @param searchParam 查询条件
|
|
||||||
* @param startTime 开始时间
|
|
||||||
* @param endTime 结束时间
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 汇总单汇总
|
|
||||||
*/
|
|
||||||
@GetMapping("/from_summary-list")
|
|
||||||
public R<?> getSummaryFromInfo(FromSummarySearchParam searchParam, String startTime, String endTime,
|
|
||||||
String searchKey, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
|
||||||
return medicineSummaryDispenseService.getSummaryFromInfo(searchParam, startTime, endTime, searchKey, pageNo,
|
|
||||||
pageSize, request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院药品汇总发药单详细
|
|
||||||
*
|
|
||||||
* @param searchParam 查询条件
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求数据
|
|
||||||
*/
|
|
||||||
@GetMapping("/from-list")
|
|
||||||
public R<?> getFromInfo(FromSearchParam searchParam, String searchKey,
|
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
|
||||||
return medicineSummaryDispenseService.getOrderInfo(searchParam, searchKey, pageNo, pageSize, request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 药品发药
|
|
||||||
*
|
|
||||||
* @param dispenseMedicineList 发药信息
|
|
||||||
* @return 处理结果
|
|
||||||
*/
|
|
||||||
@PutMapping("/summary-dispense-medicine")
|
|
||||||
public R<?> SummaryDispenseMedicine(@RequestBody List<DispenseItemDto> dispenseMedicineList) {
|
|
||||||
return medicineSummaryDispenseService.SummaryDispenseMedicine(dispenseMedicineList);
|
|
||||||
=======
|
|
||||||
* 汇总发药
|
* 汇总发药
|
||||||
*
|
*
|
||||||
* @param summaryNoList 汇总单列表
|
* @param summaryNoList 汇总单列表
|
||||||
@@ -142,66 +39,11 @@ public class SummaryDispenseMedicineController {
|
|||||||
@PutMapping("/summary-dispense-medicine")
|
@PutMapping("/summary-dispense-medicine")
|
||||||
public R<?> SummaryDispenseMedicine(@RequestBody List<String> summaryNoList) {
|
public R<?> SummaryDispenseMedicine(@RequestBody List<String> summaryNoList) {
|
||||||
return medicineSummaryDispenseService.SummaryDispenseMedicine(summaryNoList);
|
return medicineSummaryDispenseService.SummaryDispenseMedicine(summaryNoList);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 作废
|
* 作废
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param dispenseMedicineList 作废信息
|
|
||||||
* @return 处理结果
|
|
||||||
*/
|
|
||||||
@PutMapping("/dispense-cancel")
|
|
||||||
public R<?> dispenseCancel(@RequestBody List<DispenseItemDto> dispenseMedicineList) {
|
|
||||||
return medicineSummaryDispenseService.dispenseCancel(dispenseMedicineList);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退药处理
|
|
||||||
*
|
|
||||||
* @param dispenseMedicineList 退药清单
|
|
||||||
* @return 处理结果
|
|
||||||
*/
|
|
||||||
@PutMapping("/medicine-return")
|
|
||||||
public R<?> medicineReturn(@RequestBody List<DispenseItemDto> dispenseMedicineList) {
|
|
||||||
return medicineSummaryDispenseService.medicineReturn(dispenseMedicineList);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 住院发药
|
|
||||||
*
|
|
||||||
* @param searchParam 查询条件
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求数据
|
|
||||||
*/
|
|
||||||
|
|
||||||
@GetMapping(value = "/excel-out")
|
|
||||||
public void excelOut(MedicineSummarySearchParam searchParam,
|
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10000") Integer pageSize,
|
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey,
|
|
||||||
HttpServletRequest request,HttpServletResponse response) {
|
|
||||||
medicineSummaryDispenseService.makeExcelFile(searchParam, pageNo, pageSize, searchKey, request, response);
|
|
||||||
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 住院药品汇总
|
|
||||||
*
|
|
||||||
* @param searchParam 查询条件
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param request 请求数据
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
=======
|
|
||||||
* @param summaryNoList 汇总单列表
|
* @param summaryNoList 汇总单列表
|
||||||
* @return 处理结果
|
* @return 处理结果
|
||||||
*/
|
*/
|
||||||
@@ -245,5 +87,4 @@ public class SummaryDispenseMedicineController {
|
|||||||
// HttpServletResponse response) {
|
// HttpServletResponse response) {
|
||||||
// medicineSummaryDispenseService.takeExcelField(searchParam, searchKey, pageNo, pageSize, request, response);
|
// medicineSummaryDispenseService.takeExcelField(searchParam, searchKey, pageNo, pageSize, request, response);
|
||||||
// }
|
// }
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,29 +21,40 @@ import java.math.BigDecimal;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class DispenseItemDto {
|
public class DispenseItemDto {
|
||||||
|
|
||||||
/** 配药人 */
|
/**
|
||||||
|
* 配药人
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long preparerId;
|
private Long preparerId;
|
||||||
|
|
||||||
/** 发放ID */
|
/**
|
||||||
|
* 发放ID
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long dispenseId;
|
private Long dispenseId;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
/**
|
||||||
=======
|
* 发药数量
|
||||||
/** 发药数量 */
|
*/
|
||||||
private BigDecimal quantity;
|
private BigDecimal quantity;
|
||||||
|
|
||||||
/** 批号 */
|
/**
|
||||||
|
* 批号
|
||||||
|
*/
|
||||||
private String lotNumber;
|
private String lotNumber;
|
||||||
|
|
||||||
>>>>>>> v1.3
|
/**
|
||||||
/** 单据号 */
|
* 单据号
|
||||||
|
*/
|
||||||
private String busNo;
|
private String busNo;
|
||||||
|
|
||||||
/** 追溯码 */
|
/**
|
||||||
|
* 追溯码
|
||||||
|
*/
|
||||||
private String traceNo;
|
private String traceNo;
|
||||||
|
|
||||||
/** 未发原因 */
|
/**
|
||||||
|
* 未发原因
|
||||||
|
*/
|
||||||
private Integer notPerformedReasonEnum;
|
private Integer notPerformedReasonEnum;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,31 +59,19 @@ public class ItemDispenseOrderDto {
|
|||||||
/**
|
/**
|
||||||
* 发放药房
|
* 发放药房
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "发放药房", sort = 3)
|
@Excel(name = "发放药房", sort = 3)
|
||||||
=======
|
|
||||||
@Excel(name = "发放药房", sort = 3)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String locationName;
|
private String locationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批次号
|
* 批次号
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "批次号", sort = 4)
|
@Excel(name = "批次号", sort = 4)
|
||||||
=======
|
|
||||||
@Excel(name = "批次号", sort = 4)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String lotNumber;
|
private String lotNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 科室
|
* 科室
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "科室", sort = 5)
|
@Excel(name = "科室", sort = 5)
|
||||||
=======
|
|
||||||
@Excel(name = "科室", sort = 5)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String departmentName;
|
private String departmentName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -95,21 +83,13 @@ public class ItemDispenseOrderDto {
|
|||||||
/**
|
/**
|
||||||
* 开单医生
|
* 开单医生
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "开单医生", sort = 6)
|
@Excel(name = "开单医生", sort = 6)
|
||||||
=======
|
|
||||||
@Excel(name = "开单医生", sort = 6)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String doctorName;
|
private String doctorName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发药医生
|
* 发药医生
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "发药医生", sort = 7)
|
@Excel(name = "发药医生", sort = 7)
|
||||||
=======
|
|
||||||
@Excel(name = "发药医生", sort = 7)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String dispenseDoctorName;
|
private String dispenseDoctorName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -117,54 +97,32 @@ public class ItemDispenseOrderDto {
|
|||||||
*/
|
*/
|
||||||
@Dict(dictCode = "med_category_code")
|
@Dict(dictCode = "med_category_code")
|
||||||
private String itemType;
|
private String itemType;
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "项目类型", sort = 8)
|
@Excel(name = "项目类型", sort = 8)
|
||||||
=======
|
|
||||||
@Excel(name = "项目类型", sort = 8)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String itemType_dictText;
|
private String itemType_dictText;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发药状态
|
* 发药状态
|
||||||
*/
|
*/
|
||||||
private Integer statusEnum;
|
private Integer statusEnum;
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "发药状态", sort = 9)
|
@Excel(name = "发药状态", sort = 9)
|
||||||
=======
|
|
||||||
@Excel(name = "发药状态", sort = 9)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String statusEnum_enumText;
|
private String statusEnum_enumText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 诊断名称
|
* 诊断名称
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "诊断名称", sort = 10)
|
@Excel(name = "诊断名称", sort = 10)
|
||||||
=======
|
|
||||||
@Excel(name = "诊断名称", sort = 10)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String conditionName;
|
private String conditionName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处方号
|
* 处方号
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "处方号", sort = 11)
|
@Excel(name = "处方号", sort = 11)
|
||||||
=======
|
|
||||||
@Excel(name = "处方号", sort = 11)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String prescriptionNo;
|
private String prescriptionNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目名称
|
* 项目名称
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "项目名称", sort = 1, width = 30)
|
@Excel(name = "项目名称", sort = 1, width = 30)
|
||||||
=======
|
|
||||||
@Excel(name = "项目名称", sort = 1, width = 30)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String itemName;
|
private String itemName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -175,21 +133,13 @@ public class ItemDispenseOrderDto {
|
|||||||
/**
|
/**
|
||||||
* 规格
|
* 规格
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "规格", sort = 2, width = 30)
|
@Excel(name = "规格", sort = 2, width = 30)
|
||||||
=======
|
|
||||||
@Excel(name = "规格", sort = 2, width = 30)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String totalVolume;
|
private String totalVolume;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单次剂量
|
* 单次剂量
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "单次剂量", sort = 12)
|
@Excel(name = "单次剂量", sort = 12)
|
||||||
=======
|
|
||||||
@Excel(name = "单次剂量", sort = 12)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private BigDecimal dose;
|
private BigDecimal dose;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -202,11 +152,7 @@ public class ItemDispenseOrderDto {
|
|||||||
*/
|
*/
|
||||||
@Dict(dictCode = "rate_code")
|
@Dict(dictCode = "rate_code")
|
||||||
private String rateCode;
|
private String rateCode;
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "用药频次", sort = 13)
|
@Excel(name = "用药频次", sort = 13)
|
||||||
=======
|
|
||||||
@Excel(name = "用药频次", sort = 13)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String rateCode_dictText;
|
private String rateCode_dictText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -214,60 +160,35 @@ public class ItemDispenseOrderDto {
|
|||||||
*/
|
*/
|
||||||
@Dict(dictCode = "method_code")
|
@Dict(dictCode = "method_code")
|
||||||
private String methodCode;
|
private String methodCode;
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "用法", sort = 14)
|
@Excel(name = "用法", sort = 14)
|
||||||
=======
|
|
||||||
@Excel(name = "用法", sort = 14)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String methodCode_dictText;
|
private String methodCode_dictText;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 剂量单位
|
* 剂量单位
|
||||||
*/
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String doseUnitCode;
|
private String doseUnitCode;
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "剂量单位", sort = 15)
|
@Excel(name = "剂量单位", sort = 15)
|
||||||
=======
|
|
||||||
@Excel(name = "剂量单位", sort = 15)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String doseUnitCode_dictText;
|
private String doseUnitCode_dictText;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单位
|
* 单位
|
||||||
*/
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "单位", sort = 16)
|
@Excel(name = "单位", sort = 16)
|
||||||
=======
|
|
||||||
@Excel(name = "单位", sort = 16)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String unitCode_dictText;
|
private String unitCode_dictText;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单次发药数
|
* 单次发药数
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "单次发药数", sort = 17)
|
@Excel(name = "单次发药数", sort = 17)
|
||||||
=======
|
|
||||||
@Excel(name = "单次发药数", sort = 17)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private Integer dispensePerQuantity;
|
private Integer dispensePerQuantity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 每次发药供应天数
|
* 每次发药供应天数
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "每次发药供应天数", sort = 18)
|
@Excel(name = "每次发药供应天数", sort = 18)
|
||||||
=======
|
|
||||||
@Excel(name = "每次发药供应天数", sort = 18)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private Integer dispensePerDuration;
|
private Integer dispensePerDuration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -278,32 +199,19 @@ public class ItemDispenseOrderDto {
|
|||||||
/**
|
/**
|
||||||
* 数量
|
* 数量
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "数量",sort = 19)
|
|
||||||
private Integer quantity;
|
|
||||||
=======
|
|
||||||
@Excel(name = "数量", sort = 19)
|
@Excel(name = "数量", sort = 19)
|
||||||
private BigDecimal quantity;
|
private BigDecimal quantity;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单价
|
* 单价
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "单价", sort = 20)
|
@Excel(name = "单价", sort = 20)
|
||||||
=======
|
|
||||||
@Excel(name = "单价", sort = 20)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private BigDecimal unitPrice;
|
private BigDecimal unitPrice;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 金额
|
* 金额
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "金额", sort = 21)
|
@Excel(name = "金额", sort = 21)
|
||||||
=======
|
|
||||||
@Excel(name = "金额", sort = 21)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private BigDecimal totalPrice;
|
private BigDecimal totalPrice;
|
||||||
/**
|
/**
|
||||||
* 组合号
|
* 组合号
|
||||||
@@ -315,66 +223,46 @@ public class ItemDispenseOrderDto {
|
|||||||
* 就诊NO
|
* 就诊NO
|
||||||
*/
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "就诊NO", sort = 24)
|
@Excel(name = "就诊NO", sort = 24)
|
||||||
=======
|
|
||||||
@Excel(name = "就诊NO", sort = 24)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String encounterBusNo;
|
private String encounterBusNo;
|
||||||
|
|
||||||
/** 开具日期 */
|
/**
|
||||||
|
* 开具日期
|
||||||
|
*/
|
||||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "开具日期", sort = 25, dateFormat = "yyyy-MM-dd HH:mm:ss", width = 25)
|
@Excel(name = "开具日期", sort = 25, dateFormat = "yyyy-MM-dd HH:mm:ss", width = 25)
|
||||||
private Date reqAuthoredTime;
|
private Date reqAuthoredTime;
|
||||||
|
|
||||||
/** 皮试标志 */
|
/**
|
||||||
@Excel(name = "皮试标志",sort = 26)
|
* 接收皮试标志
|
||||||
private Integer skinTestFlag;
|
*/
|
||||||
|
|
||||||
/** 中药标识 */
|
|
||||||
@Excel(name = "中药标识",sort = 27)
|
|
||||||
private Integer tcmFlag;
|
|
||||||
|
|
||||||
/** 所在表 */
|
|
||||||
@Excel(name = "所在表",sort = 28,width = 30)
|
|
||||||
=======
|
|
||||||
@Excel(name = "开具日期", sort = 25, dateFormat = "yyyy-MM-dd HH:mm:ss", width = 25)
|
|
||||||
private Date reqAuthoredTime;
|
|
||||||
|
|
||||||
/** 接收皮试标志 */
|
|
||||||
@Excel(name = "皮试标志", sort = 26)
|
@Excel(name = "皮试标志", sort = 26)
|
||||||
private String skinTestFlagDesc;
|
private String skinTestFlagDesc;
|
||||||
private Integer skinTestFlag;
|
private Integer skinTestFlag;
|
||||||
|
|
||||||
/** 接收中药标识 */
|
/**
|
||||||
|
* 接收中药标识
|
||||||
|
*/
|
||||||
@Excel(name = "中药标识", sort = 27)
|
@Excel(name = "中药标识", sort = 27)
|
||||||
private String tcmFlagDesc;
|
private String tcmFlagDesc;
|
||||||
private Integer tcmFlag;
|
private Integer tcmFlag;
|
||||||
|
|
||||||
/** 所在表 */
|
/**
|
||||||
|
* 所在表
|
||||||
|
*/
|
||||||
@Excel(name = "所在表", sort = 28, width = 30)
|
@Excel(name = "所在表", sort = 28, width = 30)
|
||||||
>>>>>>> v1.3
|
|
||||||
private String itemTable;
|
private String itemTable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生产厂家
|
* 生产厂家
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "生产厂家", sort = 22, width = 35)
|
@Excel(name = "生产厂家", sort = 22, width = 35)
|
||||||
=======
|
|
||||||
@Excel(name = "生产厂家", sort = 22, width = 35)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String manufacturerText;
|
private String manufacturerText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 追溯码
|
* 追溯码
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
@Excel(name = "追溯码", sort = 23)
|
@Excel(name = "追溯码", sort = 23)
|
||||||
=======
|
|
||||||
@Excel(name = "追溯码", sort = 23)
|
|
||||||
>>>>>>> v1.3
|
|
||||||
private String traceNo;
|
private String traceNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -384,12 +272,14 @@ public class ItemDispenseOrderDto {
|
|||||||
private String medTypeCode;
|
private String medTypeCode;
|
||||||
private String medTypeCode_dictText;
|
private String medTypeCode_dictText;
|
||||||
|
|
||||||
|
/**
|
||||||
/** 输液标志 */
|
* 输液标志
|
||||||
|
*/
|
||||||
private Integer injectFlag;
|
private Integer injectFlag;
|
||||||
|
|
||||||
|
/**
|
||||||
/** 拆分属性 */
|
* 拆分属性
|
||||||
|
*/
|
||||||
private Integer partAttributeEnum;
|
private Integer partAttributeEnum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,11 +1,5 @@
|
|||||||
package com.openhis.web.pharmacymanage.dto;
|
package com.openhis.web.pharmacymanage.dto;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import com.core.common.annotation.Excel;
|
import com.core.common.annotation.Excel;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
@@ -22,13 +16,10 @@ import lombok.experimental.Accessors;
|
|||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class MedDetailedAccountPageDto {
|
public class MedDetailedAccountPageDto {
|
||||||
<<<<<<< HEAD
|
|
||||||
/** 门诊号 */
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 门诊号
|
* 门诊号
|
||||||
*/
|
*/
|
||||||
>>>>>>> v1.3
|
|
||||||
private String outpatientNo;
|
private String outpatientNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,37 +32,6 @@ public class MedDetailedAccountPageDto {
|
|||||||
*/
|
*/
|
||||||
private String patientName;
|
private String patientName;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
/** 项目类别 */
|
|
||||||
private String pinYin;
|
|
||||||
|
|
||||||
/** 接收发药数量 */
|
|
||||||
@Excel(name = "发药数量")
|
|
||||||
private String dispenseQuantitystr;
|
|
||||||
|
|
||||||
/** 接收发药金额 */
|
|
||||||
@Excel(name = "发药金额")
|
|
||||||
private String dispensePricestr;
|
|
||||||
|
|
||||||
/** 接收退药数量 */
|
|
||||||
@Excel(name = "退药数量")
|
|
||||||
private String refundQuantitystr;
|
|
||||||
|
|
||||||
/** 接收退药金额 */
|
|
||||||
@Excel(name = "退药金额")
|
|
||||||
private String refundPricestr;
|
|
||||||
|
|
||||||
/** 发药人 */
|
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
|
||||||
private String practitionerId;
|
|
||||||
|
|
||||||
/** 发药人名称 */
|
|
||||||
@Excel(name = "发药人")
|
|
||||||
private String practitionerName;
|
|
||||||
|
|
||||||
/** 药品项目 */
|
|
||||||
@Excel(name = "药品项目")
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 接收发药数量
|
* 接收发药数量
|
||||||
*/
|
*/
|
||||||
@@ -117,7 +77,6 @@ public class MedDetailedAccountPageDto {
|
|||||||
* 药品项目
|
* 药品项目
|
||||||
*/
|
*/
|
||||||
@Excel(name = "药品项目", sort = 3)
|
@Excel(name = "药品项目", sort = 3)
|
||||||
>>>>>>> v1.3
|
|
||||||
private String medicationName;
|
private String medicationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -125,22 +84,6 @@ public class MedDetailedAccountPageDto {
|
|||||||
*/
|
*/
|
||||||
private String pyStr;
|
private String pyStr;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
/** 项目编码 */
|
|
||||||
@Excel(name = "药品编码")
|
|
||||||
private String busNo;
|
|
||||||
|
|
||||||
/** 发药编码 */
|
|
||||||
@Excel(name = "发药单号")
|
|
||||||
private String dispenseNo;
|
|
||||||
|
|
||||||
/** 医保编码 */
|
|
||||||
@Excel(name = "医保编码")
|
|
||||||
private String ybNo;
|
|
||||||
|
|
||||||
/** 规格 */
|
|
||||||
@Excel(name = "规格")
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 项目编码
|
* 项目编码
|
||||||
*/
|
*/
|
||||||
@@ -163,7 +106,6 @@ public class MedDetailedAccountPageDto {
|
|||||||
* 规格
|
* 规格
|
||||||
*/
|
*/
|
||||||
@Excel(name = "规格", sort = 7, width = 30)
|
@Excel(name = "规格", sort = 7, width = 30)
|
||||||
>>>>>>> v1.3
|
|
||||||
private String totalVolume;
|
private String totalVolume;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -189,18 +131,6 @@ public class MedDetailedAccountPageDto {
|
|||||||
* 成本金额
|
* 成本金额
|
||||||
*/
|
*/
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
/** 批号 */
|
|
||||||
@Excel(name = "生产批号")
|
|
||||||
private String lotNumber;
|
|
||||||
|
|
||||||
/** 厂商 */
|
|
||||||
@Excel(name = "厂家/产地")
|
|
||||||
private String manufacturerText;
|
|
||||||
|
|
||||||
/** 供应商 */
|
|
||||||
@Excel(name = "供应商")
|
|
||||||
=======
|
|
||||||
private BigDecimal costPrice;
|
private BigDecimal costPrice;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -219,7 +149,6 @@ public class MedDetailedAccountPageDto {
|
|||||||
* 供应商
|
* 供应商
|
||||||
*/
|
*/
|
||||||
@Excel(name = "供应商", sort = 15, width = 35)
|
@Excel(name = "供应商", sort = 15, width = 35)
|
||||||
>>>>>>> v1.3
|
|
||||||
private String supplierName;
|
private String supplierName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -236,14 +165,6 @@ public class MedDetailedAccountPageDto {
|
|||||||
private String refundUnitCode;
|
private String refundUnitCode;
|
||||||
private String refundUnitCode_dictText;
|
private String refundUnitCode_dictText;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
/** 发药时间 */
|
|
||||||
@Excel(name = "发药时间", dateFormat="yyyy-MM-dd HH:mm:ss")
|
|
||||||
private Date dispenseTime;
|
|
||||||
|
|
||||||
/** 项目所在表 */
|
|
||||||
// @Excel(name = "项目类别")
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 发药时间
|
* 发药时间
|
||||||
*/
|
*/
|
||||||
@@ -254,6 +175,5 @@ public class MedDetailedAccountPageDto {
|
|||||||
* 项目所在表
|
* 项目所在表
|
||||||
*/
|
*/
|
||||||
@Excel(name = "项目类别", sort = 4)
|
@Excel(name = "项目类别", sort = 4)
|
||||||
>>>>>>> v1.3
|
|
||||||
private String itemTable;
|
private String itemTable;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,36 +15,53 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class MedDetailsSearchParam {
|
public class MedDetailsSearchParam {
|
||||||
|
|
||||||
/** 发药时间 */
|
/**
|
||||||
|
* 发药时间
|
||||||
|
*/
|
||||||
private Date dispenseTime;
|
private Date dispenseTime;
|
||||||
|
|
||||||
/** 药房 */
|
/**
|
||||||
|
* 药房
|
||||||
|
*/
|
||||||
private Long locationId;
|
private Long locationId;
|
||||||
|
|
||||||
/** 患者姓名 */
|
/**
|
||||||
|
* 患者姓名
|
||||||
|
*/
|
||||||
private String patientName;
|
private String patientName;
|
||||||
|
|
||||||
/** 发药人 */
|
/**
|
||||||
|
* 发药人
|
||||||
|
*/
|
||||||
private Long practitionerId;
|
private Long practitionerId;
|
||||||
|
|
||||||
/** 药品名称 */
|
/**
|
||||||
|
* 药品名称
|
||||||
|
*/
|
||||||
private String medicationName;
|
private String medicationName;
|
||||||
|
|
||||||
/** 药品项目(药品编码) */
|
/**
|
||||||
|
* 药品项目(药品编码)
|
||||||
|
*/
|
||||||
private String busNo;
|
private String busNo;
|
||||||
|
|
||||||
/** 出院状态 */
|
/**
|
||||||
|
* 出院状态
|
||||||
|
*/
|
||||||
private Integer dischargeStatus;
|
private Integer dischargeStatus;
|
||||||
|
|
||||||
/** 门诊住院flg */
|
/**
|
||||||
|
* 门诊住院flg
|
||||||
|
*/
|
||||||
private Integer flag;
|
private Integer flag;
|
||||||
|
|
||||||
/** 项目所在表 */
|
/**
|
||||||
|
* 项目所在表
|
||||||
|
*/
|
||||||
private String itemTable;
|
private String itemTable;
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
/** 统计类型 */
|
/**
|
||||||
|
* 统计类型
|
||||||
|
*/
|
||||||
private Integer inventoryScope;
|
private Integer inventoryScope;
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,6 @@ package com.openhis.web.pharmacymanage.dto;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
<<<<<<< HEAD
|
|
||||||
import java.util.List;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
import com.core.common.annotation.Excel;
|
import com.core.common.annotation.Excel;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
@@ -27,17 +23,22 @@ import lombok.experimental.Accessors;
|
|||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class MedicineSummaryDto {
|
public class MedicineSummaryDto {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据号
|
* 单据号
|
||||||
*/
|
*/
|
||||||
@Excel(name = "单据号", sort = 8, width = 35)
|
@Excel(name = "单据号", sort = 8, width = 35)
|
||||||
private String busNo;
|
private String busNo;
|
||||||
|
|
||||||
/** 供应请求id */
|
/**
|
||||||
|
* 供应请求id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long requestId;
|
private Long requestId;
|
||||||
|
|
||||||
/** 供应发放id */
|
/**
|
||||||
|
* 供应发放id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long deliveryId;
|
private Long deliveryId;
|
||||||
|
|
||||||
@@ -51,7 +52,9 @@ public class MedicineSummaryDto {
|
|||||||
@Excel(name = "项目名", sort = 2, width = 40)
|
@Excel(name = "项目名", sort = 2, width = 40)
|
||||||
private String itemName;
|
private String itemName;
|
||||||
|
|
||||||
/** 项目id */
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long itemId;
|
private Long itemId;
|
||||||
|
|
||||||
@@ -91,33 +94,45 @@ public class MedicineSummaryDto {
|
|||||||
private String unitCode;
|
private String unitCode;
|
||||||
private String unitCode_dictText;
|
private String unitCode_dictText;
|
||||||
|
|
||||||
/** 常规单位 */
|
/**
|
||||||
|
* 常规单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String maxUnitCode;
|
private String maxUnitCode;
|
||||||
private String maxUnitCode_dictText;
|
private String maxUnitCode_dictText;
|
||||||
|
|
||||||
/** 最小单位 */
|
/**
|
||||||
|
* 最小单位
|
||||||
|
*/
|
||||||
@Dict(dictCode = "unit_code")
|
@Dict(dictCode = "unit_code")
|
||||||
private String minUnitCode;
|
private String minUnitCode;
|
||||||
private String minUnitCode_dictText;
|
private String minUnitCode_dictText;
|
||||||
|
|
||||||
/** 发放地点 */
|
/**
|
||||||
|
* 发放地点
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long sourceLocationId;
|
private Long sourceLocationId;
|
||||||
@Excel(name = "发放地点", sort = 6)
|
@Excel(name = "发放地点", sort = 6)
|
||||||
private String sourceLocationName;
|
private String sourceLocationName;
|
||||||
|
|
||||||
/** 申请科室 */
|
/**
|
||||||
|
* 申请科室
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long orgId;
|
private Long orgId;
|
||||||
private String orgName;
|
private String orgName;
|
||||||
|
|
||||||
/** 领药人 */
|
/**
|
||||||
|
* 领药人
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long applicantId;
|
private Long applicantId;
|
||||||
private String applicantName;
|
private String applicantName;
|
||||||
|
|
||||||
/** 申请时间 */
|
/**
|
||||||
|
* 申请时间
|
||||||
|
*/
|
||||||
private Date applyTime;
|
private Date applyTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -126,6 +141,8 @@ public class MedicineSummaryDto {
|
|||||||
private Integer statusEnum;
|
private Integer statusEnum;
|
||||||
private String statusEnum_enumText;
|
private String statusEnum_enumText;
|
||||||
|
|
||||||
/** 患者信息 */
|
/**
|
||||||
|
* 患者信息
|
||||||
|
*/
|
||||||
private String patientInfo;
|
private String patientInfo;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,31 +22,19 @@ public interface MedicationDetailsMapper {
|
|||||||
* @param queryWrapper 查询条件
|
* @param queryWrapper 查询条件
|
||||||
* @param completed 发药状态:已发药
|
* @param completed 发药状态:已发药
|
||||||
* @param refunded 发药状态:已退药
|
* @param refunded 发药状态:已退药
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param dispenseEnum 统计类型
|
|
||||||
* @param medMedicationDefinition 药品
|
|
||||||
* @param admDeviceDefinition 耗材
|
|
||||||
=======
|
|
||||||
* @param statisticalType 统计类型
|
* @param statisticalType 统计类型
|
||||||
* @param flg 1:住院 2:门诊
|
* @param flg 1:住院 2:门诊
|
||||||
* @param medMedicationDefinition 药品
|
* @param medMedicationDefinition 药品
|
||||||
* @param admDeviceDefinition 耗材
|
* @param admDeviceDefinition 耗材
|
||||||
* @param costEnum 命中条件枚举:产品批号进价
|
* @param costEnum 命中条件枚举:产品批号进价
|
||||||
>>>>>>> v1.3
|
|
||||||
* @return 门诊人员发药明细表
|
* @return 门诊人员发药明细表
|
||||||
*/
|
*/
|
||||||
Page<MedDetailedAccountPageDto> selectAmbPractitionerDetailPage(@Param("page") Page<MedDetailedAccountPageDto> page,
|
Page<MedDetailedAccountPageDto> selectAmbPractitionerDetailPage(@Param("page") Page<MedDetailedAccountPageDto> page,
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<MedDetailsSearchParam> queryWrapper,
|
@Param(Constants.WRAPPER) QueryWrapper<MedDetailsSearchParam> queryWrapper,
|
||||||
@Param("completed") Integer completed, @Param("agree") Integer agree, @Param("refunded") Integer refunded,
|
@Param("completed") Integer completed, @Param("agree") Integer agree, @Param("refunded") Integer refunded,
|
||||||
<<<<<<< HEAD
|
|
||||||
@Param("dispenseEnum") Integer dispenseEnum, @Param("flg") Integer flg,
|
|
||||||
@Param("medMedicationDefinition") String medMedicationDefinition,
|
|
||||||
@Param("admDeviceDefinition") String admDeviceDefinition);
|
|
||||||
=======
|
|
||||||
@Param("statisticalType") Integer statisticalType, @Param("flg") Integer flg,
|
@Param("statisticalType") Integer statisticalType, @Param("flg") Integer flg,
|
||||||
@Param("medMedicationDefinition") String medMedicationDefinition,
|
@Param("medMedicationDefinition") String medMedicationDefinition,
|
||||||
@Param("admDeviceDefinition") String admDeviceDefinition, @Param("costEnum") String costEnum);
|
@Param("admDeviceDefinition") String admDeviceDefinition, @Param("costEnum") String costEnum);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * 门诊发药明细流水账
|
// * 门诊发药明细流水账
|
||||||
@@ -62,5 +50,4 @@ public interface MedicationDetailsMapper {
|
|||||||
// @Param("page") Page<MedDetailedAccountPageDto> page,
|
// @Param("page") Page<MedDetailedAccountPageDto> page,
|
||||||
// @Param(Constants.WRAPPER) QueryWrapper<MedDetailsSearchParam> queryWrapper, @Param("amb") Integer amb,
|
// @Param(Constants.WRAPPER) QueryWrapper<MedDetailsSearchParam> queryWrapper, @Param("amb") Integer amb,
|
||||||
// @Param("completed") Integer completed, @Param("refunded") Integer refunded)
|
// @Param("completed") Integer completed, @Param("refunded") Integer refunded)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,11 +27,7 @@ public interface ReturnMedicineMapper {
|
|||||||
* @return 退药患者分页列表
|
* @return 退药患者分页列表
|
||||||
*/
|
*/
|
||||||
Page<EncounterInfoDto> selectEncounterInfoListPage(@Param("page") Page<EncounterInfoDto> page,
|
Page<EncounterInfoDto> selectEncounterInfoListPage(@Param("page") Page<EncounterInfoDto> page,
|
||||||
<<<<<<< HEAD
|
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<EncounterInfoDto> queryWrapper, @Param("amb") Integer amb);
|
|
||||||
=======
|
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<EncounterInfoDto> queryWrapper);
|
@Param(Constants.WRAPPER) QueryWrapper<EncounterInfoDto> queryWrapper);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 申请退药清单查询
|
* 申请退药清单查询
|
||||||
|
|||||||
@@ -3,37 +3,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.openhis.web.pharmacymanage.mapper;
|
package com.openhis.web.pharmacymanage.mapper;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import com.openhis.web.pharmacymanage.dto.FromSearchParam;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
<<<<<<< HEAD
|
|
||||||
public interface SummaryDispenseMedicineMapper {
|
public interface SummaryDispenseMedicineMapper {
|
||||||
|
|
||||||
/**
|
|
||||||
* 汇总药品信息列表查询
|
|
||||||
*
|
|
||||||
* @param page 分页
|
|
||||||
* @param queryWrapper 查询条件
|
|
||||||
* @return 汇总药品信息
|
|
||||||
*/
|
|
||||||
Page<MedicineSummaryDto> selectMedicationSummaryInfo(@Param("page") Page<MedicineSummaryDto> page,
|
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<MedicineSummarySearchParam> queryWrapper);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 汇总药品信息列表查询
|
|
||||||
*
|
|
||||||
* @param page 分页
|
|
||||||
* @param queryWrapper 查询条件
|
|
||||||
* @return 汇总药品信息
|
|
||||||
*/
|
|
||||||
Page<MedicineSummaryDto> selectOrderInfo(@Param("page") Page<MedicineSummaryDto> page,
|
|
||||||
@Param(Constants.WRAPPER) QueryWrapper<FromSearchParam> queryWrapper);
|
|
||||||
}
|
}
|
||||||
=======
|
|
||||||
public interface SummaryDispenseMedicineMapper {}
|
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|||||||
@@ -88,23 +88,10 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public IPage<RegPatientMainInfoDto> getRegPatientMainInfo(RegPatientMainInfoDto regPatientMainInfoDto,
|
public IPage<RegPatientMainInfoDto> getRegPatientMainInfo(RegPatientMainInfoDto regPatientMainInfoDto,
|
||||||
<<<<<<< HEAD
|
|
||||||
Integer status, String searchKey, Integer pageNo, Integer pageSize, HttpServletRequest request) {
|
|
||||||
// 构建查询条件
|
|
||||||
QueryWrapper<RegPatientMainInfoDto> queryWrapper =
|
|
||||||
HisQueryUtils.buildQueryWrapper(regPatientMainInfoDto, searchKey,
|
|
||||||
new HashSet<>(Arrays.asList("bus_no", "patient_name", "inHospital_org_name", "house_name")), request);
|
|
||||||
|
|
||||||
IPage<RegPatientMainInfoDto> regPatientMainInfo = adviceManageAppMapper.getRegPatientMainInfo(
|
|
||||||
new Page<>(pageNo, pageSize), SecurityUtils.getLoginUser().getPractitionerId(),
|
|
||||||
LocationForm.WARD.getValue(), LocationForm.HOUSE.getValue(), LocationForm.BED.getValue(),
|
|
||||||
EncounterActivityStatus.ACTIVE.getValue(), EncounterClass.IMP.getValue(), status, Whether.YES.getValue(),
|
|
||||||
AccountType.PERSONAL_CASH_ACCOUNT.getCode(), queryWrapper);
|
|
||||||
=======
|
|
||||||
String searchKey, Integer pageNo, Integer pageSize, HttpServletRequest request) {
|
String searchKey, Integer pageNo, Integer pageSize, HttpServletRequest request) {
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<RegPatientMainInfoDto> queryWrapper =
|
QueryWrapper<RegPatientMainInfoDto> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(regPatientMainInfoDto, searchKey,
|
= HisQueryUtils.buildQueryWrapper(regPatientMainInfoDto, searchKey,
|
||||||
new HashSet<>(Arrays.asList("bus_no", "patient_name", "in_hospital_org_name", "house_name")), request);
|
new HashSet<>(Arrays.asList("bus_no", "patient_name", "in_hospital_org_name", "house_name")), request);
|
||||||
// 当前登录所属的科室
|
// 当前登录所属的科室
|
||||||
Long currentUserOrganizationId = SecurityUtils.getLoginUser().getOrgId();
|
Long currentUserOrganizationId = SecurityUtils.getLoginUser().getOrgId();
|
||||||
@@ -118,8 +105,8 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
AccountType.PERSONAL_CASH_ACCOUNT.getCode(), EncounterZyStatus.TO_BE_REGISTERED.getValue(),
|
AccountType.PERSONAL_CASH_ACCOUNT.getCode(), EncounterZyStatus.TO_BE_REGISTERED.getValue(),
|
||||||
EncounterZyStatus.ALREADY_SETTLED.getValue(), EncounterZyStatus.REGISTERED.getValue(), queryWrapper);
|
EncounterZyStatus.ALREADY_SETTLED.getValue(), EncounterZyStatus.REGISTERED.getValue(), queryWrapper);
|
||||||
// 就诊ID集合
|
// 就诊ID集合
|
||||||
List<Long> encounterIds =
|
List<Long> encounterIds
|
||||||
regPatientMainInfo.getRecords().stream().map(RegPatientMainInfoDto::getEncounterId).toList();
|
= regPatientMainInfo.getRecords().stream().map(RegPatientMainInfoDto::getEncounterId).toList();
|
||||||
|
|
||||||
// 查询条件
|
// 查询条件
|
||||||
QueryWrapper<EncounterAccountDto> wrapper = new QueryWrapper<>();
|
QueryWrapper<EncounterAccountDto> wrapper = new QueryWrapper<>();
|
||||||
@@ -129,9 +116,8 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
ChargeItemStatus.BILLABLE.getValue(), ChargeItemStatus.BILLED.getValue(),
|
ChargeItemStatus.BILLABLE.getValue(), ChargeItemStatus.BILLED.getValue(),
|
||||||
ChargeItemStatus.REFUNDED.getValue(), wrapper);
|
ChargeItemStatus.REFUNDED.getValue(), wrapper);
|
||||||
// 转换为Map,key = encounter_id
|
// 转换为Map,key = encounter_id
|
||||||
Map<Long, EncounterAccountDto> dtoMap =
|
Map<Long, EncounterAccountDto> dtoMap
|
||||||
list.stream().collect(Collectors.toMap(EncounterAccountDto::getEncounterId, e -> e));
|
= list.stream().collect(Collectors.toMap(EncounterAccountDto::getEncounterId, e -> e));
|
||||||
>>>>>>> v1.3
|
|
||||||
regPatientMainInfo.getRecords().forEach(e -> {
|
regPatientMainInfo.getRecords().forEach(e -> {
|
||||||
// 设置费用详情
|
// 设置费用详情
|
||||||
if (dtoMap.containsKey(e.getEncounterId())) {
|
if (dtoMap.containsKey(e.getEncounterId())) {
|
||||||
@@ -183,22 +169,15 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
List<RegAdviceSaveDto> regAdviceSaveList = regAdviceSaveParam.getRegAdviceSaveList();
|
List<RegAdviceSaveDto> regAdviceSaveList = regAdviceSaveParam.getRegAdviceSaveList();
|
||||||
// 药品
|
// 药品
|
||||||
List<RegAdviceSaveDto> medicineList = regAdviceSaveList.stream()
|
List<RegAdviceSaveDto> medicineList = regAdviceSaveList.stream()
|
||||||
<<<<<<< HEAD
|
|
||||||
.filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
.filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||||
// 耗材
|
|
||||||
// List<RegAdviceSaveDto> deviceList = regAdviceSaveList.stream()
|
|
||||||
// .filter(e -> ItemType.DEVICE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
|
||||||
=======
|
|
||||||
.filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 诊疗活动
|
// 诊疗活动
|
||||||
List<RegAdviceSaveDto> activityList = regAdviceSaveList.stream()
|
List<RegAdviceSaveDto> activityList = regAdviceSaveList.stream()
|
||||||
.filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
.filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||||
|
|
||||||
// 保存时,校验临时医嘱库存
|
// 保存时,校验临时医嘱库存
|
||||||
if (AdviceOpType.SAVE_ADVICE.getCode().equals(adviceOpType)) {
|
if (AdviceOpType.SAVE_ADVICE.getCode().equals(adviceOpType)) {
|
||||||
List<RegAdviceSaveDto> medUpdateList =
|
List<RegAdviceSaveDto> medUpdateList
|
||||||
medicineList.stream().filter(e -> e.getRequestId() != null).collect(Collectors.toList());
|
= medicineList.stream().filter(e -> e.getRequestId() != null).collect(Collectors.toList());
|
||||||
// 编辑时,释放本身占用的库存发放
|
// 编辑时,释放本身占用的库存发放
|
||||||
for (RegAdviceSaveDto adviceSaveDto : medUpdateList) {
|
for (RegAdviceSaveDto adviceSaveDto : medUpdateList) {
|
||||||
iMedicationDispenseService.deleteMedicationDispense(adviceSaveDto.getRequestId());
|
iMedicationDispenseService.deleteMedicationDispense(adviceSaveDto.getRequestId());
|
||||||
@@ -222,8 +201,8 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
/**
|
/**
|
||||||
* 处理药品请求
|
* 处理药品请求
|
||||||
*/
|
*/
|
||||||
List<String> medRequestIdList =
|
List<String> medRequestIdList
|
||||||
this.handMedication(medicineList, startTime, authoredTime, curDate, adviceOpType, organizationId, signCode);
|
= this.handMedication(medicineList, startTime, authoredTime, curDate, adviceOpType, organizationId, signCode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理诊疗项目请求
|
* 处理诊疗项目请求
|
||||||
@@ -244,24 +223,15 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
.in(ChargeItem::getServiceId, requestIds));
|
.in(ChargeItem::getServiceId, requestIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"住院医嘱"}));
|
|
||||||
=======
|
|
||||||
return R.ok(medRequestIdList,
|
return R.ok(medRequestIdList,
|
||||||
MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"住院医嘱"}));
|
MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"住院医嘱"}));
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理药品
|
* 处理药品
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
private void handMedication(List<RegAdviceSaveDto> medicineList, Date startTime, Date authoredTime, Date curDate,
|
|
||||||
String adviceOpType, Long organizationId, String signCode) {
|
|
||||||
=======
|
|
||||||
private List<String> handMedication(List<RegAdviceSaveDto> medicineList, Date startTime, Date authoredTime,
|
private List<String> handMedication(List<RegAdviceSaveDto> medicineList, Date startTime, Date authoredTime,
|
||||||
Date curDate, String adviceOpType, Long organizationId, String signCode) {
|
Date curDate, String adviceOpType, Long organizationId, String signCode) {
|
||||||
>>>>>>> v1.3
|
|
||||||
// 当前登录账号的科室id
|
// 当前登录账号的科室id
|
||||||
Long orgId = SecurityUtils.getLoginUser().getOrgId();
|
Long orgId = SecurityUtils.getLoginUser().getOrgId();
|
||||||
// 保存操作
|
// 保存操作
|
||||||
@@ -314,11 +284,7 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
if (is_save) {
|
if (is_save) {
|
||||||
longMedicationRequest.setEffectiveDoseStart(startTime); // 医嘱开始时间
|
longMedicationRequest.setEffectiveDoseStart(startTime); // 医嘱开始时间
|
||||||
longMedicationRequest
|
longMedicationRequest
|
||||||
<<<<<<< HEAD
|
|
||||||
.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 4));
|
.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 4));
|
||||||
=======
|
|
||||||
.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 4));
|
|
||||||
>>>>>>> v1.3
|
|
||||||
longMedicationRequest.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源
|
longMedicationRequest.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源
|
||||||
longMedicationRequest.setQuantity(regAdviceSaveDto.getQuantity()); // 请求数量
|
longMedicationRequest.setQuantity(regAdviceSaveDto.getQuantity()); // 请求数量
|
||||||
longMedicationRequest.setExecuteNum(regAdviceSaveDto.getExecuteNum()); // 执行次数
|
longMedicationRequest.setExecuteNum(regAdviceSaveDto.getExecuteNum()); // 执行次数
|
||||||
@@ -382,11 +348,7 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
if (is_save) {
|
if (is_save) {
|
||||||
tempMedicationRequest.setEffectiveDoseStart(startTime); // 医嘱开始时间
|
tempMedicationRequest.setEffectiveDoseStart(startTime); // 医嘱开始时间
|
||||||
tempMedicationRequest
|
tempMedicationRequest
|
||||||
<<<<<<< HEAD
|
|
||||||
.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 4));
|
.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 4));
|
||||||
=======
|
|
||||||
.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 4));
|
|
||||||
>>>>>>> v1.3
|
|
||||||
tempMedicationRequest.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源
|
tempMedicationRequest.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); // 生成来源
|
||||||
tempMedicationRequest.setQuantity(regAdviceSaveDto.getQuantity()); // 请求数量
|
tempMedicationRequest.setQuantity(regAdviceSaveDto.getQuantity()); // 请求数量
|
||||||
tempMedicationRequest.setExecuteNum(regAdviceSaveDto.getExecuteNum()); // 执行次数
|
tempMedicationRequest.setExecuteNum(regAdviceSaveDto.getExecuteNum()); // 执行次数
|
||||||
@@ -414,13 +376,6 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
tempMedicationRequest.setInfusionFlag(regAdviceSaveDto.getInjectFlag()); // 输液标志
|
tempMedicationRequest.setInfusionFlag(regAdviceSaveDto.getInjectFlag()); // 输液标志
|
||||||
tempMedicationRequest.setSortNumber(regAdviceSaveDto.getSortNumber()); // 排序号
|
tempMedicationRequest.setSortNumber(regAdviceSaveDto.getSortNumber()); // 排序号
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
iMedicationRequestService.saveOrUpdate(tempMedicationRequest);
|
|
||||||
if (is_save) {
|
|
||||||
// 处理药品发放
|
|
||||||
Long dispenseId = iMedicationDispenseService.handleMedicationDispense(tempMedicationRequest,
|
|
||||||
regAdviceSaveDto.getDbOpType());
|
|
||||||
=======
|
|
||||||
if (tempMedicationRequest.getId() == null) {
|
if (tempMedicationRequest.getId() == null) {
|
||||||
firstTimeSave = true;
|
firstTimeSave = true;
|
||||||
}
|
}
|
||||||
@@ -433,7 +388,6 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
// 处理药品发放
|
// 处理药品发放
|
||||||
Long dispenseId = iMedicationDispenseService.handleMedicationDispense(tempMedicationRequest,
|
Long dispenseId = iMedicationDispenseService.handleMedicationDispense(tempMedicationRequest,
|
||||||
regAdviceSaveDto.getDbOpType());
|
regAdviceSaveDto.getDbOpType());
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 保存药品费用项
|
// 保存药品费用项
|
||||||
chargeItem = new ChargeItem();
|
chargeItem = new ChargeItem();
|
||||||
@@ -543,7 +497,6 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
ChargeItem chargeItem;
|
ChargeItem chargeItem;
|
||||||
// 新增 + 修改 (临时医嘱)
|
// 新增 + 修改 (临时医嘱)
|
||||||
List<RegAdviceSaveDto> tempInsertOrUpdateList = activityList.stream().filter(e -> TherapyTimeType.TEMPORARY
|
List<RegAdviceSaveDto> tempInsertOrUpdateList = activityList.stream().filter(e -> TherapyTimeType.TEMPORARY
|
||||||
|
|
||||||
.getValue().equals(e.getTherapyEnum())
|
.getValue().equals(e.getTherapyEnum())
|
||||||
&& (DbOpType.INSERT.getCode().equals(e.getDbOpType()) || DbOpType.UPDATE.getCode().equals(e.getDbOpType())))
|
&& (DbOpType.INSERT.getCode().equals(e.getDbOpType()) || DbOpType.UPDATE.getCode().equals(e.getDbOpType())))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
@@ -615,8 +568,8 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
|
|
||||||
// 第一次保存时,处理诊疗套餐的子项信息
|
// 第一次保存时,处理诊疗套餐的子项信息
|
||||||
if (regAdviceSaveDto.getRequestId() == null) {
|
if (regAdviceSaveDto.getRequestId() == null) {
|
||||||
ActivityDefinition activityDefinition =
|
ActivityDefinition activityDefinition
|
||||||
iActivityDefinitionService.getById(regAdviceSaveDto.getAdviceDefinitionId());
|
= iActivityDefinitionService.getById(regAdviceSaveDto.getAdviceDefinitionId());
|
||||||
String childrenJson = activityDefinition.getChildrenJson();
|
String childrenJson = activityDefinition.getChildrenJson();
|
||||||
if (childrenJson != null) {
|
if (childrenJson != null) {
|
||||||
// 诊疗子项参数类
|
// 诊疗子项参数类
|
||||||
@@ -648,15 +601,9 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||||
// 住院医嘱请求数据
|
// 住院医嘱请求数据
|
||||||
List<RegRequestBaseDto> regRequestBaseInfo = adviceManageAppMapper.getRegRequestBaseInfo(encounterId, null,
|
List<RegRequestBaseDto> regRequestBaseInfo = adviceManageAppMapper.getRegRequestBaseInfo(encounterId, null,
|
||||||
<<<<<<< HEAD
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
||||||
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.NO.getCode(),
|
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.NO.getCode(),
|
||||||
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
||||||
=======
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
|
||||||
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.NO.getCode(),
|
|
||||||
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
|
||||||
>>>>>>> v1.3
|
|
||||||
// 根据 requestId 过滤重复医嘱信息
|
// 根据 requestId 过滤重复医嘱信息
|
||||||
List<RegRequestBaseDto> distinctList = regRequestBaseInfo.stream()
|
List<RegRequestBaseDto> distinctList = regRequestBaseInfo.stream()
|
||||||
.collect(Collectors.toMap(RegRequestBaseDto::getRequestId, dto -> dto, (existing, replacement) -> existing // 如果key冲突,保留已存在的(第一条)
|
.collect(Collectors.toMap(RegRequestBaseDto::getRequestId, dto -> dto, (existing, replacement) -> existing // 如果key冲突,保留已存在的(第一条)
|
||||||
@@ -695,15 +642,9 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||||
// 住院医嘱请求数据
|
// 住院医嘱请求数据
|
||||||
List<RegRequestBaseDto> regRequestBaseInfo = adviceManageAppMapper.getRegRequestBaseInfo(encounterId, patientId,
|
List<RegRequestBaseDto> regRequestBaseInfo = adviceManageAppMapper.getRegRequestBaseInfo(encounterId, patientId,
|
||||||
<<<<<<< HEAD
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
||||||
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.YES.getCode(),
|
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.YES.getCode(),
|
||||||
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
||||||
=======
|
|
||||||
CommonConstants.TableName.MED_MEDICATION_REQUEST, CommonConstants.TableName.WOR_DEVICE_REQUEST,
|
|
||||||
CommonConstants.TableName.WOR_SERVICE_REQUEST, practitionerId, Whether.YES.getCode(),
|
|
||||||
GenerateSource.DOCTOR_PRESCRIPTION.getValue());
|
|
||||||
>>>>>>> v1.3
|
|
||||||
for (RegRequestBaseDto regRequestBaseDto : regRequestBaseInfo) {
|
for (RegRequestBaseDto regRequestBaseDto : regRequestBaseInfo) {
|
||||||
// 请求状态
|
// 请求状态
|
||||||
regRequestBaseDto.setStatusEnum_enumText(
|
regRequestBaseDto.setStatusEnum_enumText(
|
||||||
@@ -735,13 +676,13 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
// 药品
|
// 药品
|
||||||
List<AdviceBatchOpParam> medicineList = paramList.stream()
|
List<AdviceBatchOpParam> medicineList = paramList.stream()
|
||||||
.filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
.filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||||
List<Long> medicineRequestIds =
|
List<Long> medicineRequestIds
|
||||||
medicineList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
= medicineList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
||||||
// 诊疗
|
// 诊疗
|
||||||
List<AdviceBatchOpParam> activityList = paramList.stream()
|
List<AdviceBatchOpParam> activityList = paramList.stream()
|
||||||
.filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
.filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||||
List<Long> activityRequestIds =
|
List<Long> activityRequestIds
|
||||||
activityList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
= activityList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
||||||
// 查询已完成的药品请求
|
// 查询已完成的药品请求
|
||||||
List<MedicationRequest> medicineCompleteList = new ArrayList<>();
|
List<MedicationRequest> medicineCompleteList = new ArrayList<>();
|
||||||
if (!medicineRequestIds.isEmpty()) {
|
if (!medicineRequestIds.isEmpty()) {
|
||||||
@@ -793,13 +734,13 @@ public class AdviceManageAppServiceImpl implements IAdviceManageAppService {
|
|||||||
// 药品
|
// 药品
|
||||||
List<AdviceBatchOpParam> medicineList = paramList.stream()
|
List<AdviceBatchOpParam> medicineList = paramList.stream()
|
||||||
.filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
.filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||||
List<Long> medicineRequestIds =
|
List<Long> medicineRequestIds
|
||||||
medicineList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
= medicineList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
||||||
// 诊疗
|
// 诊疗
|
||||||
List<AdviceBatchOpParam> activityList = paramList.stream()
|
List<AdviceBatchOpParam> activityList = paramList.stream()
|
||||||
.filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
.filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType())).collect(Collectors.toList());
|
||||||
List<Long> activityRequestIds =
|
List<Long> activityRequestIds
|
||||||
activityList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
= activityList.stream().map(AdviceBatchOpParam::getRequestId).collect(Collectors.toList());
|
||||||
if (!medicineRequestIds.isEmpty()) {
|
if (!medicineRequestIds.isEmpty()) {
|
||||||
iMedicationRequestService.update(new LambdaUpdateWrapper<MedicationRequest>()
|
iMedicationRequestService.update(new LambdaUpdateWrapper<MedicationRequest>()
|
||||||
.in(MedicationRequest::getId, medicineRequestIds).set(MedicationRequest::getEffectiveDoseEnd, date)
|
.in(MedicationRequest::getId, medicineRequestIds).set(MedicationRequest::getEffectiveDoseEnd, date)
|
||||||
|
|||||||
@@ -67,13 +67,13 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
|||||||
public NursingOrdersDto getNursingOrdersInfos() {
|
public NursingOrdersDto getNursingOrdersInfos() {
|
||||||
NursingOrdersDto nursingOrdersDto = new NursingOrdersDto();
|
NursingOrdersDto nursingOrdersDto = new NursingOrdersDto();
|
||||||
// 类型为护理医嘱的编码集合
|
// 类型为护理医嘱的编码集合
|
||||||
List<String> categoryCodeList =
|
List<String> categoryCodeList
|
||||||
Arrays.stream(NursingOrdersClass.values()).map(NursingOrdersClass::getCode).collect(Collectors.toList());
|
= Arrays.stream(NursingOrdersClass.values()).map(NursingOrdersClass::getCode).collect(Collectors.toList());
|
||||||
List<NursingOrdersDetailDto> nursingOrdersInfos =
|
List<NursingOrdersDetailDto> nursingOrdersInfos
|
||||||
specialAdviceAppMapper.getNursingOrdersInfos(categoryCodeList);
|
= specialAdviceAppMapper.getNursingOrdersInfos(categoryCodeList);
|
||||||
// 按categoryCode进行分组
|
// 按categoryCode进行分组
|
||||||
Map<String, List<NursingOrdersDetailDto>> groupedByCategory =
|
Map<String, List<NursingOrdersDetailDto>> groupedByCategory
|
||||||
nursingOrdersInfos.stream().collect(Collectors.groupingBy(NursingOrdersDetailDto::getCategoryCode));
|
= nursingOrdersInfos.stream().collect(Collectors.groupingBy(NursingOrdersDetailDto::getCategoryCode));
|
||||||
// 根据不同的categoryCode赋值给对应的List
|
// 根据不同的categoryCode赋值给对应的List
|
||||||
for (Map.Entry<String, List<NursingOrdersDetailDto>> entry : groupedByCategory.entrySet()) {
|
for (Map.Entry<String, List<NursingOrdersDetailDto>> entry : groupedByCategory.entrySet()) {
|
||||||
String categoryCode = entry.getKey();
|
String categoryCode = entry.getKey();
|
||||||
@@ -133,8 +133,8 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
|||||||
// 就诊诊断id
|
// 就诊诊断id
|
||||||
Long encounterDiagnosisId = nursingOrdersSaveDto.getEncounterDiagnosisId();
|
Long encounterDiagnosisId = nursingOrdersSaveDto.getEncounterDiagnosisId();
|
||||||
// 护理医嘱详情保存集合
|
// 护理医嘱详情保存集合
|
||||||
List<NursingOrdersSaveDetailDto> nursingOrdersSaveDetailDtoList =
|
List<NursingOrdersSaveDetailDto> nursingOrdersSaveDetailDtoList
|
||||||
nursingOrdersSaveDto.getNursingOrdersSaveDetailDtoList();
|
= nursingOrdersSaveDto.getNursingOrdersSaveDetailDtoList();
|
||||||
// 声明长期医嘱诊疗请求
|
// 声明长期医嘱诊疗请求
|
||||||
ServiceRequest longServiceRequest;
|
ServiceRequest longServiceRequest;
|
||||||
// 已经存在的有效医嘱
|
// 已经存在的有效医嘱
|
||||||
@@ -247,11 +247,11 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
|||||||
public NursingOrdersEncounterDto getEncounterNursingOrdersInfos(Long encounterId) {
|
public NursingOrdersEncounterDto getEncounterNursingOrdersInfos(Long encounterId) {
|
||||||
NursingOrdersEncounterDto nursingOrdersEncounterDto = new NursingOrdersEncounterDto();
|
NursingOrdersEncounterDto nursingOrdersEncounterDto = new NursingOrdersEncounterDto();
|
||||||
// 类型为护理医嘱的枚举集合
|
// 类型为护理医嘱的枚举集合
|
||||||
List<Integer> categoryEnumList =
|
List<Integer> categoryEnumList
|
||||||
Arrays.stream(NursingOrdersClass.values()).map(NursingOrdersClass::getValue).collect(Collectors.toList());
|
= Arrays.stream(NursingOrdersClass.values()).map(NursingOrdersClass::getValue).collect(Collectors.toList());
|
||||||
// 查询查询就诊护理医嘱 ; 为了排除可能存在的数据问题,每个categoryEnum按创建时间取最新的一条
|
// 查询查询就诊护理医嘱 ; 为了排除可能存在的数据问题,每个categoryEnum按创建时间取最新的一条
|
||||||
List<NursingOrdersEncounterDetailDto> encounterNursingOrdersInfos =
|
List<NursingOrdersEncounterDetailDto> encounterNursingOrdersInfos
|
||||||
specialAdviceAppMapper.getEncounterNursingOrdersInfos(encounterId, RequestStatus.DRAFT.getValue(),
|
= specialAdviceAppMapper.getEncounterNursingOrdersInfos(encounterId, RequestStatus.DRAFT.getValue(),
|
||||||
RequestStatus.ACTIVE.getValue(), RequestStatus.COMPLETED.getValue(), categoryEnumList);
|
RequestStatus.ACTIVE.getValue(), RequestStatus.COMPLETED.getValue(), categoryEnumList);
|
||||||
if (!encounterNursingOrdersInfos.isEmpty()) {
|
if (!encounterNursingOrdersInfos.isEmpty()) {
|
||||||
// 按categoryEnum进行分组
|
// 按categoryEnum进行分组
|
||||||
@@ -325,8 +325,8 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
|||||||
return R.fail("请先在诊疗目录维护转科医嘱");
|
return R.fail("请先在诊疗目录维护转科医嘱");
|
||||||
}
|
}
|
||||||
// 出院的医嘱定义id
|
// 出院的医嘱定义id
|
||||||
Long leaveHospitalDefinitionId =
|
Long leaveHospitalDefinitionId
|
||||||
iActivityDefinitionService.getAppointActivityDefinitionId(CommonConstants.BusinessName.LEAVE_HOSPITAL);
|
= iActivityDefinitionService.getAppointActivityDefinitionId(CommonConstants.BusinessName.LEAVE_HOSPITAL);
|
||||||
if (leaveHospitalDefinitionId != null) {
|
if (leaveHospitalDefinitionId != null) {
|
||||||
LambdaQueryWrapper<ServiceRequest> leaveLambdaQuery = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ServiceRequest> leaveLambdaQuery = new LambdaQueryWrapper<>();
|
||||||
leaveLambdaQuery.eq(ServiceRequest::getEncounterId, encounterId)
|
leaveLambdaQuery.eq(ServiceRequest::getEncounterId, encounterId)
|
||||||
@@ -415,8 +415,8 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
|||||||
Long encounterDiagnosisId = leaveHospitalParam.getEncounterDiagnosisId();
|
Long encounterDiagnosisId = leaveHospitalParam.getEncounterDiagnosisId();
|
||||||
|
|
||||||
// 出院的医嘱定义id
|
// 出院的医嘱定义id
|
||||||
Long transferOrganizationDefinitionId =
|
Long transferOrganizationDefinitionId
|
||||||
iActivityDefinitionService.getAppointActivityDefinitionId(CommonConstants.BusinessName.LEAVE_HOSPITAL);
|
= iActivityDefinitionService.getAppointActivityDefinitionId(CommonConstants.BusinessName.LEAVE_HOSPITAL);
|
||||||
if (transferOrganizationDefinitionId == null) {
|
if (transferOrganizationDefinitionId == null) {
|
||||||
return R.fail("请先在诊疗目录维护出院医嘱");
|
return R.fail("请先在诊疗目录维护出院医嘱");
|
||||||
}
|
}
|
||||||
@@ -433,11 +433,7 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
|||||||
|
|
||||||
// 出院的医嘱信息
|
// 出院的医嘱信息
|
||||||
AdviceBaseDto activityAdviceBaseDto = iDoctorStationAdviceAppService.getAdviceBaseInfo(null, null, null,
|
AdviceBaseDto activityAdviceBaseDto = iDoctorStationAdviceAppService.getAdviceBaseInfo(null, null, null,
|
||||||
<<<<<<< HEAD
|
|
||||||
List.of(transferOrganizationDefinitionId), null, 1, 1, Whether.NO.getValue(), List.of(3)).getRecords()
|
|
||||||
=======
|
|
||||||
List.of(transferOrganizationDefinitionId), null, 1, 1, Whether.NO.getValue(), List.of(3), null).getRecords()
|
List.of(transferOrganizationDefinitionId), null, 1, 1, Whether.NO.getValue(), List.of(3), null).getRecords()
|
||||||
>>>>>>> v1.3
|
|
||||||
.get(0);
|
.get(0);
|
||||||
// 保存出院医嘱请求
|
// 保存出院医嘱请求
|
||||||
ServiceRequest serviceRequest = new ServiceRequest();
|
ServiceRequest serviceRequest = new ServiceRequest();
|
||||||
@@ -466,11 +462,8 @@ public class SpecialAdviceAppServiceImpl implements ISpecialAdviceAppService {
|
|||||||
orderProcess.setRequestId(serviceRequest.getId()); // 请求id
|
orderProcess.setRequestId(serviceRequest.getId()); // 请求id
|
||||||
orderProcess.setRequestTableName(CommonConstants.TableName.WOR_SERVICE_REQUEST); // 请求表名
|
orderProcess.setRequestTableName(CommonConstants.TableName.WOR_SERVICE_REQUEST); // 请求表名
|
||||||
orderProcess.setOutWayCode(leaveHospitalParam.getOutWayCode()); // 出院方式
|
orderProcess.setOutWayCode(leaveHospitalParam.getOutWayCode()); // 出院方式
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
orderProcess.setTargetLocationId(leaveHospitalParam.getOriginalOrganizationId()); // 原科室
|
orderProcess.setTargetLocationId(leaveHospitalParam.getOriginalOrganizationId()); // 原科室
|
||||||
orderProcess.setOriginalLocationId(leaveHospitalParam.getOriginalLocationId()); // 原病区
|
orderProcess.setOriginalLocationId(leaveHospitalParam.getOriginalLocationId()); // 原病区
|
||||||
>>>>>>> v1.3
|
|
||||||
iOrderProcessService.save(orderProcess);
|
iOrderProcessService.save(orderProcess);
|
||||||
|
|
||||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"出院医嘱"}));
|
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[]{"出院医嘱"}));
|
||||||
|
|||||||
@@ -18,11 +18,15 @@ import lombok.experimental.Accessors;
|
|||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class LeaveHospitalParam {
|
public class LeaveHospitalParam {
|
||||||
|
|
||||||
/** 就诊id */
|
/**
|
||||||
|
* 就诊id
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long encounterId;
|
private Long encounterId;
|
||||||
|
|
||||||
/** 患者 */
|
/**
|
||||||
|
* 患者
|
||||||
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
private Long patientId;
|
private Long patientId;
|
||||||
|
|
||||||
@@ -51,8 +55,6 @@ public class LeaveHospitalParam {
|
|||||||
private String outWayCode;
|
private String outWayCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
* 原科室
|
* 原科室
|
||||||
*/
|
*/
|
||||||
@JsonSerialize(using = ToStringSerializer.class)
|
@JsonSerialize(using = ToStringSerializer.class)
|
||||||
@@ -65,7 +67,6 @@ public class LeaveHospitalParam {
|
|||||||
private Long originalLocationId;
|
private Long originalLocationId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
>>>>>>> v1.3
|
|
||||||
* 理由
|
* 理由
|
||||||
*/
|
*/
|
||||||
private String reasonText;
|
private String reasonText;
|
||||||
|
|||||||
@@ -3,11 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.openhis.web.reportmanage.appservice;
|
package com.openhis.web.reportmanage.appservice;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
=======
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@@ -16,7 +11,6 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.core.common.core.domain.R;
|
import com.core.common.core.domain.R;
|
||||||
import com.openhis.web.reportmanage.dto.*;
|
import com.openhis.web.reportmanage.dto.*;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报表 appService
|
* 报表 appService
|
||||||
@@ -26,13 +20,8 @@ import com.openhis.web.reportmanage.dto.*;
|
|||||||
*/
|
*/
|
||||||
public interface IReportAppService {
|
public interface IReportAppService {
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
/**例子
|
|
||||||
* 药剂科报表_常规报表:出库明细表
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 例子 药剂科报表_常规报表:出库明细表
|
* 例子 药剂科报表_常规报表:出库明细表
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
@@ -45,23 +34,16 @@ public interface IReportAppService {
|
|||||||
/**
|
/**
|
||||||
* 药剂科报表:患者明细主表
|
* 药剂科报表:患者明细主表
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
* @param patientMasterDetailsSearchParam 患者明细主表查询条件
|
* @param patientMasterDetailsSearchParam 患者明细主表查询条件
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
* @param request 请求数据
|
* @param request 请求数据
|
||||||
* @return 患者明细主表
|
* @return 患者明细主表
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
R<?> getPatientMasterDetailPage(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
|
||||||
=======
|
|
||||||
Page<ReportPatientMasterDetailDto> getPatientMasterDetailPage(
|
Page<ReportPatientMasterDetailDto> getPatientMasterDetailPage(
|
||||||
ReportPatientMasterDetailsSearchParam patientMasterDetailsSearchParam, Integer pageNo, Integer pageSize,
|
ReportPatientMasterDetailsSearchParam patientMasterDetailsSearchParam, Integer pageNo, Integer pageSize,
|
||||||
String searchKey, HttpServletRequest request);
|
String searchKey, HttpServletRequest request);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 药剂科报表:线下采购占比
|
* 药剂科报表:线下采购占比
|
||||||
@@ -83,32 +65,21 @@ public interface IReportAppService {
|
|||||||
* @param request 请求数据
|
* @param request 请求数据
|
||||||
* @return 药品使用情况报表
|
* @return 药品使用情况报表
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
R<?> getMedicationUsagePage(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
|
||||||
=======
|
|
||||||
R<?> getMedicationUsagePage(Integer pageNo, Integer pageSize, String searchKey, LocalDateTime startTime,
|
R<?> getMedicationUsagePage(Integer pageNo, Integer pageSize, String searchKey, LocalDateTime startTime,
|
||||||
LocalDateTime endTime, HttpServletRequest request);
|
LocalDateTime endTime, HttpServletRequest request);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 药剂科报表:患者明细
|
* 药剂科报表:患者明细
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
* @param patientDetailsSearchParam 患者明细查询条件
|
* @param patientDetailsSearchParam 患者明细查询条件
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
* @param request 请求数据
|
* @param request 请求数据
|
||||||
* @return 患者明细报表
|
* @return 患者明细报表
|
||||||
*/
|
*/
|
||||||
<<<<<<< HEAD
|
|
||||||
R<?> getPatientDetailsPage(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
|
||||||
=======
|
|
||||||
Page<ReportPatientDetailsDto> getPatientDetailsPage(ReportPatientDetailsSearchParam patientDetailsSearchParam,
|
Page<ReportPatientDetailsDto> getPatientDetailsPage(ReportPatientDetailsSearchParam patientDetailsSearchParam,
|
||||||
Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 药剂科报表_常规报表:药品费用增长率
|
* 药剂科报表_常规报表:药品费用增长率
|
||||||
@@ -135,37 +106,19 @@ public interface IReportAppService {
|
|||||||
/**
|
/**
|
||||||
* 药剂科报表:基本情况
|
* 药剂科报表:基本情况
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 基本情况报表
|
|
||||||
*/
|
|
||||||
R<?> getBasicInformationDetails(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
|
||||||
=======
|
|
||||||
* @param param 查询参数
|
* @param param 查询参数
|
||||||
* @return 基本情况报表
|
* @return 基本情况报表
|
||||||
*/
|
*/
|
||||||
R<?> getBasicInformationDetails(ReportDetailsSearchParam param);
|
R<?> getBasicInformationDetails(ReportDetailsSearchParam param);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 药剂科报表:药品出库情况
|
* 药剂科报表:药品出库情况
|
||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 药品出库情况报表
|
|
||||||
*/
|
|
||||||
R<?> getMedicationStockOutDetails(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
|
||||||
=======
|
|
||||||
* @return 药品出库情况报表
|
* @return 药品出库情况报表
|
||||||
*/
|
*/
|
||||||
R<?> getMedicationStockOutDetails(ReportDetailsSearchParam param, Integer pageNo, Integer pageSize);
|
R<?> getMedicationStockOutDetails(ReportDetailsSearchParam param, Integer pageNo, Integer pageSize);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 药剂科报表:产品使用情况
|
* 药剂科报表:产品使用情况
|
||||||
@@ -189,9 +142,6 @@ public interface IReportAppService {
|
|||||||
*/
|
*/
|
||||||
R<?> getNonWinQtyRatio(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
R<?> getNonWinQtyRatio(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 药剂科报表:药品入库情况
|
* 药剂科报表:药品入库情况
|
||||||
*
|
*
|
||||||
@@ -263,5 +213,4 @@ public interface IReportAppService {
|
|||||||
* @param response 响应数据
|
* @param response 响应数据
|
||||||
*/
|
*/
|
||||||
void makeExcelFile(ReportDetailsSearchParam param, HttpServletResponse response, String code);
|
void makeExcelFile(ReportDetailsSearchParam param, HttpServletResponse response, String code);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,32 +33,6 @@ import java.util.*;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
import com.core.common.utils.AgeCalculatorUtil;
|
|
||||||
import com.openhis.administration.domain.Practitioner;
|
|
||||||
import com.openhis.administration.service.IPractitionerService;
|
|
||||||
import com.openhis.common.constant.CommonConstants;
|
|
||||||
import com.openhis.common.constant.PromptMsgConstant;
|
|
||||||
import com.openhis.common.enums.*;
|
|
||||||
import com.openhis.common.utils.EnumUtils;
|
|
||||||
import com.openhis.common.utils.HisQueryUtils;
|
|
||||||
import com.openhis.web.reportmanage.appservice.IChargeReportAppService;
|
|
||||||
import com.openhis.web.reportmanage.dto.ChargeReportInitDto;
|
|
||||||
import com.openhis.web.reportmanage.dto.ChargeReportPageDto;
|
|
||||||
import com.openhis.web.reportmanage.dto.ChargeReportSearchParam;
|
|
||||||
import com.openhis.web.reportmanage.mapper.ChargeReportMapper;
|
|
||||||
|
|
||||||
=======
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/**
|
/**
|
||||||
* 费用明细报表 impl
|
* 费用明细报表 impl
|
||||||
*
|
*
|
||||||
@@ -97,11 +71,7 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
initDto.setStatisticsTypeOptions(statisticsTypeOptions).setIssuerOptions(applicantList)
|
initDto.setStatisticsTypeOptions(statisticsTypeOptions).setIssuerOptions(applicantList)
|
||||||
<<<<<<< HEAD
|
|
||||||
.setPayeeOptions(applicantList).setClinicalTypeOptions(clinicalTypeOptions);
|
.setPayeeOptions(applicantList).setClinicalTypeOptions(clinicalTypeOptions);
|
||||||
=======
|
|
||||||
.setPayeeOptions(applicantList).setClinicalTypeOptions(clinicalTypeOptions);
|
|
||||||
>>>>>>> v1.3
|
|
||||||
return R.ok(initDto);
|
return R.ok(initDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,13 +99,13 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
List<String> deviceCategoryCode = null;
|
List<String> deviceCategoryCode = null;
|
||||||
if (chargeReportSearchParam.getClinicalType() != null
|
if (chargeReportSearchParam.getClinicalType() != null
|
||||||
&& !chargeReportSearchParam.getClinicalType().trim().isEmpty()) {
|
&& !chargeReportSearchParam.getClinicalType().trim().isEmpty()) {
|
||||||
clinicalType =
|
clinicalType
|
||||||
Arrays.stream((chargeReportSearchParam.getClinicalType()).split(",")).map(Integer::valueOf).toList();
|
= Arrays.stream((chargeReportSearchParam.getClinicalType()).split(",")).map(Integer::valueOf).toList();
|
||||||
}
|
}
|
||||||
if (chargeReportSearchParam.getMedicationCategoryCode() != null
|
if (chargeReportSearchParam.getMedicationCategoryCode() != null
|
||||||
&& !chargeReportSearchParam.getMedicationCategoryCode().trim().isEmpty()) {
|
&& !chargeReportSearchParam.getMedicationCategoryCode().trim().isEmpty()) {
|
||||||
medicationCategoryCode =
|
medicationCategoryCode
|
||||||
Arrays.stream((chargeReportSearchParam.getMedicationCategoryCode()).split(",")).toList();
|
= Arrays.stream((chargeReportSearchParam.getMedicationCategoryCode()).split(",")).toList();
|
||||||
}
|
}
|
||||||
if (chargeReportSearchParam.getDeviceCategoryCode() != null
|
if (chargeReportSearchParam.getDeviceCategoryCode() != null
|
||||||
&& !chargeReportSearchParam.getDeviceCategoryCode().trim().isEmpty()) {
|
&& !chargeReportSearchParam.getDeviceCategoryCode().trim().isEmpty()) {
|
||||||
@@ -143,8 +113,8 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
}
|
}
|
||||||
if (chargeReportSearchParam.getActivityCategoryCode() != null
|
if (chargeReportSearchParam.getActivityCategoryCode() != null
|
||||||
&& !chargeReportSearchParam.getActivityCategoryCode().trim().isEmpty()) {
|
&& !chargeReportSearchParam.getActivityCategoryCode().trim().isEmpty()) {
|
||||||
activityCategoryCode =
|
activityCategoryCode
|
||||||
Arrays.stream((chargeReportSearchParam.getActivityCategoryCode()).split(",")).toList();
|
= Arrays.stream((chargeReportSearchParam.getActivityCategoryCode()).split(",")).toList();
|
||||||
}
|
}
|
||||||
// 避开QueryWrapper
|
// 避开QueryWrapper
|
||||||
chargeReportSearchParam.setClinicalType(null);
|
chargeReportSearchParam.setClinicalType(null);
|
||||||
@@ -152,22 +122,12 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
chargeReportSearchParam.setDeviceCategoryCode(null);
|
chargeReportSearchParam.setDeviceCategoryCode(null);
|
||||||
chargeReportSearchParam.setActivityCategoryCode(null);
|
chargeReportSearchParam.setActivityCategoryCode(null);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<ChargeReportSearchParam> queryWrapper =
|
QueryWrapper<ChargeReportSearchParam> queryWrapper
|
||||||
<<<<<<< HEAD
|
= HisQueryUtils.buildQueryWrapper(chargeReportSearchParam, searchKey,
|
||||||
HisQueryUtils.buildQueryWrapper(chargeReportSearchParam, searchKey,
|
|
||||||
new HashSet<>(Arrays.asList(CommonConstants.FieldName.YbCode, CommonConstants.FieldName.BusNo,
|
new HashSet<>(Arrays.asList(CommonConstants.FieldName.YbCode, CommonConstants.FieldName.BusNo,
|
||||||
CommonConstants.FieldName.Name, CommonConstants.FieldName.ClinicalName,
|
CommonConstants.FieldName.Name, CommonConstants.FieldName.ClinicalName,
|
||||||
CommonConstants.FieldName.ClinicalNo)),
|
CommonConstants.FieldName.ClinicalNo)),
|
||||||
request);
|
request);
|
||||||
queryWrapper.orderByDesc(CommonConstants.FieldName.BusNo).orderByAsc(CommonConstants.FieldName.ChargeId)
|
|
||||||
.orderByAsc(CommonConstants.FieldName.ChargeTime);
|
|
||||||
=======
|
|
||||||
HisQueryUtils.buildQueryWrapper(chargeReportSearchParam, searchKey,
|
|
||||||
new HashSet<>(Arrays.asList(CommonConstants.FieldName.YbCode, CommonConstants.FieldName.BusNo,
|
|
||||||
CommonConstants.FieldName.Name, CommonConstants.FieldName.ClinicalName,
|
|
||||||
CommonConstants.FieldName.ClinicalNo)),
|
|
||||||
request);
|
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 最终返回结果
|
// 最终返回结果
|
||||||
Page<ChargeReportPageDto> chargeReportList;
|
Page<ChargeReportPageDto> chargeReportList;
|
||||||
@@ -175,17 +135,6 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
if (Objects.equals(statisticsType, StatisticsType.OUTPATIENT_REVENUE.getCode())) {
|
if (Objects.equals(statisticsType, StatisticsType.OUTPATIENT_REVENUE.getCode())) {
|
||||||
// 门诊整体收入明细
|
// 门诊整体收入明细
|
||||||
chargeReportList = chargeReportMapper.selectRevenueReportPage(new Page<>(pageNo, pageSize), queryWrapper,
|
chargeReportList = chargeReportMapper.selectRevenueReportPage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
<<<<<<< HEAD
|
|
||||||
PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue(),
|
|
||||||
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
|
||||||
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 2);
|
|
||||||
} else if (Objects.equals(statisticsType, StatisticsType.OUTPATIENT_YB_REVENUE.getCode())) {
|
|
||||||
// 门诊医保收入明细
|
|
||||||
chargeReportList = chargeReportMapper.selectRevenueReportPage(new Page<>(pageNo, pageSize), queryWrapper,
|
|
||||||
PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue(),
|
|
||||||
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
|
||||||
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 1);
|
|
||||||
=======
|
|
||||||
PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue(),
|
PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue(),
|
||||||
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
||||||
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 2, clinicalType,
|
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 2, clinicalType,
|
||||||
@@ -197,22 +146,10 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
||||||
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 1, clinicalType,
|
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 1, clinicalType,
|
||||||
activityCategoryCode, deviceCategoryCode, medicationCategoryCode);
|
activityCategoryCode, deviceCategoryCode, medicationCategoryCode);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
} else if (Objects.equals(statisticsType, StatisticsType.OUTPATIENT_SELF_REVENUE.getCode())) {
|
} else if (Objects.equals(statisticsType, StatisticsType.OUTPATIENT_SELF_REVENUE.getCode())) {
|
||||||
// 门诊自费收入明细
|
// 门诊自费收入明细
|
||||||
chargeReportList = chargeReportMapper.selectRevenueReportPage(new Page<>(pageNo, pageSize), queryWrapper,
|
chargeReportList = chargeReportMapper.selectRevenueReportPage(new Page<>(pageNo, pageSize), queryWrapper,
|
||||||
<<<<<<< HEAD
|
|
||||||
PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue(),
|
|
||||||
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
|
||||||
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 0);
|
|
||||||
} else if (Objects.equals(statisticsType, StatisticsType.OUTPATIENT_REFUND.getCode())) {
|
|
||||||
// 门诊退费明细
|
|
||||||
chargeReportList = chargeReportMapper.selectRevenueReportPage(new Page<>(pageNo, pageSize), queryWrapper,
|
|
||||||
PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue(),
|
|
||||||
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
|
||||||
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 3);
|
|
||||||
=======
|
|
||||||
PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue(),
|
PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue(),
|
||||||
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
||||||
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 0, clinicalType,
|
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 0, clinicalType,
|
||||||
@@ -224,7 +161,6 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
ChargeItemContext.MEDICATION.getValue(), ChargeItemContext.DEVICE.getValue(),
|
||||||
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 3, clinicalType,
|
ChargeItemContext.ACTIVITY.getValue(), ChargeItemContext.REGISTER.getValue(), 3, clinicalType,
|
||||||
activityCategoryCode, deviceCategoryCode, medicationCategoryCode);
|
activityCategoryCode, deviceCategoryCode, medicationCategoryCode);
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
return R.fail(PromptMsgConstant.Report.M00002);
|
return R.fail(PromptMsgConstant.Report.M00002);
|
||||||
@@ -244,17 +180,10 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
List<ChargeReportPageDto> content = chargeReportList.getRecords();
|
List<ChargeReportPageDto> content = chargeReportList.getRecords();
|
||||||
// 按 busNo 分组,并合计 totalPrice
|
// 按 busNo 分组,并合计 totalPrice
|
||||||
Map<String, BigDecimal> subtotalAmount = content.stream()
|
Map<String, BigDecimal> subtotalAmount = content.stream()
|
||||||
<<<<<<< HEAD
|
|
||||||
// 过滤掉 busNo 为 null 的元素,否则会报错但实际上不会出现这个情况 element cannot be mapped to a null key
|
// 过滤掉 busNo 为 null 的元素,否则会报错但实际上不会出现这个情况 element cannot be mapped to a null key
|
||||||
.filter(dto -> dto.getBusNo() != null)
|
.filter(dto -> dto.getBusNo() != null)
|
||||||
.collect(Collectors.groupingBy(ChargeReportPageDto::getBusNo, Collectors.reducing(BigDecimal.ZERO,
|
.collect(Collectors.groupingBy(ChargeReportPageDto::getBusNo, Collectors.reducing(BigDecimal.ZERO,
|
||||||
dto -> dto.getTotalPrice() != null ? dto.getTotalPrice() : BigDecimal.ZERO, BigDecimal::add)));
|
dto -> dto.getTotalPrice() != null ? dto.getTotalPrice() : BigDecimal.ZERO, BigDecimal::add)));
|
||||||
=======
|
|
||||||
// 过滤掉 busNo 为 null 的元素,否则会报错但实际上不会出现这个情况 element cannot be mapped to a null key
|
|
||||||
.filter(dto -> dto.getBusNo() != null)
|
|
||||||
.collect(Collectors.groupingBy(ChargeReportPageDto::getBusNo, Collectors.reducing(BigDecimal.ZERO,
|
|
||||||
dto -> dto.getTotalPrice() != null ? dto.getTotalPrice() : BigDecimal.ZERO, BigDecimal::add)));
|
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
// 更新每条数据的 Price 字段
|
// 更新每条数据的 Price 字段
|
||||||
for (ChargeReportPageDto dto : content) {
|
for (ChargeReportPageDto dto : content) {
|
||||||
@@ -315,13 +244,13 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
List<String> deviceCategoryCode = null;
|
List<String> deviceCategoryCode = null;
|
||||||
if (chargeReportSearchParam.getClinicalType() != null
|
if (chargeReportSearchParam.getClinicalType() != null
|
||||||
&& !chargeReportSearchParam.getClinicalType().trim().isEmpty()) {
|
&& !chargeReportSearchParam.getClinicalType().trim().isEmpty()) {
|
||||||
clinicalType =
|
clinicalType
|
||||||
Arrays.stream((chargeReportSearchParam.getClinicalType()).split(",")).map(Integer::valueOf).toList();
|
= Arrays.stream((chargeReportSearchParam.getClinicalType()).split(",")).map(Integer::valueOf).toList();
|
||||||
}
|
}
|
||||||
if (chargeReportSearchParam.getMedicationCategoryCode() != null
|
if (chargeReportSearchParam.getMedicationCategoryCode() != null
|
||||||
&& !chargeReportSearchParam.getMedicationCategoryCode().trim().isEmpty()) {
|
&& !chargeReportSearchParam.getMedicationCategoryCode().trim().isEmpty()) {
|
||||||
medicationCategoryCode =
|
medicationCategoryCode
|
||||||
Arrays.stream((chargeReportSearchParam.getMedicationCategoryCode()).split(",")).toList();
|
= Arrays.stream((chargeReportSearchParam.getMedicationCategoryCode()).split(",")).toList();
|
||||||
}
|
}
|
||||||
if (chargeReportSearchParam.getDeviceCategoryCode() != null
|
if (chargeReportSearchParam.getDeviceCategoryCode() != null
|
||||||
&& !chargeReportSearchParam.getDeviceCategoryCode().trim().isEmpty()) {
|
&& !chargeReportSearchParam.getDeviceCategoryCode().trim().isEmpty()) {
|
||||||
@@ -329,8 +258,8 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
}
|
}
|
||||||
if (chargeReportSearchParam.getActivityCategoryCode() != null
|
if (chargeReportSearchParam.getActivityCategoryCode() != null
|
||||||
&& !chargeReportSearchParam.getActivityCategoryCode().trim().isEmpty()) {
|
&& !chargeReportSearchParam.getActivityCategoryCode().trim().isEmpty()) {
|
||||||
activityCategoryCode =
|
activityCategoryCode
|
||||||
Arrays.stream((chargeReportSearchParam.getActivityCategoryCode()).split(",")).toList();
|
= Arrays.stream((chargeReportSearchParam.getActivityCategoryCode()).split(",")).toList();
|
||||||
}
|
}
|
||||||
// 避开QueryWrapper
|
// 避开QueryWrapper
|
||||||
chargeReportSearchParam.setClinicalType(null);
|
chargeReportSearchParam.setClinicalType(null);
|
||||||
@@ -338,8 +267,8 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
chargeReportSearchParam.setDeviceCategoryCode(null);
|
chargeReportSearchParam.setDeviceCategoryCode(null);
|
||||||
chargeReportSearchParam.setActivityCategoryCode(null);
|
chargeReportSearchParam.setActivityCategoryCode(null);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<ChargeReportSearchParam> queryWrapper =
|
QueryWrapper<ChargeReportSearchParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(chargeReportSearchParam, searchKey,
|
= HisQueryUtils.buildQueryWrapper(chargeReportSearchParam, searchKey,
|
||||||
new HashSet<>(Arrays.asList(CommonConstants.FieldName.YbCode, CommonConstants.FieldName.BusNo,
|
new HashSet<>(Arrays.asList(CommonConstants.FieldName.YbCode, CommonConstants.FieldName.BusNo,
|
||||||
CommonConstants.FieldName.Name, CommonConstants.FieldName.ClinicalName,
|
CommonConstants.FieldName.Name, CommonConstants.FieldName.ClinicalName,
|
||||||
CommonConstants.FieldName.ClinicalNo)),
|
CommonConstants.FieldName.ClinicalNo)),
|
||||||
@@ -435,6 +364,7 @@ public class ChargeReportAppServiceImpl implements IChargeReportAppService {
|
|||||||
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
||||||
return R.ok(chargeReportMapper.selectOrgWorkload(startTime, endTime, CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION, PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue(), ConditionCode.LOT_NUMBER_COST.getValue().toString(), tenantId));
|
return R.ok(chargeReportMapper.selectOrgWorkload(startTime, endTime, CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION, PaymentStatus.SUCCESS.getValue(), PaymentStatus.REFUND_ALL.getValue(), ConditionCode.LOT_NUMBER_COST.getValue().toString(), tenantId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 医生工作量统计
|
* 医生工作量统计
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -3,14 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.openhis.web.reportmanage.appservice.impl;
|
package com.openhis.web.reportmanage.appservice.impl;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
import com.openhis.web.reportmanage.appservice.IReportAppService;
|
|
||||||
=======
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
@@ -46,7 +38,6 @@ import com.openhis.financial.service.IPaymentRecStaticService;
|
|||||||
import com.openhis.web.reportmanage.appservice.IReportAppService;
|
import com.openhis.web.reportmanage.appservice.IReportAppService;
|
||||||
import com.openhis.web.reportmanage.dto.*;
|
import com.openhis.web.reportmanage.dto.*;
|
||||||
import com.openhis.web.reportmanage.mapper.ReportMapper;
|
import com.openhis.web.reportmanage.mapper.ReportMapper;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报表 impl
|
* 报表 impl
|
||||||
@@ -57,10 +48,6 @@ import com.openhis.web.reportmanage.mapper.ReportMapper;
|
|||||||
@Service
|
@Service
|
||||||
public class ReportAppServiceImpl implements IReportAppService {
|
public class ReportAppServiceImpl implements IReportAppService {
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
/**例子
|
|
||||||
* 药剂科报表_常规报表:出库明细表
|
|
||||||
=======
|
|
||||||
@Autowired
|
@Autowired
|
||||||
ReportMapper reportMapper;
|
ReportMapper reportMapper;
|
||||||
@Resource
|
@Resource
|
||||||
@@ -68,7 +55,6 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 例子 药剂科报表_常规报表:出库明细表
|
* 例子 药剂科报表_常规报表:出库明细表
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
@@ -84,10 +70,7 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
/**
|
/**
|
||||||
* 药剂科报表:患者明细主表
|
* 药剂科报表:患者明细主表
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
* @param patientMasterDetailsSearchParam 患者明细主表查询条件
|
* @param patientMasterDetailsSearchParam 患者明细主表查询条件
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
@@ -95,23 +78,18 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
* @return 患者明细主表
|
* @return 患者明细主表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getPatientMasterDetailPage(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) {
|
|
||||||
return null;
|
|
||||||
=======
|
|
||||||
public Page<ReportPatientMasterDetailDto> getPatientMasterDetailPage(
|
public Page<ReportPatientMasterDetailDto> getPatientMasterDetailPage(
|
||||||
ReportPatientMasterDetailsSearchParam patientMasterDetailsSearchParam, Integer pageNo, Integer pageSize,
|
ReportPatientMasterDetailsSearchParam patientMasterDetailsSearchParam, Integer pageNo, Integer pageSize,
|
||||||
String searchKey, HttpServletRequest request) {
|
String searchKey, HttpServletRequest request) {
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<ReportPatientMasterDetailsSearchParam> queryWrapper =
|
QueryWrapper<ReportPatientMasterDetailsSearchParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(patientMasterDetailsSearchParam, searchKey,
|
= HisQueryUtils.buildQueryWrapper(patientMasterDetailsSearchParam, searchKey,
|
||||||
new HashSet<>(Arrays.asList("encounter_bus_no", "patient_name")), request);
|
new HashSet<>(Arrays.asList("encounter_bus_no", "patient_name")), request);
|
||||||
// 查询挂号明细分页列表
|
// 查询挂号明细分页列表
|
||||||
Page<ReportPatientMasterDetailDto> patientMasterDetailsPage = reportMapper
|
Page<ReportPatientMasterDetailDto> patientMasterDetailsPage = reportMapper
|
||||||
.selectPatientMasterDetailPage(new Page<>(pageNo, pageSize), queryWrapper, EncounterClass.IMP.getValue());
|
.selectPatientMasterDetailPage(new Page<>(pageNo, pageSize), queryWrapper, EncounterClass.IMP.getValue());
|
||||||
|
|
||||||
return patientMasterDetailsPage;
|
return patientMasterDetailsPage;
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -128,10 +106,7 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
>>>>>>> v1.3
|
|
||||||
/**
|
/**
|
||||||
* 药剂科报表:药品使用情况
|
* 药剂科报表:药品使用情况
|
||||||
*
|
*
|
||||||
@@ -142,11 +117,6 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
* @return 药品使用情况报表
|
* @return 药品使用情况报表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getMedicationUsagePage(Integer pageNo, Integer pageSize, String searchKey,
|
|
||||||
HttpServletRequest request) {
|
|
||||||
return null;
|
|
||||||
=======
|
|
||||||
public R<?> getMedicationUsagePage(Integer pageNo, Integer pageSize, String searchKey, LocalDateTime startTime,
|
public R<?> getMedicationUsagePage(Integer pageNo, Integer pageSize, String searchKey, LocalDateTime startTime,
|
||||||
LocalDateTime endTime, HttpServletRequest request) {
|
LocalDateTime endTime, HttpServletRequest request) {
|
||||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
@@ -159,16 +129,12 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
item.setOrgName(orgName);
|
item.setOrgName(orgName);
|
||||||
});
|
});
|
||||||
return R.ok(medicationUsagePage);
|
return R.ok(medicationUsagePage);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 药剂科报表:患者明细
|
* 药剂科报表:患者明细
|
||||||
*
|
*
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
* @param patientDetailsSearchParam 患者明细查询条件
|
* @param patientDetailsSearchParam 患者明细查询条件
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
@@ -176,25 +142,19 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
* @return 患者明细报表
|
* @return 患者明细报表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getPatientDetailsPage(Integer pageNo, Integer pageSize, String searchKey,
|
|
||||||
HttpServletRequest request) {
|
|
||||||
return null;
|
|
||||||
=======
|
|
||||||
public Page<ReportPatientDetailsDto> getPatientDetailsPage(
|
public Page<ReportPatientDetailsDto> getPatientDetailsPage(
|
||||||
ReportPatientDetailsSearchParam patientDetailsSearchParam, Integer pageNo, Integer pageSize, String searchKey,
|
ReportPatientDetailsSearchParam patientDetailsSearchParam, Integer pageNo, Integer pageSize, String searchKey,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
|
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<ReportPatientDetailsSearchParam> queryWrapper =
|
QueryWrapper<ReportPatientDetailsSearchParam> queryWrapper
|
||||||
HisQueryUtils.buildQueryWrapper(patientDetailsSearchParam, searchKey,
|
= HisQueryUtils.buildQueryWrapper(patientDetailsSearchParam, searchKey,
|
||||||
new HashSet<>(Arrays.asList("encounter_bus_no", "med_name", "manufacturer_text")), request);
|
new HashSet<>(Arrays.asList("encounter_bus_no", "med_name", "manufacturer_text")), request);
|
||||||
// 查询挂号明细分页列表
|
// 查询挂号明细分页列表
|
||||||
Page<ReportPatientDetailsDto> patientDetailsPage = reportMapper.selectPatientDetailsPage(
|
Page<ReportPatientDetailsDto> patientDetailsPage = reportMapper.selectPatientDetailsPage(
|
||||||
new Page<>(pageNo, pageSize), queryWrapper, CommonConstants.TableName.MED_MEDICATION_REQUEST);
|
new Page<>(pageNo, pageSize), queryWrapper, CommonConstants.TableName.MED_MEDICATION_REQUEST);
|
||||||
|
|
||||||
return patientDetailsPage;
|
return patientDetailsPage;
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -207,12 +167,8 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
* @return 药品费用增长率
|
* @return 药品费用增长率
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getDrugExpensesGrowthRate(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) {
|
|
||||||
=======
|
|
||||||
public R<?> getDrugExpensesGrowthRate(Integer pageNo, Integer pageSize, String searchKey,
|
public R<?> getDrugExpensesGrowthRate(Integer pageNo, Integer pageSize, String searchKey,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
>>>>>>> v1.3
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,29 +182,12 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
* @return 30天回款率
|
* @return 30天回款率
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getThirtyDayCollectionRate(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) {
|
|
||||||
=======
|
|
||||||
public R<?> getThirtyDayCollectionRate(Integer pageNo, Integer pageSize, String searchKey,
|
public R<?> getThirtyDayCollectionRate(Integer pageNo, Integer pageSize, String searchKey,
|
||||||
HttpServletRequest request) {
|
HttpServletRequest request) {
|
||||||
>>>>>>> v1.3
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
<<<<<<< HEAD
|
|
||||||
* 药剂科报表:基本情况
|
|
||||||
*
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 基本情况报表
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> getBasicInformationDetails(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) {
|
|
||||||
return null;
|
|
||||||
=======
|
|
||||||
* 获取医疗机构代码、组织机构名称
|
* 获取医疗机构代码、组织机构名称
|
||||||
*
|
*
|
||||||
* @return 医疗机构代码[0]、组织机构名称[1]
|
* @return 医疗机构代码[0]、组织机构名称[1]
|
||||||
@@ -295,7 +234,6 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
return R.ok(List.of(dto));
|
return R.ok(List.of(dto));
|
||||||
}
|
}
|
||||||
return R.ok();
|
return R.ok();
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -303,15 +241,6 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
<<<<<<< HEAD
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 药品出库情况报表
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public R<?> getMedicationStockOutDetails(Integer pageNo, Integer pageSize, String searchKey, HttpServletRequest request) {
|
|
||||||
return null;
|
|
||||||
=======
|
|
||||||
* @return 药品出库情况报表
|
* @return 药品出库情况报表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@@ -343,7 +272,6 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
return R.ok(detailsPage);
|
return R.ok(detailsPage);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -374,9 +302,6 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 药剂科报表:药品入库情况
|
* 药剂科报表:药品入库情况
|
||||||
*
|
*
|
||||||
@@ -493,8 +418,8 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
List<ReportMedicationInboundDetailsDto> dtoList = details.getData().getRecords();
|
List<ReportMedicationInboundDetailsDto> dtoList = details.getData().getRecords();
|
||||||
if (!dtoList.isEmpty()) {
|
if (!dtoList.isEmpty()) {
|
||||||
try {
|
try {
|
||||||
NewExcelUtil<ReportMedicationInboundDetailsDto> util =
|
NewExcelUtil<ReportMedicationInboundDetailsDto> util
|
||||||
new NewExcelUtil<>(ReportMedicationInboundDetailsDto.class);
|
= new NewExcelUtil<>(ReportMedicationInboundDetailsDto.class);
|
||||||
util.exportExcel(response, dtoList, CommonConstants.SheetName.DRUG_TRANSFER_DETAILS);
|
util.exportExcel(response, dtoList, CommonConstants.SheetName.DRUG_TRANSFER_DETAILS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
@@ -513,13 +438,12 @@ public class ReportAppServiceImpl implements IReportAppService {
|
|||||||
List<ReportBasicInformationDetailsDto> dtoList = (List<ReportBasicInformationDetailsDto>) details.getData();
|
List<ReportBasicInformationDetailsDto> dtoList = (List<ReportBasicInformationDetailsDto>) details.getData();
|
||||||
if (dtoList != null && !dtoList.isEmpty()) {
|
if (dtoList != null && !dtoList.isEmpty()) {
|
||||||
try {
|
try {
|
||||||
NewExcelUtil<ReportBasicInformationDetailsDto> util =
|
NewExcelUtil<ReportBasicInformationDetailsDto> util
|
||||||
new NewExcelUtil<>(ReportBasicInformationDetailsDto.class);
|
= new NewExcelUtil<>(ReportBasicInformationDetailsDto.class);
|
||||||
util.exportExcel(response, dtoList, CommonConstants.SheetName.ANNUAL_TOTAL_DRUG_REVENUE);
|
util.exportExcel(response, dtoList, CommonConstants.SheetName.ANNUAL_TOTAL_DRUG_REVENUE);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,18 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.openhis.web.reportmanage.controller;
|
package com.openhis.web.reportmanage.controller;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import com.core.common.core.domain.R;
|
|
||||||
import com.openhis.web.reportmanage.appservice.IReportAppService;
|
|
||||||
=======
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@@ -30,7 +18,6 @@ import com.openhis.web.reportmanage.dto.ReportDetailsSearchParam;
|
|||||||
import com.openhis.web.reportmanage.dto.ReportPatientDetailsSearchParam;
|
import com.openhis.web.reportmanage.dto.ReportPatientDetailsSearchParam;
|
||||||
import com.openhis.web.reportmanage.dto.ReportPatientMasterDetailsSearchParam;
|
import com.openhis.web.reportmanage.dto.ReportPatientMasterDetailsSearchParam;
|
||||||
import com.openhis.web.reportmanage.dto.ReportPhysicianWorkloadSearchParam;
|
import com.openhis.web.reportmanage.dto.ReportPhysicianWorkloadSearchParam;
|
||||||
>>>>>>> v1.3
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@@ -48,14 +35,8 @@ public class ReportController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IReportAppService reportAppService;
|
private IReportAppService reportAppService;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
/**例子,Dto例子参考:ReportStockOutDetailDto
|
|
||||||
* 药剂科报表_常规报表:出库明细表
|
|
||||||
=======
|
|
||||||
/**
|
/**
|
||||||
* 例子,Dto例子参考:ReportStockOutDetailDto 药剂科报表_常规报表:出库明细表
|
* 例子,Dto例子参考:ReportStockOutDetailDto 药剂科报表_常规报表:出库明细表
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
@@ -67,14 +48,6 @@ public class ReportController {
|
|||||||
public R<?> getStockOutDetailPage(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
public R<?> getStockOutDetailPage(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||||
<<<<<<< HEAD
|
|
||||||
return reportAppService.getStockOutDetailPage(pageNo,pageSize,searchKey,request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**Dto参考:ReportPatientMasterDetailDto
|
|
||||||
* 药剂科报表:患者明细主表
|
|
||||||
*
|
|
||||||
=======
|
|
||||||
return reportAppService.getStockOutDetailPage(pageNo, pageSize, searchKey, request);
|
return reportAppService.getStockOutDetailPage(pageNo, pageSize, searchKey, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +55,6 @@ public class ReportController {
|
|||||||
* Dto参考:ReportPatientMasterDetailDto 药剂科报表:患者明细主表
|
* Dto参考:ReportPatientMasterDetailDto 药剂科报表:患者明细主表
|
||||||
*
|
*
|
||||||
* @param patientMasterDetailsSearchParam 患者明细主表查询条件
|
* @param patientMasterDetailsSearchParam 患者明细主表查询条件
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
@@ -90,16 +62,6 @@ public class ReportController {
|
|||||||
* @return 患者明细主报表
|
* @return 患者明细主报表
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/patient-master-detail")
|
@GetMapping(value = "/patient-master-detail")
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getPatientMasterDetailPage(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
|
||||||
return reportAppService.getPatientMasterDetailPage(pageNo,pageSize,searchKey,request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**Dto参考:ReportOfflinePurchaseRatioDto
|
|
||||||
* 药剂科报表:线下采购占比
|
|
||||||
=======
|
|
||||||
public R<?> getPatientMasterDetailPage(ReportPatientMasterDetailsSearchParam patientMasterDetailsSearchParam,
|
public R<?> getPatientMasterDetailPage(ReportPatientMasterDetailsSearchParam patientMasterDetailsSearchParam,
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
@@ -110,7 +72,6 @@ public class ReportController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Dto参考:ReportOfflinePurchaseRatioDto 药剂科报表:线下采购占比
|
* Dto参考:ReportOfflinePurchaseRatioDto 药剂科报表:线下采购占比
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
@@ -122,19 +83,11 @@ public class ReportController {
|
|||||||
public R<?> getOfflinePurchaseRatioPage(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
public R<?> getOfflinePurchaseRatioPage(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||||
<<<<<<< HEAD
|
|
||||||
return reportAppService.getOfflinePurchaseRatioPage(pageNo,pageSize,searchKey,request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**Dto参考:ReportMedicationUsageDto
|
|
||||||
* 药剂科报表:药品使用情况
|
|
||||||
=======
|
|
||||||
return reportAppService.getOfflinePurchaseRatioPage(pageNo, pageSize, searchKey, request);
|
return reportAppService.getOfflinePurchaseRatioPage(pageNo, pageSize, searchKey, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dto参考:ReportMedicationUsageDto 药剂科报表:药品使用情况
|
* Dto参考:ReportMedicationUsageDto 药剂科报表:药品使用情况
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
@@ -145,15 +98,6 @@ public class ReportController {
|
|||||||
@GetMapping(value = "/medication-usage")
|
@GetMapping(value = "/medication-usage")
|
||||||
public R<?> getMedicationUsagePage(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
public R<?> getMedicationUsagePage(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
<<<<<<< HEAD
|
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
|
||||||
return reportAppService.getMedicationUsagePage(pageNo,pageSize,searchKey,request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**Dto参考:ReportPatientDetailsDto
|
|
||||||
* 药剂科报表:患者明细
|
|
||||||
*
|
|
||||||
=======
|
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey,
|
@RequestParam(name = "searchKey", required = false) String searchKey,
|
||||||
@RequestParam(name = "startTime",
|
@RequestParam(name = "startTime",
|
||||||
required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime,
|
required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime,
|
||||||
@@ -167,7 +111,6 @@ public class ReportController {
|
|||||||
* Dto参考:ReportPatientDetailsDto 药剂科报表:患者明细
|
* Dto参考:ReportPatientDetailsDto 药剂科报表:患者明细
|
||||||
*
|
*
|
||||||
* @param patientDetailsSearchParam 患者明细查询条件
|
* @param patientDetailsSearchParam 患者明细查询条件
|
||||||
>>>>>>> v1.3
|
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
* @param searchKey 模糊查询关键字
|
* @param searchKey 模糊查询关键字
|
||||||
@@ -175,16 +118,6 @@ public class ReportController {
|
|||||||
* @return 患者明细报表
|
* @return 患者明细报表
|
||||||
*/
|
*/
|
||||||
@GetMapping(value = "/patient-details")
|
@GetMapping(value = "/patient-details")
|
||||||
<<<<<<< HEAD
|
|
||||||
public R<?> getPatientDetailsPage(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
|
||||||
return reportAppService.getPatientDetailsPage(pageNo,pageSize,searchKey,request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**Dto参考:ReportDrugCostGrowthDto
|
|
||||||
* 药剂科报表:药品费用增长率
|
|
||||||
=======
|
|
||||||
public R<?> getPatientDetailsPage(ReportPatientDetailsSearchParam patientDetailsSearchParam,
|
public R<?> getPatientDetailsPage(ReportPatientDetailsSearchParam patientDetailsSearchParam,
|
||||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
@@ -195,7 +128,6 @@ public class ReportController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Dto参考:ReportDrugCostGrowthDto 药剂科报表:药品费用增长率
|
* Dto参考:ReportDrugCostGrowthDto 药剂科报表:药品费用增长率
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
@@ -207,19 +139,11 @@ public class ReportController {
|
|||||||
public R<?> getDrugExpensesGrowthRate(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
public R<?> getDrugExpensesGrowthRate(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||||
<<<<<<< HEAD
|
|
||||||
return reportAppService.getDrugExpensesGrowthRate(pageNo,pageSize,searchKey,request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**Dto参考:ReportThirtyDayCollectionRateDto
|
|
||||||
* 药剂科报表:30天回款率
|
|
||||||
=======
|
|
||||||
return reportAppService.getDrugExpensesGrowthRate(pageNo, pageSize, searchKey, request);
|
return reportAppService.getDrugExpensesGrowthRate(pageNo, pageSize, searchKey, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dto参考:ReportThirtyDayCollectionRateDto 药剂科报表:30天回款率
|
* Dto参考:ReportThirtyDayCollectionRateDto 药剂科报表:30天回款率
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
@@ -231,45 +155,6 @@ public class ReportController {
|
|||||||
public R<?> getThirtyDayCollectionRate(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
public R<?> getThirtyDayCollectionRate(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||||
<<<<<<< HEAD
|
|
||||||
return reportAppService.getThirtyDayCollectionRate(pageNo,pageSize,searchKey,request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**Dto参考:ReportBasicInformationDetailsDto
|
|
||||||
* 药剂科报表:基本情况报表
|
|
||||||
*
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 基本情况报表
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/basic-information-details")
|
|
||||||
public R<?> getBasicInformationDetails(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
|
||||||
return reportAppService.getBasicInformationDetails(pageNo,pageSize,searchKey,request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**Dto参考:ReportMedicationStockOutDetailsDto
|
|
||||||
* 药剂科报表:药品出库情况
|
|
||||||
*
|
|
||||||
* @param pageNo 当前页码
|
|
||||||
* @param pageSize 查询条数
|
|
||||||
* @param searchKey 模糊查询关键字
|
|
||||||
* @param request 请求数据
|
|
||||||
* @return 药品出库情况报表
|
|
||||||
*/
|
|
||||||
@GetMapping(value = "/medication-stock-out-details")
|
|
||||||
public R<?> getMedicationStockOutDetails(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
|
||||||
return reportAppService.getMedicationStockOutDetails(pageNo,pageSize,searchKey,request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**Dto参考:ReportProductUsageDto
|
|
||||||
* 药剂科报表:产品使用情况
|
|
||||||
=======
|
|
||||||
return reportAppService.getThirtyDayCollectionRate(pageNo, pageSize, searchKey, request);
|
return reportAppService.getThirtyDayCollectionRate(pageNo, pageSize, searchKey, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -311,7 +196,6 @@ public class ReportController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Dto参考:ReportProductUsageDto 药剂科报表:产品使用情况
|
* Dto参考:ReportProductUsageDto 药剂科报表:产品使用情况
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
@@ -323,19 +207,11 @@ public class ReportController {
|
|||||||
public R<?> getProductUsageDetails(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
public R<?> getProductUsageDetails(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||||
<<<<<<< HEAD
|
|
||||||
return reportAppService.getProductUsageDetails(pageNo,pageSize,searchKey,request);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**Dto参考:ReportNonWinQtyRatioDto
|
|
||||||
* 药剂科报表:非中选产品采购量占比
|
|
||||||
=======
|
|
||||||
return reportAppService.getProductUsageDetails(pageNo, pageSize, searchKey, request);
|
return reportAppService.getProductUsageDetails(pageNo, pageSize, searchKey, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dto参考:ReportNonWinQtyRatioDto 药剂科报表:非中选产品采购量占比
|
* Dto参考:ReportNonWinQtyRatioDto 药剂科报表:非中选产品采购量占比
|
||||||
>>>>>>> v1.3
|
|
||||||
*
|
*
|
||||||
* @param pageNo 当前页码
|
* @param pageNo 当前页码
|
||||||
* @param pageSize 查询条数
|
* @param pageSize 查询条数
|
||||||
@@ -347,9 +223,6 @@ public class ReportController {
|
|||||||
public R<?> getNonWinQtyRatio(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
public R<?> getNonWinQtyRatio(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||||
<<<<<<< HEAD
|
|
||||||
return reportAppService.getNonWinQtyRatio(pageNo,pageSize,searchKey,request);
|
|
||||||
=======
|
|
||||||
return reportAppService.getNonWinQtyRatio(pageNo, pageSize, searchKey, request);
|
return reportAppService.getNonWinQtyRatio(pageNo, pageSize, searchKey, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -446,7 +319,6 @@ public class ReportController {
|
|||||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
||||||
return reportAppService.getPhysicianWorkloadPage(physicianWorkloadReportSearchParam, pageNo, pageSize,
|
return reportAppService.getPhysicianWorkloadPage(physicianWorkloadReportSearchParam, pageNo, pageSize,
|
||||||
searchKey, request);
|
searchKey, request);
|
||||||
>>>>>>> v1.3
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user