diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2204.java b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2204.java index 4de1cc8..d4ecfbf 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2204.java +++ b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2204.java @@ -18,7 +18,6 @@ import java.util.List; public class IM2204 extends BaseInputModel{ @IMField(key = "feedetail", name = "费用明细列表", required = true) private List feedetail; - @Data public static class Feedetail { @IMField(key = "feedetl_sn", name = "费用明细流水号", required = true) diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2206A.java b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2206A.java index 7968af1..8c0c06f 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2206A.java +++ b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2206A.java @@ -20,8 +20,7 @@ public class IM2206A extends BaseInputModel{ @IMField(key = "data", name = "数据", required = true) private Data data; - @Getter - @Setter + @lombok.Data public static class Data{ @IMField(key = "psn_no", name = "人员编号", required = true) private String psn_no; diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2207A.java b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2207A.java index bcf4dfd..278cc2f 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2207A.java +++ b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM2207A.java @@ -1,6 +1,7 @@ package com.syjiaer.clinic.server.common.api.input; import com.syjiaer.clinic.server.common.api.annotations.IMField; +import lombok.Data; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -16,8 +17,7 @@ public class IM2207A extends BaseInputModel{ @IMField(key = "data", name = "数据", required = true) private Data data; - @Getter - @Setter + @lombok.Data public static class Data{ @IMField(key = "psn_no", name = "人员编号", required = true) private String psn_no; 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 e4ba3bb..9463fa6 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 @@ -10,6 +10,7 @@ import com.syjiaer.clinic.server.entity.charge.ChargeLog; 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.service.charge.ChargeService; import com.syjiaer.clinic.server.service.charge.vo.RetailOrderDailyChargingReportVo; import org.springframework.beans.factory.annotation.Autowired; @@ -31,9 +32,14 @@ public class ChargeController extends BaseController { ChargeOrder chargeOrder = chargeService.save(dto); return success(chargeOrder.getCode()); } + @RequestMapping("/listDetail") + public Result> listDetail() { + ChargeQuery chargeQuery = parmsUtil.getObject("query", ChargeQuery.class); + return success(chargeService.pageDetailList(chargeQuery)); + } @RequestMapping("/list") - public Result list() { + public Result> list() { ChargeQuery chargeQuery = parmsUtil.getObject("query", ChargeQuery.class); return success(chargeService.pageList(chargeQuery)); } @@ -46,9 +52,9 @@ public class ChargeController extends BaseController { return success(); } @RequestMapping("/getByCode") - public Result getByCode() { + public Result getByCode() { String code = parmsUtil.getString("code"); - return success(chargeService.getByCode(code)); + return success(chargeService.getDetail(code)); } diff --git a/src/main/java/com/syjiaer/clinic/server/controller/patient/PatientController.java b/src/main/java/com/syjiaer/clinic/server/controller/patient/PatientController.java index 16c57ba..0e4e27a 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/patient/PatientController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/patient/PatientController.java @@ -83,4 +83,6 @@ public class PatientController extends BaseController { } + + } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientInfo.java b/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientInfo.java index 772ade2..a5f8d86 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientInfo.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/patient/PatientInfo.java @@ -19,7 +19,7 @@ import lombok.experimental.Accessors; *

* * @author NiuZiYuan - * @since 2025-04-30 + * @since 2025-05-07 */ @Getter @Setter @@ -88,4 +88,13 @@ public class PatientInfo implements Serializable { @ApiModelProperty("生日") private LocalDate birthday; + + @ApiModelProperty("最后就诊时间") + private LocalDateTime lastVisitTime; + + @ApiModelProperty("既往史") + private String beforeMedicalHistory; + + @ApiModelProperty("过敏史") + private String allergyHistory; } 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 f90a3e7..23edbd9 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 @@ -252,9 +252,23 @@ public class ChargeService extends BaseService { return chargeOrder; } + public Page pageDetailList(ChargeQuery query) { + Page page = pageList(query); + List detailList = new ArrayList<>(); + for (ChargeOrder chargeOrder : page.getList()){ + detailList.add(getDetail(chargeOrder.getCode())); + } + Page pageResult = new Page<>(); + pageResult.setTotal_page(page.getTotal_page()); + pageResult.setTotal_count(page.getTotal_count()); + pageResult.setList(detailList); + return pageResult; + + } - public Page pageList(ChargeQuery query) { + + public Page pageList(ChargeQuery query) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (query.getPageSize() == null || query.getPageSize() == 0) { query.setPageSize(Constants.DetailPageSize); @@ -265,26 +279,32 @@ public class ChargeService extends BaseService { if (query.getPatientName() != null) { queryWrapper.like("patient_name", query.getPatientName()); } - if (query.getPatientId() != null){ + if (query.getPatientId() != null) { queryWrapper.eq("patient_id", query.getPatientId()); } - Page orderPage = pageHelper(query.getPageNum(), query.getPageSize(), queryWrapper, chargeOrderMapper, "create_datetime", false); - List voList = new ArrayList<>(); - for (ChargeOrder chargeOrder : orderPage.getList()) { - ChargeDetailVo detailVo = new ChargeDetailVo(); - BeanUtils.copyProperties(chargeOrder, detailVo); - detailVo.setDiagnosisMedicalRecord(diagnosisMedicalRecordMapper.selectByDiagnosisCode(chargeOrder.getDiagnosisCode())); - detailVo.setPatientInfo(patientInfoMapper.selectById(chargeOrder.getPatientId())); - detailVo.setServiceDetail(chargeItemListMapper.selectByCode(chargeOrder.getCode())); + return pageHelper(query.getPageNum(), query.getPageSize(), queryWrapper, chargeOrderMapper, "create_datetime", false); + + } + + /** + * 获取订单详细信息 + * @param code + * @return + */ + public ChargeDetailVo getDetail(String code) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("code", code); + queryWrapper.last("limit 1"); + ChargeOrder chargeOrder = chargeOrderMapper.selectOne(queryWrapper); + ChargeDetailVo detailVo = new ChargeDetailVo(); + BeanUtils.copyProperties(chargeOrder, detailVo); + detailVo.setDiagnosisMedicalRecord(diagnosisMedicalRecordMapper.selectByDiagnosisCode(chargeOrder.getDiagnosisCode())); + detailVo.setPatientInfo(patientInfoMapper.selectById(chargeOrder.getPatientId())); + detailVo.setServiceDetail(chargeItemListMapper.selectByCode(chargeOrder.getCode())); + + detailVo.setGoodsDetail(chargeGoodsListMapper.selectByCode(chargeOrder.getCode())); + return detailVo; - detailVo.setGoodsDetail(chargeGoodsListMapper.selectByCode(chargeOrder.getCode())); - voList.add(detailVo); - } - Page resultPage = new Page<>(); - resultPage.setList(voList); - resultPage.setTotal_page(orderPage.getTotal_page()); - resultPage.setTotal_count(orderPage.getTotal_count()); - return resultPage; } // @Transactional(rollbackFor = Exception.class) @@ -352,7 +372,7 @@ public class ChargeService extends BaseService { log.setSocialType(InventorySocialTypeEnum.INVENTORY_SURPLUS.getType()); } inventoryLogMapper.insert(logs); - this.recordChargeInventoryLog(logs,order); + this.recordChargeInventoryLog(logs, order); } //记录收费日志 this.recordChargeLog(order, ChargeSourceEnum.CHARGE, ChargeTypeEnum.CHARGE); @@ -535,7 +555,7 @@ public class ChargeService extends BaseService { if (divisor.compareTo(BigDecimal.ZERO) == 0) { // 处理除数为零的情况,例如抛出自定义异常或返回默认值 value.setGrossProfitRate("0.00%"); - }else { + } else { value.setGrossProfitRate(String.format("%.2f%%", grossMargin.divide(value.getTotalMoney(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")))); } value.setDate(LocalDate.parse(key)); @@ -589,16 +609,16 @@ public class ChargeService extends BaseService { /** * 收款 退款 记录 */ - public void recordChargeLog(ChargeOrder chargeOrder, ChargeSourceEnum sourceEnum, ChargeTypeEnum chargeType){ - ChargeLog chargeLog = new ChargeLog(); + public void recordChargeLog(ChargeOrder chargeOrder, ChargeSourceEnum sourceEnum, ChargeTypeEnum chargeType) { + ChargeLog chargeLog = new ChargeLog(); String customer = null; - if (chargeOrder.getPatientId() != null){ + if (chargeOrder.getPatientId() != null) { PatientInfo patient = patientInfoMapper.selectById(chargeOrder.getPatientId()); customer = patient.getName(); - }else if (chargeOrder.getSocialUserId() != null){ + } else if (chargeOrder.getSocialUserId() != null) { SocialUser socialUser = socialUserMapper.selectById(chargeOrder.getSocialUserId()); customer = socialUser.getPsnName(); - }else { + } else { customer = "-"; } chargeLog.setSource(sourceEnum.getType()); @@ -609,7 +629,7 @@ public class ChargeService extends BaseService { chargeLog.setNetReceipts(chargeOrder.getTotalPrice()); chargeLog.setDiscount(chargeOrder.getTotalPrice().subtract(chargeOrder.getPreTotalPrice())); chargeLog.setPayType(chargeOrder.getPayType()); - if (chargeOrder.getSalePersonId() != null){ + if (chargeOrder.getSalePersonId() != null) { OrganizationMember organizationMember = organizationMemberMapper.selectById(chargeOrder.getSalePersonId()); chargeLog.setSalePersonName(organizationMember.getName()); chargeLog.setSalePersonId(chargeOrder.getSalePersonId()); @@ -618,12 +638,13 @@ public class ChargeService extends BaseService { chargeLog.setProjectCode(chargeOrder.getCode()); chargeLogMapper.insert(chargeLog); } + /** * 销售库存变更 日志 */ - public void recordChargeInventoryLog(List logs,ChargeOrder chargeOrder){ + public void recordChargeInventoryLog(List logs, ChargeOrder chargeOrder) { List chargeInventoryLogs = new ArrayList<>(); - for (InventoryLog log : logs){ + for (InventoryLog log : logs) { ChargeInventoryLog chargeInventoryLog = new ChargeInventoryLog(); chargeInventoryLog.setChargeOrderCode(chargeOrder.getCode()); chargeInventoryLog.setGoodsId(log.getGoodsId()); @@ -633,14 +654,14 @@ public class ChargeService extends BaseService { chargeInventoryLog.setTrdnFlag(false); chargeInventoryLog.setUnit(dbGoods.getPackagingUnit()); chargeInventoryLog.setNumber(log.getChangeWholeNumber()); - if (log.getChangeFragmentNumber() != 0 ){ + if (log.getChangeFragmentNumber() != 0) { chargeInventoryLog.setTrdnFlag(true); chargeInventoryLog.setUnit(dbGoods.getMinPackagingUnit()); - chargeInventoryLog.setNumber(log.getChangeWholeNumber()*dbGoods.getMinPackagingNumber()+log.getChangeFragmentNumber()); + chargeInventoryLog.setNumber(log.getChangeWholeNumber() * dbGoods.getMinPackagingNumber() + log.getChangeFragmentNumber()); } QueryWrapper listWrapper = new QueryWrapper<>(); - listWrapper.eq("charge_order_code",chargeOrder.getCode()); - listWrapper.eq("goods_id",log.getGoodsId()); + listWrapper.eq("charge_order_code", chargeOrder.getCode()); + listWrapper.eq("goods_id", log.getGoodsId()); ChargeGoodsList chargeGoodsList = chargeGoodsListMapper.selectOne(listWrapper); chargeInventoryLog.setFeedetlSn(chargeGoodsList.getFeedetlSn()); chargeInventoryLog.setCreateTime(LocalDateTime.now()); @@ -657,6 +678,7 @@ public class ChargeService extends BaseService { /** * 获取收费记录 + * * @return */ public Page getChargeRecordPageList() { @@ -664,4 +686,6 @@ public class ChargeService extends BaseService { Page page = pageHelper(1, 20, queryWrapper, chargeLogMapper, "charge_time", false); return page; } + + } diff --git a/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java b/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java index 7d412d3..9e018cf 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/diagnosis/MedicalRecordService.java @@ -181,6 +181,14 @@ public class MedicalRecordService extends BaseService { diagnosisMedicalGoodsListMapper.insert(goodsLists); + PatientInfo updatePatient = new PatientInfo(); + updatePatient.setId(saveDto.getPatientId()); + updatePatient.setLastVisitTime(now); + updatePatient.setAllergyHistory(saveDto.getDiagnosisMedicalRecord().getAllergyHistory()); + updatePatient.setBeforeMedicalHistory(saveDto.getDiagnosisMedicalRecord().getBeforeMedicalHistory()); + patientInfoMapper.updateById(updatePatient); + + System.out.println(saveDto.getDiagnosisMedicalRecord().getDiagnosisDetail()); List diagnoseList = JSONArray.parseArray(saveDto.getDiagnosisMedicalRecord().getDiagnosisDetail(),SocialDiagnose.class); socialDiagnoseService.updateNumAddOne(diagnoseList); diff --git a/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java b/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java index 8807615..69bf3c2 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java @@ -97,7 +97,11 @@ public class ItemService extends BaseService { public List search(String keyword){ QueryWrapper queryWrapper = new QueryWrapper<>(); if (keyword != null && !keyword.isEmpty()){ - queryWrapper.like("item_name", keyword.toUpperCase()); + String upperKeyword = keyword.toUpperCase(); + queryWrapper.like("item_name", upperKeyword); + queryWrapper.or().like("pinyin_full", upperKeyword); + queryWrapper.or().like("pinyin_first", upperKeyword); + } queryWrapper.orderByDesc("use_num","update_datetime"); queryWrapper.last("limit 20");