This commit is contained in:
LiJianZhao 2025-05-17 15:45:53 +08:00
parent 72ebcc7f03
commit a186c8e88b
5 changed files with 77 additions and 2 deletions

View File

@ -0,0 +1,28 @@
package com.syjiaer.clinic.server.common.enums;
public enum DiagnosisStatusEnum {
WAIT_CHARGE(0, "待收费"),
CHARGE_FINISH(1, "已收费"),
REFUND_FINISH(2, "已退费");
private Integer status;
private String desc;
DiagnosisStatusEnum(Integer status, String desc) {
this.status = status;
this.desc = desc;
}
public Integer getStatus() {
return status;
}
public String getDesc() {
return desc;
}
public static DiagnosisStatusEnum getByStatus(Integer status) {
for (DiagnosisStatusEnum diagnosisStatusEnum : values()) {
if (diagnosisStatusEnum.getStatus().equals(status)) {
return diagnosisStatusEnum;
}
}
return null;
}
}

View File

@ -72,6 +72,17 @@ public class ChargeController extends BaseController {
chargeService.completeOrder(id,payType);
return success();
}
/**
* 根据诊断code和状态获取诊断信息
*/
@RequestMapping("/getOrderByDiagnosisCode")
public Result<ChargeOrder> getOrderByDiagnosisCode() {
String diagnosisCode = parmsUtil.getString("diagnosisCode","诊断code不能为空");
Integer status = parmsUtil.getInteger("status","诊断状态不能为空");
ChargeOrder chargeOrder = chargeService.getOrderByDiagnosisCode(diagnosisCode,status);
return success(chargeOrder);
}
/**
* 根据code查询订单详情

View File

@ -12,6 +12,8 @@ public class TipCountVo {
private Long completeDiaCount;
//已收费数量
private Long chargedCount;
//已退费数量
private Long refundedCount;
//未收费数量
private Long unchargedCount;

View File

@ -1,6 +1,7 @@
package com.syjiaer.clinic.server.service.charge;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.syjiaer.clinic.server.common.api.annotations.IMField;
import com.syjiaer.clinic.server.common.api.input.*;
import com.syjiaer.clinic.server.common.api.output.OM2206A;
@ -882,6 +883,17 @@ public class ChargeService extends BaseService {
return;
}
//诊断状态改为已退费
Diagnosis diagnosis = diagnosisMapper.selectByCode(chargeOrder.getDiagnosisCode());
if (diagnosis == null){
throw new MessageException("诊断不存在");
}
UpdateWrapper<Diagnosis> diagnosisUpdate = new UpdateWrapper<>();
diagnosisUpdate.eq("id", diagnosis.getId());
diagnosisUpdate.set("status", DiagnosisStatusEnum.REFUND_FINISH.getStatus());
diagnosisMapper.update(diagnosisUpdate);
if (chargeOrder.getPayType().equals(RetailOrderPayTypeEnum.MEDICARE.getCode())) {
ChargeSocialPayLog socialPayLog = chargeSocialPayLogMapper.selectOne(new QueryWrapper<ChargeSocialPayLog>().eq("charge_order_code", chargeOrder.getCode()).last("limit 1"));
if (socialPayLog == null) {
@ -901,6 +913,8 @@ public class ChargeService extends BaseService {
updateOrder.setId(chargeOrder.getId());
updateOrder.setStatus(RetailOrderStatusEnum.REFUNDED.getCode());
chargeOrderMapper.updateById(updateOrder);
//记录退费日志
recordChargeLog(chargeOrder, ChargeSourceEnum.REFUND, ChargeTypeEnum.REFUND);
//库存添加回去
@ -978,6 +992,20 @@ public class ChargeService extends BaseService {
}
/**
* 根据诊断id和状态查询订单
* @param diagnosisCode
* @param status
* @return
*/
public ChargeOrder getOrderByDiagnosisCode(String diagnosisCode, Integer status) {
QueryWrapper<ChargeOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("diagnosis_code",diagnosisCode);
queryWrapper.eq("status",status);
queryWrapper.last("limit 1");
return chargeOrderMapper.selectOne(queryWrapper);
}
// public void recordSocialInfo(OM2103 om2103, RetailOrder dbOrder) {
// QueryWrapper<RetailSocialPayLog> logQuery = new QueryWrapper<>();
// logQuery.eq("retail_order_code", dbOrder.getCode());

View File

@ -212,15 +212,21 @@ public class StatisticsService extends BaseService {
QueryWrapper<Diagnosis> diagnosisWrapper = new QueryWrapper<>();
diagnosisWrapper.lt("create_time", endTime);
diagnosisWrapper.ge("create_time", beginTime);
diagnosisWrapper.eq("status", 0);
diagnosisWrapper.eq("status", DiagnosisStatusEnum.WAIT_CHARGE.getStatus());
tipCountVo.setUnchargedCount(diagnosisMapper.selectCount(diagnosisWrapper));
diagnosisWrapper = new QueryWrapper<>();
diagnosisWrapper.lt("create_time", endTime);
diagnosisWrapper.ge("create_time", beginTime);
diagnosisWrapper.eq("status", 1);
diagnosisWrapper.eq("status", DiagnosisStatusEnum.CHARGE_FINISH.getStatus());
tipCountVo.setChargedCount(diagnosisMapper.selectCount(diagnosisWrapper));
diagnosisWrapper = new QueryWrapper<>();
diagnosisWrapper.lt("create_time", endTime);
diagnosisWrapper.ge("create_time", beginTime);
diagnosisWrapper.eq("status", DiagnosisStatusEnum.REFUND_FINISH.getStatus());
tipCountVo.setRefundedCount(diagnosisMapper.selectCount(diagnosisWrapper));
return tipCountVo;