diff --git a/src/main/java/com/syjiaer/clinic/server/controller/charge/ChargeController.java b/src/main/java/com/syjiaer/clinic/server/controller/charge/ChargeController.java index e59cc43..64e7d94 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/charge/ChargeController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/charge/ChargeController.java @@ -12,6 +12,7 @@ import com.syjiaer.clinic.server.entity.charge.ChargeOrder; import com.syjiaer.clinic.server.entity.charge.dto.ChargeQuery; import com.syjiaer.clinic.server.entity.charge.dto.ChargeSaveDto; import com.syjiaer.clinic.server.entity.charge.vo.ChargeDetailVo; +import com.syjiaer.clinic.server.entity.charge.vo.ChargeOrderPrintVo; import com.syjiaer.clinic.server.service.charge.ChargeService; import com.syjiaer.clinic.server.service.charge.vo.RetailOrderDailyChargingReportVo; import org.springframework.beans.factory.annotation.Autowired; @@ -182,4 +183,15 @@ public class ChargeController extends BaseController { return success(chargeLogs); } + + /** + * 根据订单号获取订单详情 小票打印用 + */ + @RequestMapping("getPrintInfoByCode") + public Result getDetailByCode() { + String code = parmsUtil.getString("code", "订单号不能为空"); + return success(chargeService.getPrintInfoByCode(code)); + } + + } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/charge/vo/ChargeOrderPrintVo.java b/src/main/java/com/syjiaer/clinic/server/entity/charge/vo/ChargeOrderPrintVo.java new file mode 100644 index 0000000..f973dcd --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/entity/charge/vo/ChargeOrderPrintVo.java @@ -0,0 +1,22 @@ +package com.syjiaer.clinic.server.entity.charge.vo; + +import com.syjiaer.clinic.server.entity.charge.ChargeGoodsList; +import com.syjiaer.clinic.server.entity.charge.ChargeItemList; +import com.syjiaer.clinic.server.entity.charge.ChargeOrder; +import com.syjiaer.clinic.server.entity.charge.ChargeSocialPayLog; +import com.syjiaer.clinic.server.entity.patient.PatientInfo; +import com.syjiaer.clinic.server.service.charge.ChargeService; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +@Data +public class ChargeOrderPrintVo { + private String sortName; + private ChargePrintOrderVo chargeOrder; + private PatientPrintInfoVo patientInfo; + private List chargeGoodsLists; + private List chargeItemLists; + private ChargeSocialPayLog chargeSocialPayLog; +} diff --git a/src/main/java/com/syjiaer/clinic/server/entity/charge/vo/ChargePrintOrderVo.java b/src/main/java/com/syjiaer/clinic/server/entity/charge/vo/ChargePrintOrderVo.java new file mode 100644 index 0000000..c4005c8 --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/entity/charge/vo/ChargePrintOrderVo.java @@ -0,0 +1,42 @@ +package com.syjiaer.clinic.server.entity.charge.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +@Data +public class ChargePrintOrderVo { + private Integer id; + + private String code; + + private Integer managerUserId; + + private BigDecimal preTotalPrice; + + private BigDecimal totalPrice; + + private LocalDateTime createDatetime; + + private Integer status; + + private Integer payType; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime payTime; + + private Integer patientId; + + private Integer socialUserId; + + private String diagnosisCode; + + private LocalDate createDate; + + private BigDecimal totalCost; + + private Integer salePersonId; + + private String salePersonName; +} diff --git a/src/main/java/com/syjiaer/clinic/server/entity/charge/vo/PatientPrintInfoVo.java b/src/main/java/com/syjiaer/clinic/server/entity/charge/vo/PatientPrintInfoVo.java new file mode 100644 index 0000000..9f8659b --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/entity/charge/vo/PatientPrintInfoVo.java @@ -0,0 +1,61 @@ +package com.syjiaer.clinic.server.entity.charge.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +@Data +public class PatientPrintInfoVo { + private Integer id; + + private String name; + + private String phone; + + private String certNo; + + private Integer sex; + private String sexStr; + + private Integer age; + + private String certType; + + private String source; + + private String nation; + + private String area; + + private String address; + + private String remark; + + private LocalDateTime createDatetime; + + private Integer levelId; + + private Integer exp; + + private Integer integralBalance; + + private Integer isBindSocial; + + private BigDecimal balance; + + private LocalDate birthday; + + private LocalDateTime lastVisitTime; + + private String beforeMedicalHistory; + + private String allergyHistory; + + private BigDecimal socialBalance; + + private String insutype; +} diff --git a/src/main/java/com/syjiaer/clinic/server/mapper/charge/ChargeSocialPayLogMapper.java b/src/main/java/com/syjiaer/clinic/server/mapper/charge/ChargeSocialPayLogMapper.java index e6c41fc..59b4e2a 100644 --- a/src/main/java/com/syjiaer/clinic/server/mapper/charge/ChargeSocialPayLogMapper.java +++ b/src/main/java/com/syjiaer/clinic/server/mapper/charge/ChargeSocialPayLogMapper.java @@ -2,6 +2,7 @@ package com.syjiaer.clinic.server.mapper.charge; import com.syjiaer.clinic.server.entity.charge.ChargeSocialPayLog; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; /** @@ -13,6 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @since 2025-05-09 */ public interface ChargeSocialPayLogMapper extends BaseMapper { - + @Select("select * from charge_social_pay_log WHERE charge_order_code = #{code}") + ChargeSocialPayLog selectByCode(String code); } diff --git a/src/main/java/com/syjiaer/clinic/server/service/charge/ChargeService.java b/src/main/java/com/syjiaer/clinic/server/service/charge/ChargeService.java index a65da32..dbfb035 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/charge/ChargeService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/charge/ChargeService.java @@ -18,9 +18,7 @@ import com.syjiaer.clinic.server.common.vo.Page; import com.syjiaer.clinic.server.entity.charge.*; import com.syjiaer.clinic.server.entity.charge.dto.ChargeQuery; import com.syjiaer.clinic.server.entity.charge.dto.ChargeSaveDto; -import com.syjiaer.clinic.server.entity.charge.vo.ChargeDetailVo; -import com.syjiaer.clinic.server.entity.charge.vo.ChargeGoodsListVo; -import com.syjiaer.clinic.server.entity.charge.vo.ChargeItemListVo; +import com.syjiaer.clinic.server.entity.charge.vo.*; import com.syjiaer.clinic.server.entity.diagnosis.Diagnosis; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalGoodsList; import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList; @@ -932,6 +930,46 @@ public class ChargeService extends BaseService { } } + /** + * 根据订单号获取订单详情 小票打印用 + */ + public ChargeOrderPrintVo getPrintInfoByCode(String code) { + ChargeOrder dbChargeOrder = chargeOrderMapper.selectByCode(code); + if (dbChargeOrder == null) { + throw new MessageException("订单不存在"); + } + List chargeGoodsLists = chargeGoodsListMapper.selectByCode(code); + List chargeItemLists = chargeItemListMapper.selectByCode(code); + ChargeSocialPayLog socialPayLog = chargeSocialPayLogMapper.selectByCode(code); + + + PatientInfo patientInfo = patientInfoMapper.selectById(dbChargeOrder.getPatientId()); + + String sortName = config.get("common", "sortName"); + ChargeOrderPrintVo chargeOrderPrintVo = new ChargeOrderPrintVo(); + chargeOrderPrintVo.setSortName(sortName); + ChargePrintOrderVo chargePrintOrderVo = new ChargePrintOrderVo(); + BeanUtils.copyProperties(dbChargeOrder, chargePrintOrderVo); + OrganizationMember organizationMember = organizationMemberMapper.selectById(dbChargeOrder.getSalePersonId()); + if (organizationMember != null){ + chargePrintOrderVo.setSalePersonName(organizationMember.getName()); + } + chargeOrderPrintVo.setChargeOrder(chargePrintOrderVo); + chargeOrderPrintVo.setChargeGoodsLists(chargeGoodsLists); + chargeOrderPrintVo.setChargeItemLists(chargeItemLists); + chargeOrderPrintVo.setChargeSocialPayLog(socialPayLog); + PatientPrintInfoVo patientPrintInfoVo = new PatientPrintInfoVo(); + if (patientInfo != null){ + BeanUtils.copyProperties(patientInfo, patientPrintInfoVo); + patientPrintInfoVo.setSexStr(patientInfo.getSex() == 1?"男":"女"); + } + + + + chargeOrderPrintVo.setPatientInfo(patientPrintInfoVo); + return chargeOrderPrintVo; + + } // public void recordSocialInfo(OM2103 om2103, RetailOrder dbOrder) { // QueryWrapper logQuery = new QueryWrapper<>();