HuRongxin 2 ヶ月 前
コミット
4de9666578
51 ファイル変更1958 行追加83 行削除
  1. 106 0
      ruoyi-admin/src/main/java/org/dromara/web/controller/ChargeRecordController.java
  2. 105 0
      ruoyi-admin/src/main/java/org/dromara/web/controller/ChargeSetController.java
  3. 1 1
      ruoyi-admin/src/main/java/org/dromara/web/controller/HospitalRecordController.java
  4. 4 4
      ruoyi-admin/src/main/java/org/dromara/web/controller/NutritionEvaluationController.java
  5. 4 4
      ruoyi-admin/src/main/java/org/dromara/web/controller/NutritionScreeningController.java
  6. 9 0
      ruoyi-admin/src/main/java/org/dromara/web/controller/SettlementController.java
  7. 149 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/ChargeRecord.java
  8. 86 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/ChargeSet.java
  9. 6 1
      ruoyi-admin/src/main/java/org/dromara/web/domain/NutritionEvaluation.java
  10. 6 1
      ruoyi-admin/src/main/java/org/dromara/web/domain/NutritionScreening.java
  11. 16 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/Settlement.java
  12. 4 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/TreatmentUser.java
  13. 143 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/bo/ChargeRecordBo.java
  14. 96 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/bo/ChargeSetBo.java
  15. 8 3
      ruoyi-admin/src/main/java/org/dromara/web/domain/bo/NutritionEvaluationBo.java
  16. 7 4
      ruoyi-admin/src/main/java/org/dromara/web/domain/bo/NutritionScreeningBo.java
  17. 10 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/bo/SettlementBo.java
  18. 3 1
      ruoyi-admin/src/main/java/org/dromara/web/domain/bo/TreatmentUserBo.java
  19. 18 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/vo/ChargeItemVo.java
  20. 175 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/vo/ChargeRecordVo.java
  21. 103 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/vo/ChargeSetVo.java
  22. 4 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EnteralNutritionVo.java
  23. 7 4
      ruoyi-admin/src/main/java/org/dromara/web/domain/vo/NutritionEvaluationVo.java
  24. 7 4
      ruoyi-admin/src/main/java/org/dromara/web/domain/vo/NutritionScreeningVo.java
  25. 38 0
      ruoyi-admin/src/main/java/org/dromara/web/domain/vo/SettlementVo.java
  26. 4 1
      ruoyi-admin/src/main/java/org/dromara/web/domain/vo/TreatmentUserVo.java
  27. 2 2
      ruoyi-admin/src/main/java/org/dromara/web/domain/vo/hospitalRecord/EntityFieldRegistry.java
  28. 17 0
      ruoyi-admin/src/main/java/org/dromara/web/mapper/ChargeRecordMapper.java
  29. 18 0
      ruoyi-admin/src/main/java/org/dromara/web/mapper/ChargeSetMapper.java
  30. 6 3
      ruoyi-admin/src/main/java/org/dromara/web/mapper/NutritionEvaluationMapper.java
  31. 6 3
      ruoyi-admin/src/main/java/org/dromara/web/mapper/NutritionScreeningMapper.java
  32. 69 0
      ruoyi-admin/src/main/java/org/dromara/web/service/IChargeRecordService.java
  33. 69 0
      ruoyi-admin/src/main/java/org/dromara/web/service/IChargeSetService.java
  34. 4 3
      ruoyi-admin/src/main/java/org/dromara/web/service/INutritionEvaluationService.java
  35. 4 3
      ruoyi-admin/src/main/java/org/dromara/web/service/INutritionScreeningService.java
  36. 10 0
      ruoyi-admin/src/main/java/org/dromara/web/service/ISettlementService.java
  37. 153 0
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/ChargeRecordServiceImpl.java
  38. 151 0
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/ChargeSetServiceImpl.java
  39. 4 0
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/EnteralNutritionServiceImpl.java
  40. 2 2
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/HospitalRecordServiceImpl.java
  41. 58 12
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/NutritionEvaluationServiceImpl.java
  42. 58 19
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/NutritionScreeningServiceImpl.java
  43. 132 6
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/SettlementServiceImpl.java
  44. 12 0
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/TreatmentUserServiceImpl.java
  45. 7 0
      ruoyi-admin/src/main/resources/mapper/ChargeRecordMapper.xml
  46. 1 1
      ruoyi-admin/src/main/resources/mapper/NutritionEvaluationMapper.xml
  47. 1 1
      ruoyi-admin/src/main/resources/mapper/NutritionScreeningMapper.xml
  48. 7 0
      ruoyi-admin/src/main/resources/mapper/parameter/ChargeSetMapper.xml
  49. 7 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/BizConst.java
  50. 19 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/biz/ChargeWay.java
  51. 22 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/biz/CheckStatus.java

+ 106 - 0
ruoyi-admin/src/main/java/org/dromara/web/controller/ChargeRecordController.java

@@ -0,0 +1,106 @@
+package org.dromara.web.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.web.domain.bo.ChargeRecordBo;
+import org.dromara.web.domain.vo.ChargeRecordVo;
+import org.dromara.web.service.IChargeRecordService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 收费记录
+ *
+ * @author Lion Li
+ * @date 2025-08-06
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/settlement/chargeRecord")
+public class ChargeRecordController extends BaseController {
+
+    private final IChargeRecordService chargeRecordService;
+
+    /**
+     * 查询收费记录列表
+     */
+    @SaCheckPermission("settlement:chargeRecord:list")
+    @GetMapping("/list")
+    public TableDataInfo<ChargeRecordVo> list(ChargeRecordBo bo, PageQuery pageQuery) {
+        return chargeRecordService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出收费记录列表
+     */
+    @SaCheckPermission("settlement:chargeRecord:export")
+    @Log(title = "收费记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(ChargeRecordBo bo, HttpServletResponse response) {
+        List<ChargeRecordVo> list = chargeRecordService.queryList(bo);
+        ExcelUtil.exportExcel(list, "收费记录", ChargeRecordVo.class, response);
+    }
+
+    /**
+     * 获取收费记录详细信息
+     *
+     * @param id 主键
+     */
+    @SaCheckPermission("settlement:chargeRecord:query")
+    @GetMapping("/{id}")
+    public R<ChargeRecordVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long id) {
+        return R.ok(chargeRecordService.queryById(id));
+    }
+
+    /**
+     * 新增收费记录
+     */
+    @SaCheckPermission("settlement:chargeRecord:add")
+    @Log(title = "收费记录", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody ChargeRecordBo bo) {
+        return toAjax(chargeRecordService.insertByBo(bo));
+    }
+
+    /**
+     * 修改收费记录
+     */
+    @SaCheckPermission("settlement:chargeRecord:edit")
+    @Log(title = "收费记录", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody ChargeRecordBo bo) {
+        return toAjax(chargeRecordService.updateByBo(bo));
+    }
+
+    /**
+     * 删除收费记录
+     *
+     * @param ids 主键串
+     */
+    @SaCheckPermission("settlement:chargeRecord:remove")
+    @Log(title = "收费记录", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] ids) {
+        return toAjax(chargeRecordService.deleteWithValidByIds(List.of(ids), true));
+    }
+}

+ 105 - 0
ruoyi-admin/src/main/java/org/dromara/web/controller/ChargeSetController.java

@@ -0,0 +1,105 @@
+package org.dromara.web.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.web.domain.bo.ChargeSetBo;
+import org.dromara.web.domain.vo.ChargeSetVo;
+import org.dromara.web.service.IChargeSetService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 收费设置
+ *
+ * @author Lion Li
+ * @date 2025-08-04
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/parameter/chargeSet")
+public class ChargeSetController extends BaseController {
+
+    private final IChargeSetService chargeSetService;
+
+    /**
+     * 查询收费设置列表
+     */
+    @SaCheckPermission("parameter:chargeSet:list")
+    @GetMapping("/list")
+    public TableDataInfo<ChargeSetVo> list(ChargeSetBo bo, PageQuery pageQuery) {
+        return chargeSetService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出收费设置列表
+     */
+    @SaCheckPermission("parameter:chargeSet:export")
+    @Log(title = "收费设置", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(ChargeSetBo bo, HttpServletResponse response) {
+        List<ChargeSetVo> list = chargeSetService.queryList(bo);
+        ExcelUtil.exportExcel(list, "收费设置", ChargeSetVo.class, response);
+    }
+
+    /**
+     * 获取收费设置详细信息
+     *
+     * @param chargeId 主键
+     */
+    @SaCheckPermission("parameter:chargeSet:query")
+    @GetMapping("/{chargeId}")
+    public R<ChargeSetVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long chargeId) {
+        return R.ok(chargeSetService.queryById(chargeId));
+    }
+
+    /**
+     * 新增收费设置
+     */
+    @SaCheckPermission("parameter:chargeSet:add")
+    @Log(title = "收费设置", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody ChargeSetBo bo) {
+        return toAjax(chargeSetService.insertByBo(bo));
+    }
+
+    /**
+     * 修改收费设置
+     */
+    @SaCheckPermission("parameter:chargeSet:edit")
+    @Log(title = "收费设置", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody ChargeSetBo bo) {
+        return toAjax(chargeSetService.updateByBo(bo));
+    }
+
+    /**
+     * 删除收费设置
+     *
+     * @param chargeIds 主键串
+     */
+    @SaCheckPermission("parameter:chargeSet:remove")
+    @Log(title = "收费设置", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{chargeIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] chargeIds) {
+        return toAjax(chargeSetService.deleteWithValidByIds(List.of(chargeIds), true));
+    }
+}

+ 1 - 1
ruoyi-admin/src/main/java/org/dromara/web/controller/HospitalRecordController.java

@@ -23,7 +23,7 @@ public class HospitalRecordController {
     private final IHospitalRecordService hospitalRecordService;
 
     /**
-     * 查询营养诊断列表
+     * 查询就诊记录信息
      */
     @SaCheckPermission("patients:hospitalRecord:list")
     @GetMapping("/list")

+ 4 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/NutritionEvaluationController.java → ruoyi-admin/src/main/java/org/dromara/web/controller/NutritionEvaluationController.java

@@ -1,4 +1,4 @@
-package org.dromara.system.controller.system;
+package org.dromara.web.controller;
 
 import java.util.List;
 
@@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.web.domain.bo.NutritionEvaluationBo;
+import org.dromara.web.domain.vo.NutritionEvaluationVo;
+import org.dromara.web.service.INutritionEvaluationService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -17,9 +20,6 @@ import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.system.domain.vo.NutritionEvaluationVo;
-import org.dromara.system.domain.bo.NutritionEvaluationBo;
-import org.dromara.system.service.INutritionEvaluationService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
 /**

+ 4 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/NutritionScreeningController.java → ruoyi-admin/src/main/java/org/dromara/web/controller/NutritionScreeningController.java

@@ -1,4 +1,4 @@
-package org.dromara.system.controller.system;
+package org.dromara.web.controller;
 
 import java.util.List;
 
@@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.web.domain.bo.NutritionScreeningBo;
+import org.dromara.web.domain.vo.NutritionScreeningVo;
+import org.dromara.web.service.INutritionScreeningService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -17,9 +20,6 @@ import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.system.domain.vo.NutritionScreeningVo;
-import org.dromara.system.domain.bo.NutritionScreeningBo;
-import org.dromara.system.service.INutritionScreeningService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
 /**

+ 9 - 0
ruoyi-admin/src/main/java/org/dromara/web/controller/SettlementController.java

@@ -53,6 +53,15 @@ public class SettlementController extends BaseController {
         return settlementService.queryPageList(bo, pageQuery);
     }
 
+    /**
+     * 查询处方审核列表
+     */
+    @SaCheckPermission("system:settlement:list")
+    @GetMapping("/queryRecipeCheckList")
+    public TableDataInfo<SettlementVo> queryRecipeCheckList(SettlementBo bo, PageQuery pageQuery) {
+        return settlementService.queryCheckRecipePageList(bo, pageQuery);
+    }
+
     /**
      * 导出结算管理列表
      */

+ 149 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/ChargeRecord.java

@@ -0,0 +1,149 @@
+package org.dromara.web.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serial;
+
+/**
+ * 收费记录对象 charge_record
+ *
+ * @author Lion Li
+ * @date 2025-08-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("charge_record")
+public class ChargeRecord extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 处方id
+     */
+    private Long settlementId;
+
+    /**
+     * 开单时间
+     */
+    private Date orderTime;
+
+    /**
+     * 看诊类型
+     */
+    private String visitType;
+
+    /**
+     * 收费类型
+     */
+    private String chargeType;
+
+    /**
+     * 患者ID
+     */
+    private Long patientId;
+
+    /**
+     * 患者姓名
+     */
+    private String patientName;
+
+    /**
+     * 患者科室
+     */
+    private Long doorId;
+
+    /**
+     * 门诊/住院号
+     */
+    private String patientNo;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 订单金额
+     */
+    private Long receivableAmount;
+
+    /**
+     * 实收金额
+     */
+    private Long fundsReceived;
+
+    /**
+     * 退费金额
+     */
+    private Long refundAmount;
+
+    /**
+     * 支付状态(未支付/已支付/已退款)
+     */
+    private String paymentStatus;
+
+    /**
+     * 支付方式
+     */
+    private String paymentMethod;
+
+    /**
+     * 床号
+     */
+    private String bedNo;
+
+    /**
+     * 退费时间
+     */
+    private Date refundTime;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 病区
+     */
+    private Long wardId;
+
+    /**
+     * 病区名称
+     */
+    private String wardName;
+
+    /**
+     * 诊疗卡号
+     */
+    private String treatNum;
+
+    /**
+     * 删除标志(0代表存在 1代表删除)
+     */
+    @TableLogic
+    private String delFlag;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 86 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/ChargeSet.java

@@ -0,0 +1,86 @@
+package org.dromara.web.domain;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 收费设置对象 charge_set
+ *
+ * @author Lion Li
+ * @date 2025-08-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("charge_set")
+public class ChargeSet extends BaseEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "charge_id")
+    private Long chargeId;
+
+    /**
+     * 服务商
+     */
+    private Long servicer;
+
+    /**
+     * 是否开启现金收费
+     */
+    private Long moneyCharge;
+
+    /**
+     * 收费模式
+     */
+    private Long chargeMode;
+
+    /**
+     * 收费方式 1单项收费 2 组合收费
+     */
+    private Long chargeType;
+
+    /**
+     * 单项收费配置
+     */
+    private String oneWayCharge;
+
+    /**
+     * 组合收费配置
+     */
+    private String groupCharge;
+
+    /**
+     * 营养配置收费设置
+     */
+    private Long nutritionChargeSet;
+
+    /**
+     * 适合处方类型
+     */
+    private String suitRecipe;
+
+    /**
+     * 患者订单配置
+     */
+    private Long patientOrderSet;
+
+    /**
+     * 订单有效期
+     */
+    private Long orderIndate;
+
+    /**
+     * 多模式收费配置
+     */
+    private String multiModeCharge;
+
+
+}

+ 6 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/NutritionEvaluation.java → ruoyi-admin/src/main/java/org/dromara/web/domain/NutritionEvaluation.java

@@ -1,4 +1,4 @@
-package org.dromara.system.domain;
+package org.dromara.web.domain;
 
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.*;
@@ -29,6 +29,11 @@ public class NutritionEvaluation extends BaseEntity {
     @TableId(value = "id")
     private Long id;
 
+    /**
+     * 结算管理id
+     */
+    private Long settlementId;
+
     /**
      * 患者ID
      */

+ 6 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/NutritionScreening.java → ruoyi-admin/src/main/java/org/dromara/web/domain/NutritionScreening.java

@@ -1,4 +1,4 @@
-package org.dromara.system.domain;
+package org.dromara.web.domain;
 
 import org.dromara.common.tenant.core.TenantEntity;
 import com.baomidou.mybatisplus.annotation.*;
@@ -31,6 +31,11 @@ public class NutritionScreening extends TenantEntity {
     @TableId(value = "id")
     private Long id;
 
+    /**
+     * 结算管理id
+     */
+    private Long settlementId;
+
     /**
      * 患者ID
      */

+ 16 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/Settlement.java

@@ -76,6 +76,17 @@ public class Settlement extends TenantEntity {
      */
     private String idCard;
 
+    /*床号*/
+    private String bedNo;
+
+    /*病区*/
+    private Long wardId;
+
+    private String wardName;
+
+    /*诊疗卡号*/
+    private String treatNum;
+
     /**
      * 应收金额
      */
@@ -103,4 +114,9 @@ public class Settlement extends TenantEntity {
      */
 //    @TableLogic
     private String delFlag;
+
+    /*审核状态 1待审核 2 审核通过*/
+    private String checkStatus;
+
+    private String remark;
 }

+ 4 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/TreatmentUser.java

@@ -127,5 +127,9 @@ public class TreatmentUser extends BaseEntity {
      */
     private String evaluationStatus;
 
+    private Long wardId;
+
+    private String wardName;
+
 
 }

+ 143 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/bo/ChargeRecordBo.java

@@ -0,0 +1,143 @@
+package org.dromara.web.domain.bo;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.web.domain.ChargeRecord;
+
+/**
+ * 收费记录业务对象 charge_record
+ *
+ * @author Lion Li
+ * @date 2025-08-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = ChargeRecord.class, reverseConvertGenerate = false)
+public class ChargeRecordBo extends BaseEntity {
+
+    /**
+     * 主键ID
+     */
+    @NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 处方id
+     */
+    @NotNull(message = "处方id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long settlementId;
+
+    /**
+     * 开单时间
+     */
+    private Date orderTime;
+
+    /**
+     * 看诊类型
+     */
+    private String visitType;
+
+    /**
+     * 收费类型
+     */
+    private String chargeType;
+
+    /**
+     * 患者ID
+     */
+    private Long patientId;
+
+    /**
+     * 患者姓名
+     */
+    private String patientName;
+
+    /**
+     * 患者科室
+     */
+    private Long doorId;
+
+    /**
+     * 门诊/住院号
+     */
+    private String patientNo;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 订单金额
+     */
+    private Long receivableAmount;
+
+    /**
+     * 实收金额
+     */
+    private Long fundsReceived;
+
+    /**
+     * 退费金额
+     */
+    private Long refundAmount;
+
+    /**
+     * 支付状态(未支付/已支付/已退款)
+     */
+    private String paymentStatus;
+
+    /**
+     * 支付方式
+     */
+    private String paymentMethod;
+
+    /**
+     * 床号
+     */
+    private String bedNo;
+
+    /**
+     * 退费时间
+     */
+    private Date refundTime;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 病区
+     */
+    private Long wardId;
+
+    /**
+     * 病区名称
+     */
+    private String wardName;
+
+    /**
+     * 诊疗卡号
+     */
+    private String treatNum;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 96 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/bo/ChargeSetBo.java

@@ -0,0 +1,96 @@
+package org.dromara.web.domain.bo;
+
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import org.dromara.web.domain.ChargeSet;
+import org.dromara.web.domain.vo.ChargeItemVo;
+
+import java.util.List;
+
+/**
+ * 收费设置业务对象 charge_set
+ *
+ * @author Lion Li
+ * @date 2025-08-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = ChargeSet.class, reverseConvertGenerate = false)
+public class ChargeSetBo extends BaseEntity {
+
+    /**
+     * 主键id
+     */
+    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
+    private Long chargeId;
+
+    /**
+     * 服务商
+     */
+    @NotNull(message = "服务商不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long servicer;
+
+    /**
+     * 是否开启现金收费
+     */
+    @NotNull(message = "是否开启现金收费不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long moneyCharge;
+
+    /**
+     * 收费模式
+     */
+    @NotNull(message = "收费模式不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long chargeMode;
+
+    /**
+     * 收费方式 1单项收费 2 组合收费
+     */
+    @NotNull(message = "收费方式 1单项收费 2 组合收费不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long chargeType;
+
+    /**
+     * 单项收费配置
+     */
+    private String oneWayCharge;
+
+    /**
+     * 组合收费配置
+     */
+    private String groupCharge;
+
+    /**
+     * 营养配置收费设置
+     */
+    @NotNull(message = "营养配置收费设置不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long nutritionChargeSet;
+
+    /**
+     * 适合处方类型
+     */
+    @NotBlank(message = "适合处方类型不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String suitRecipe;
+
+    /**
+     * 患者订单配置
+     */
+    private Long patientOrderSet;
+
+    /**
+     * 订单有效期
+     */
+    private Long orderIndate;
+
+    /**
+     * 多模式收费配置
+     */
+    private String multiModeCharge;
+
+    private List<ChargeItemVo> chargeItemArr;
+
+
+}

+ 8 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/NutritionEvaluationBo.java → ruoyi-admin/src/main/java/org/dromara/web/domain/bo/NutritionEvaluationBo.java

@@ -1,6 +1,5 @@
-package org.dromara.system.domain.bo;
+package org.dromara.web.domain.bo;
 
-import org.dromara.system.domain.NutritionEvaluation;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
@@ -8,8 +7,9 @@ import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
+import org.dromara.web.domain.NutritionEvaluation;
+
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 营养评估业务对象 nutrition_evaluation
@@ -28,6 +28,11 @@ public class NutritionEvaluationBo extends BaseEntity {
     @NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
     private Long id;
 
+    /**
+     * 结算管理id
+     */
+    private Long settlementId;
+
     /**
      * 患者ID
      */

+ 7 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/NutritionScreeningBo.java → ruoyi-admin/src/main/java/org/dromara/web/domain/bo/NutritionScreeningBo.java

@@ -1,6 +1,5 @@
-package org.dromara.system.domain.bo;
+package org.dromara.web.domain.bo;
 
-import org.dromara.system.domain.NutritionScreening;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
@@ -8,12 +7,11 @@ import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
+import org.dromara.web.domain.NutritionScreening;
 
 import java.math.BigDecimal;
 import java.util.Date;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-
 /**
  * 营养筛查业务对象 nutrition_screening
  *
@@ -31,6 +29,11 @@ public class NutritionScreeningBo extends BaseEntity {
     @NotNull(message = "主键ID不能为空", groups = {EditGroup.class})
     private Long id;
 
+    /**
+     * 结算管理id
+     */
+    private Long settlementId;
+
     /**
      * 患者ID
      */

+ 10 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/bo/SettlementBo.java

@@ -9,6 +9,7 @@ import jakarta.validation.constraints.*;
 import org.dromara.web.domain.Settlement;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 结算管理业务对象 settlement
@@ -87,10 +88,19 @@ public class SettlementBo extends BaseEntity {
      */
     private String paymentMethod;
 
+    private Long doorId;
+
     /**
      * 状态(0正常 1停用 2草稿)
      */
     private String status;
 
+    /*审核状态 1待审核 2 审核通过*/
+    private String checkStatus;
+
+    private List<Date> dateRange;
+
+    private String remark;
+
 
 }

+ 3 - 1
ruoyi-admin/src/main/java/org/dromara/web/domain/bo/TreatmentUserBo.java

@@ -111,7 +111,9 @@ public class TreatmentUserBo extends BaseEntity {
     /**
      * 病区
      */
-    private String inpatientWard;
+    private Long wardId;
+
+    private String wardName;
 
     /**
      * 入院时间

+ 18 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/ChargeItemVo.java

@@ -0,0 +1,18 @@
+package org.dromara.web.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+public class ChargeItemVo implements Serializable {
+    /*收费项目名称*/
+    private String name;
+
+    /*项目编码*/
+    private String code;
+
+    /*价格*/
+    private BigDecimal price;
+}

+ 175 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/ChargeRecordVo.java

@@ -0,0 +1,175 @@
+package org.dromara.web.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
+import cn.idev.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.web.domain.ChargeRecord;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 收费记录视图对象 charge_record
+ *
+ * @author Lion Li
+ * @date 2025-08-06
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = ChargeRecord.class)
+public class ChargeRecordVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @ExcelProperty(value = "主键ID")
+    private Long id;
+
+    /**
+     * 处方id
+     */
+    @ExcelProperty(value = "处方id")
+    private Long settlementId;
+
+    /**
+     * 开单时间
+     */
+    @ExcelProperty(value = "开单时间")
+    private Date orderTime;
+
+    /**
+     * 看诊类型
+     */
+    @ExcelProperty(value = "看诊类型")
+    private String visitType;
+
+    /**
+     * 收费类型
+     */
+    @ExcelProperty(value = "收费类型")
+    private String chargeType;
+
+    /**
+     * 患者ID
+     */
+    @ExcelProperty(value = "患者ID")
+    private Long patientId;
+
+    /**
+     * 患者姓名
+     */
+    @ExcelProperty(value = "患者姓名")
+    private String patientName;
+
+    /**
+     * 患者科室
+     */
+    private Long doorId;
+
+    @ExcelProperty(value = "患者科室")
+    private String patientDepartment;
+
+    /**
+     * 门诊/住院号
+     */
+    @ExcelProperty(value = "门诊/住院号")
+    private String patientNo;
+
+    /**
+     * 联系电话
+     */
+    @ExcelProperty(value = "联系电话")
+    private String phone;
+
+    /**
+     * 身份证号
+     */
+    @ExcelProperty(value = "身份证号")
+    private String idCard;
+
+    /**
+     * 订单金额
+     */
+    @ExcelProperty(value = "订单金额")
+    private Long receivableAmount;
+
+    /**
+     * 实收金额
+     */
+    @ExcelProperty(value = "实收金额")
+    private Long fundsReceived;
+
+    /**
+     * 退费金额
+     */
+    @ExcelProperty(value = "退费金额")
+    private Long refundAmount;
+
+    /**
+     * 支付状态(未支付/已支付/已退款)
+     */
+    @ExcelProperty(value = "支付状态(未支付/已支付/已退款)")
+    private String paymentStatus;
+
+    /**
+     * 支付方式
+     */
+    @ExcelProperty(value = "支付方式")
+    private String paymentMethod;
+
+    /**
+     * 床号
+     */
+    @ExcelProperty(value = "床号")
+    private String bedNo;
+
+    /**
+     * 退费时间
+     */
+    @ExcelProperty(value = "退费时间")
+    private Date refundTime;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(readConverterExp = "0=正常,1=停用")
+    private String status;
+
+    /**
+     * 病区
+     */
+    @ExcelProperty(value = "病区")
+    private Long wardId;
+
+    /**
+     * 病区名称
+     */
+    @ExcelProperty(value = "病区名称")
+    private String wardName;
+
+    /**
+     * 诊疗卡号
+     */
+    @ExcelProperty(value = "诊疗卡号")
+    private String treatNum;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 103 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/ChargeSetVo.java

@@ -0,0 +1,103 @@
+package org.dromara.web.domain.vo;
+
+import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
+import cn.idev.excel.annotation.ExcelProperty;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.web.domain.ChargeSet;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+
+/**
+ * 收费设置视图对象 charge_set
+ *
+ * @author Lion Li
+ * @date 2025-08-04
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = ChargeSet.class)
+public class ChargeSetVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ExcelProperty(value = "主键id")
+    private Long chargeId;
+
+    /**
+     * 服务商
+     */
+    @ExcelProperty(value = "服务商")
+    private Long servicer;
+
+    /**
+     * 是否开启现金收费
+     */
+    @ExcelProperty(value = "是否开启现金收费")
+    private Long moneyCharge;
+
+    /**
+     * 收费模式
+     */
+    @ExcelProperty(value = "收费模式")
+    private Long chargeMode;
+
+    /**
+     * 收费方式 1单项收费 2 组合收费
+     */
+    @ExcelProperty(value = "收费方式 1单项收费 2 组合收费")
+    private Long chargeType;
+
+    /**
+     * 单项收费配置
+     */
+    @ExcelProperty(value = "单项收费配置")
+    private String oneWayCharge;
+
+    /**
+     * 组合收费配置
+     */
+    @ExcelProperty(value = "组合收费配置")
+    private String groupCharge;
+
+    /**
+     * 营养配置收费设置
+     */
+    @ExcelProperty(value = "营养配置收费设置")
+    private Long nutritionChargeSet;
+
+    /**
+     * 适合处方类型
+     */
+    @ExcelProperty(value = "适合处方类型")
+    private String suitRecipe;
+
+    /**
+     * 患者订单配置
+     */
+    @ExcelProperty(value = "患者订单配置")
+    private Long patientOrderSet;
+
+    /**
+     * 订单有效期
+     */
+    @ExcelProperty(value = "订单有效期")
+    private Long orderIndate;
+
+    /**
+     * 多模式收费配置
+     */
+    @ExcelProperty(value = "多模式收费配置")
+    private String multiModeCharge;
+
+    private List<ChargeItemVo> chargeItemArr;
+
+
+}

+ 4 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EnteralNutritionVo.java

@@ -176,4 +176,8 @@ public class EnteralNutritionVo implements Serializable {
     /*创建时间*/
     private Date createTime;
 
+    private Long createBy;
+
+    private String createByName;
+
 }

+ 7 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/NutritionEvaluationVo.java → ruoyi-admin/src/main/java/org/dromara/web/domain/vo/NutritionEvaluationVo.java

@@ -1,19 +1,17 @@
-package org.dromara.system.domain.vo;
+package org.dromara.web.domain.vo;
 
 import java.util.Date;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.system.domain.NutritionEvaluation;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
 import org.dromara.common.excel.annotation.ExcelDictFormat;
 import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
+import org.dromara.web.domain.NutritionEvaluation;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
 
 
 /**
@@ -36,6 +34,11 @@ public class NutritionEvaluationVo implements Serializable {
     @ExcelProperty(value = "主键ID")
     private Long id;
 
+    /**
+     * 结算管理id
+     */
+    private Long settlementId;
+
     /**
      * 患者ID
      */

+ 7 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/NutritionScreeningVo.java → ruoyi-admin/src/main/java/org/dromara/web/domain/vo/NutritionScreeningVo.java

@@ -1,20 +1,18 @@
-package org.dromara.system.domain.vo;
+package org.dromara.web.domain.vo;
 
 import java.math.BigDecimal;
 import java.util.Date;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.system.domain.NutritionScreening;
 import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
 import cn.idev.excel.annotation.ExcelProperty;
 import org.dromara.common.excel.annotation.ExcelDictFormat;
 import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
+import org.dromara.web.domain.NutritionScreening;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
 
 
 /**
@@ -37,6 +35,11 @@ public class NutritionScreeningVo implements Serializable {
     @ExcelProperty(value = "主键ID")
     private Long id;
 
+    /**
+     * 结算管理id
+     */
+    private Long settlementId;
+
     /**
      * 患者ID
      */

+ 38 - 0
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/SettlementVo.java

@@ -12,6 +12,7 @@ import org.dromara.web.domain.Settlement;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.List;
 
 
 /**
@@ -67,6 +68,9 @@ public class SettlementVo implements Serializable {
     /**
      * 患者科室
      */
+
+    private Long doorId;
+
     @ExcelProperty(value = "患者科室")
     private String patientDepartment;
 
@@ -113,5 +117,39 @@ public class SettlementVo implements Serializable {
     @ExcelDictFormat(readConverterExp = "0=正常,1=停用")
     private String status;
 
+    @ExcelProperty(value = "床号")
+    private String bedNo;
+
+    /*审核状态 1待审核 2 审核通过*/
+    private String checkStatus;
+
+    /*病区*/
+    private Long wardId;
+
+    private String wardName;
+
+    /*诊疗卡号*/
+    private String treatNum;
+
+    private String recipeDetail;
+
+    private Long enteralNutritionId;
+
+    private Long createBy;
+
+    private String createByUser;
+
+    private Long updateBy;
+
+    private String updateByUser;
+
+    private String remark;
+    /*肠内营养*/
+    private List<EnteralNutritionVo> enteralNutritionList;
+    /*营养筛查数据*/
+    private List<NutritionScreeningVo> nutritionScreeningList;
+    /*营养评估数据*/
+    private List<NutritionEvaluationVo> nutritionEvaluationList;
+
 
 }

+ 4 - 1
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/TreatmentUserVo.java

@@ -137,7 +137,10 @@ public class TreatmentUserVo implements Serializable {
      * 病区
      */
     @ExcelProperty(value = "病区")
-    private String inpatientWard;
+    private Long wardId;
+
+    private String wardName;
+
 
     /**
      * 入院时间

+ 2 - 2
ruoyi-admin/src/main/java/org/dromara/web/domain/vo/hospitalRecord/EntityFieldRegistry.java

@@ -1,8 +1,8 @@
 package org.dromara.web.domain.vo.hospitalRecord;
 
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
-import org.dromara.system.domain.NutritionEvaluation;
-import org.dromara.system.domain.NutritionScreening;
+import org.dromara.web.domain.NutritionEvaluation;
+import org.dromara.web.domain.NutritionScreening;
 import org.dromara.web.domain.*;
 
 import java.util.HashMap;

+ 17 - 0
ruoyi-admin/src/main/java/org/dromara/web/mapper/ChargeRecordMapper.java

@@ -0,0 +1,17 @@
+package org.dromara.web.mapper;
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.web.domain.ChargeRecord;
+import org.dromara.web.domain.vo.ChargeRecordVo;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 收费记录Mapper接口
+ *
+ * @author Lion Li
+ * @date 2025-08-06
+ */
+@Repository
+public interface ChargeRecordMapper extends BaseMapperPlus<ChargeRecord, ChargeRecordVo> {
+
+}

+ 18 - 0
ruoyi-admin/src/main/java/org/dromara/web/mapper/ChargeSetMapper.java

@@ -0,0 +1,18 @@
+package org.dromara.web.mapper;
+
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.web.domain.ChargeSet;
+import org.dromara.web.domain.vo.ChargeSetVo;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 收费设置Mapper接口
+ *
+ * @author Lion Li
+ * @date 2025-08-04
+ */
+@Repository
+public interface ChargeSetMapper extends BaseMapperPlus<ChargeSet, ChargeSetVo> {
+
+}

+ 6 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/NutritionEvaluationMapper.java → ruoyi-admin/src/main/java/org/dromara/web/mapper/NutritionEvaluationMapper.java

@@ -1,8 +1,10 @@
-package org.dromara.system.mapper;
+package org.dromara.web.mapper;
+
 
-import org.dromara.system.domain.NutritionEvaluation;
-import org.dromara.system.domain.vo.NutritionEvaluationVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.web.domain.NutritionEvaluation;
+import org.dromara.web.domain.vo.NutritionEvaluationVo;
+import org.springframework.stereotype.Repository;
 
 /**
  * 营养评估Mapper接口
@@ -10,6 +12,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
  * @author Lion Li
  * @date 2025-07-17
  */
+@Repository
 public interface NutritionEvaluationMapper extends BaseMapperPlus<NutritionEvaluation, NutritionEvaluationVo> {
 
 }

+ 6 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/NutritionScreeningMapper.java → ruoyi-admin/src/main/java/org/dromara/web/mapper/NutritionScreeningMapper.java

@@ -1,8 +1,10 @@
-package org.dromara.system.mapper;
+package org.dromara.web.mapper;
+
 
-import org.dromara.system.domain.NutritionScreening;
-import org.dromara.system.domain.vo.NutritionScreeningVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.web.domain.NutritionScreening;
+import org.dromara.web.domain.vo.NutritionScreeningVo;
+import org.springframework.stereotype.Repository;
 
 /**
  * 营养筛查Mapper接口
@@ -10,6 +12,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
  * @author Lion Li
  * @date 2025-07-14
  */
+@Repository
 public interface NutritionScreeningMapper extends BaseMapperPlus<NutritionScreening, NutritionScreeningVo> {
 
 }

+ 69 - 0
ruoyi-admin/src/main/java/org/dromara/web/service/IChargeRecordService.java

@@ -0,0 +1,69 @@
+package org.dromara.web.service;
+
+
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.web.domain.bo.ChargeRecordBo;
+import org.dromara.web.domain.vo.ChargeRecordVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 收费记录Service接口
+ *
+ * @author Lion Li
+ * @date 2025-08-06
+ */
+public interface IChargeRecordService {
+
+    /**
+     * 查询收费记录
+     *
+     * @param id 主键
+     * @return 收费记录
+     */
+    ChargeRecordVo queryById(Long id);
+
+    /**
+     * 分页查询收费记录列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 收费记录分页列表
+     */
+    TableDataInfo<ChargeRecordVo> queryPageList(ChargeRecordBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的收费记录列表
+     *
+     * @param bo 查询条件
+     * @return 收费记录列表
+     */
+    List<ChargeRecordVo> queryList(ChargeRecordBo bo);
+
+    /**
+     * 新增收费记录
+     *
+     * @param bo 收费记录
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(ChargeRecordBo bo);
+
+    /**
+     * 修改收费记录
+     *
+     * @param bo 收费记录
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(ChargeRecordBo bo);
+
+    /**
+     * 校验并批量删除收费记录信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 69 - 0
ruoyi-admin/src/main/java/org/dromara/web/service/IChargeSetService.java

@@ -0,0 +1,69 @@
+package org.dromara.web.service;
+
+
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.web.domain.bo.ChargeSetBo;
+import org.dromara.web.domain.vo.ChargeSetVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 收费设置Service接口
+ *
+ * @author Lion Li
+ * @date 2025-08-04
+ */
+public interface IChargeSetService {
+
+    /**
+     * 查询收费设置
+     *
+     * @param chargeId 主键
+     * @return 收费设置
+     */
+    ChargeSetVo queryById(Long chargeId);
+
+    /**
+     * 分页查询收费设置列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 收费设置分页列表
+     */
+    TableDataInfo<ChargeSetVo> queryPageList(ChargeSetBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的收费设置列表
+     *
+     * @param bo 查询条件
+     * @return 收费设置列表
+     */
+    List<ChargeSetVo> queryList(ChargeSetBo bo);
+
+    /**
+     * 新增收费设置
+     *
+     * @param bo 收费设置
+     * @return 是否新增成功
+     */
+    Boolean insertByBo(ChargeSetBo bo);
+
+    /**
+     * 修改收费设置
+     *
+     * @param bo 收费设置
+     * @return 是否修改成功
+     */
+    Boolean updateByBo(ChargeSetBo bo);
+
+    /**
+     * 校验并批量删除收费设置信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 4 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/INutritionEvaluationService.java → ruoyi-admin/src/main/java/org/dromara/web/service/INutritionEvaluationService.java

@@ -1,9 +1,10 @@
-package org.dromara.system.service;
+package org.dromara.web.service;
+
 
-import org.dromara.system.domain.vo.NutritionEvaluationVo;
-import org.dromara.system.domain.bo.NutritionEvaluationBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.web.domain.bo.NutritionEvaluationBo;
+import org.dromara.web.domain.vo.NutritionEvaluationVo;
 
 import java.util.Collection;
 import java.util.List;

+ 4 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/INutritionScreeningService.java → ruoyi-admin/src/main/java/org/dromara/web/service/INutritionScreeningService.java

@@ -1,9 +1,10 @@
-package org.dromara.system.service;
+package org.dromara.web.service;
+
 
-import org.dromara.system.domain.vo.NutritionScreeningVo;
-import org.dromara.system.domain.bo.NutritionScreeningBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.web.domain.bo.NutritionScreeningBo;
+import org.dromara.web.domain.vo.NutritionScreeningVo;
 
 import java.util.Collection;
 import java.util.List;

+ 10 - 0
ruoyi-admin/src/main/java/org/dromara/web/service/ISettlementService.java

@@ -57,6 +57,16 @@ public interface ISettlementService {
      */
     Boolean updateByBo(SettlementBo bo);
 
+    TableDataInfo<SettlementVo> queryCheckRecipePageList(SettlementBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询符合条件的结算管理列表
+     *
+     * @param bo 查询条件
+     * @return 结算管理列表
+     */
+    List<SettlementVo> queryCheckRecipeList(SettlementBo bo);
+
     /**
      * 校验并批量删除结算管理信息
      *

+ 153 - 0
ruoyi-admin/src/main/java/org/dromara/web/service/impl/ChargeRecordServiceImpl.java

@@ -0,0 +1,153 @@
+package org.dromara.web.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.web.domain.ChargeRecord;
+import org.dromara.web.domain.bo.ChargeRecordBo;
+import org.dromara.web.domain.vo.ChargeRecordVo;
+import org.dromara.web.mapper.ChargeRecordMapper;
+import org.dromara.web.service.IChargeRecordService;
+import org.springframework.stereotype.Service;
+
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 收费记录Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2025-08-06
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class ChargeRecordServiceImpl implements IChargeRecordService {
+
+    private final ChargeRecordMapper baseMapper;
+
+    /**
+     * 查询收费记录
+     *
+     * @param id 主键
+     * @return 收费记录
+     */
+    @Override
+    public ChargeRecordVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 分页查询收费记录列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 收费记录分页列表
+     */
+    @Override
+    public TableDataInfo<ChargeRecordVo> queryPageList(ChargeRecordBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<ChargeRecord> lqw = buildQueryWrapper(bo);
+        Page<ChargeRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的收费记录列表
+     *
+     * @param bo 查询条件
+     * @return 收费记录列表
+     */
+    @Override
+    public List<ChargeRecordVo> queryList(ChargeRecordBo bo) {
+        LambdaQueryWrapper<ChargeRecord> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<ChargeRecord> buildQueryWrapper(ChargeRecordBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<ChargeRecord> lqw = Wrappers.lambdaQuery();
+        lqw.orderByAsc(ChargeRecord::getId);
+        lqw.eq(bo.getSettlementId() != null, ChargeRecord::getSettlementId, bo.getSettlementId());
+        lqw.eq(bo.getOrderTime() != null, ChargeRecord::getOrderTime, bo.getOrderTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getVisitType()), ChargeRecord::getVisitType, bo.getVisitType());
+        lqw.eq(StringUtils.isNotBlank(bo.getChargeType()), ChargeRecord::getChargeType, bo.getChargeType());
+        lqw.eq(bo.getPatientId() != null, ChargeRecord::getPatientId, bo.getPatientId());
+        lqw.like(StringUtils.isNotBlank(bo.getPatientName()), ChargeRecord::getPatientName, bo.getPatientName());
+        lqw.eq(bo.getDoorId() != null, ChargeRecord::getDoorId, bo.getDoorId());
+        lqw.eq(StringUtils.isNotBlank(bo.getPatientNo()), ChargeRecord::getPatientNo, bo.getPatientNo());
+        lqw.eq(StringUtils.isNotBlank(bo.getPhone()), ChargeRecord::getPhone, bo.getPhone());
+        lqw.eq(StringUtils.isNotBlank(bo.getIdCard()), ChargeRecord::getIdCard, bo.getIdCard());
+        lqw.eq(bo.getReceivableAmount() != null, ChargeRecord::getReceivableAmount, bo.getReceivableAmount());
+        lqw.eq(bo.getFundsReceived() != null, ChargeRecord::getFundsReceived, bo.getFundsReceived());
+        lqw.eq(bo.getRefundAmount() != null, ChargeRecord::getRefundAmount, bo.getRefundAmount());
+        lqw.eq(StringUtils.isNotBlank(bo.getPaymentStatus()), ChargeRecord::getPaymentStatus, bo.getPaymentStatus());
+        lqw.eq(StringUtils.isNotBlank(bo.getPaymentMethod()), ChargeRecord::getPaymentMethod, bo.getPaymentMethod());
+        lqw.eq(StringUtils.isNotBlank(bo.getBedNo()), ChargeRecord::getBedNo, bo.getBedNo());
+        lqw.eq(bo.getRefundTime() != null, ChargeRecord::getRefundTime, bo.getRefundTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getStatus()), ChargeRecord::getStatus, bo.getStatus());
+        lqw.eq(bo.getWardId() != null, ChargeRecord::getWardId, bo.getWardId());
+        lqw.like(StringUtils.isNotBlank(bo.getWardName()), ChargeRecord::getWardName, bo.getWardName());
+        lqw.eq(StringUtils.isNotBlank(bo.getTreatNum()), ChargeRecord::getTreatNum, bo.getTreatNum());
+        return lqw;
+    }
+
+    /**
+     * 新增收费记录
+     *
+     * @param bo 收费记录
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(ChargeRecordBo bo) {
+        ChargeRecord add = MapstructUtils.convert(bo, ChargeRecord.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改收费记录
+     *
+     * @param bo 收费记录
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(ChargeRecordBo bo) {
+        ChargeRecord update = MapstructUtils.convert(bo, ChargeRecord.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(ChargeRecord entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除收费记录信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 151 - 0
ruoyi-admin/src/main/java/org/dromara/web/service/impl/ChargeSetServiceImpl.java

@@ -0,0 +1,151 @@
+package org.dromara.web.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.system.domain.bo.SysScreeningAssessmentConfigBo;
+import org.dromara.web.domain.ChargeSet;
+import org.dromara.web.domain.bo.ChargeSetBo;
+import org.dromara.web.domain.vo.ChargeItemVo;
+import org.dromara.web.domain.vo.ChargeSetVo;
+import org.dromara.web.mapper.ChargeSetMapper;
+import org.dromara.web.service.IChargeSetService;
+import org.springframework.stereotype.Service;
+
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 收费设置Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2025-08-04
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class ChargeSetServiceImpl implements IChargeSetService {
+
+    private final ChargeSetMapper baseMapper;
+
+    /**
+     * 查询收费设置
+     *
+     * @param chargeId 主键
+     * @return 收费设置
+     */
+    @Override
+    public ChargeSetVo queryById(Long chargeId) {
+        return baseMapper.selectVoById(chargeId);
+    }
+
+    /**
+     * 分页查询收费设置列表
+     *
+     * @param bo        查询条件
+     * @param pageQuery 分页参数
+     * @return 收费设置分页列表
+     */
+    @Override
+    public TableDataInfo<ChargeSetVo> queryPageList(ChargeSetBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<ChargeSet> lqw = buildQueryWrapper(bo);
+        Page<ChargeSetVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        List<ChargeSetVo> records = result.getRecords();
+        if (CollUtil.isNotEmpty(records)) {
+            records.forEach(v -> {
+                v.setChargeItemArr(JSON.parseArray(v.getOneWayCharge(), ChargeItemVo.class));
+            });
+        }
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的收费设置列表
+     *
+     * @param bo 查询条件
+     * @return 收费设置列表
+     */
+    @Override
+    public List<ChargeSetVo> queryList(ChargeSetBo bo) {
+        LambdaQueryWrapper<ChargeSet> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<ChargeSet> buildQueryWrapper(ChargeSetBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<ChargeSet> lqw = Wrappers.lambdaQuery();
+        lqw.orderByAsc(ChargeSet::getChargeId);
+
+        return lqw;
+    }
+
+    /**
+     * 新增收费设置
+     *
+     * @param bo 收费设置
+     * @return 是否新增成功
+     */
+    @Override
+    public Boolean insertByBo(ChargeSetBo bo) {
+        List<ChargeItemVo> itemVoList = bo.getChargeItemArr();
+        String itemVoListStr = JSON.toJSONString(itemVoList);
+        bo.setOneWayCharge(itemVoListStr);
+        ChargeSet add = MapstructUtils.convert(bo, ChargeSet.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setChargeId(add.getChargeId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改收费设置
+     *
+     * @param bo 收费设置
+     * @return 是否修改成功
+     */
+    @Override
+    public Boolean updateByBo(ChargeSetBo bo) {
+        List<ChargeItemVo> itemVoList = bo.getChargeItemArr();
+        String itemVoListStr = JSON.toJSONString(itemVoList);
+        bo.setOneWayCharge(itemVoListStr);
+        ChargeSet update = MapstructUtils.convert(bo, ChargeSet.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(ChargeSet entity) {
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 校验并批量删除收费设置信息
+     *
+     * @param ids     待删除的主键集合
+     * @param isValid 是否进行有效性校验
+     * @return 是否删除成功
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if (isValid) {
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteByIds(ids) > 0;
+    }
+}

+ 4 - 0
ruoyi-admin/src/main/java/org/dromara/web/service/impl/EnteralNutritionServiceImpl.java

@@ -259,8 +259,12 @@ public class EnteralNutritionServiceImpl implements IEnteralNutritionService {
         settlement.setDoorId(treatmentUser.getDoorId());
         settlement.setPhone(treatmentUser.getPhoneNum());
         settlement.setIdCard(treatmentUser.getIdCard());
+        settlement.setBedNo(treatmentUser.getBedNo());
+        settlement.setWardId(treatmentUser.getWardId());
+        settlement.setWardName(treatmentUser.getWardName());
         settlement.setPaymentStatus(PaymentStatus.UNPAID.getCode());
         settlement.setStatus(bo.getStatus());
+        settlement.setTreatNum(treatmentUser.getTreatNum());
 
         saveOrUpdateData(bo, settlement);
         return Boolean.TRUE;

+ 2 - 2
ruoyi-admin/src/main/java/org/dromara/web/service/impl/HospitalRecordServiceImpl.java

@@ -10,8 +10,8 @@ import org.apache.poi.util.StringUtil;
 import org.dromara.common.core.constant.BizConst;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.system.domain.*;
-import org.dromara.system.domain.vo.NutritionEvaluationVo;
-import org.dromara.system.domain.vo.NutritionScreeningVo;
+import org.dromara.web.domain.vo.NutritionEvaluationVo;
+import org.dromara.web.domain.vo.NutritionScreeningVo;
 import org.dromara.system.domain.vo.SysDictDataVo;
 import org.dromara.system.domain.vo.SysDiseaseLabelVo;
 import org.dromara.system.mapper.*;

+ 58 - 12
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/NutritionEvaluationServiceImpl.java → ruoyi-admin/src/main/java/org/dromara/web/service/impl/NutritionEvaluationServiceImpl.java

@@ -1,12 +1,17 @@
-package org.dromara.system.service.impl;
+package org.dromara.web.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONValidator;
 import com.alibaba.fastjson.TypeReference;
 import org.dromara.common.core.constant.BizConst;
+import org.dromara.common.core.enums.biz.CheckStatus;
+import org.dromara.common.core.enums.biz.FeeType;
 import org.dromara.common.core.enums.biz.PaymentStatus;
 import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.core.utils.MapstructUtils;
@@ -25,21 +30,25 @@ import org.dromara.system.domain.vo.SysDictDataVo;
 import org.dromara.system.mapper.SysScreeningAssessmentConfigMapper;
 import org.dromara.system.mapper.SysUserMapper;
 import org.dromara.system.service.ISysDictDataService;
+import org.dromara.web.domain.*;
+import org.dromara.web.domain.bo.EnteralNutritionBo;
+import org.dromara.web.domain.bo.EnteralNutritionConsumableBo;
+import org.dromara.web.domain.bo.EnteralNutritionSaveBo;
+import org.dromara.web.domain.bo.NutritionEvaluationBo;
+import org.dromara.web.domain.vo.ChargeItemVo;
+import org.dromara.web.domain.vo.NutritionEvaluationVo;
+import org.dromara.web.mapper.ChargeSetMapper;
+import org.dromara.web.mapper.NutritionEvaluationMapper;
+import org.dromara.web.mapper.SettlementMapper;
+import org.dromara.web.mapper.TreatmentUserMapper;
+import org.dromara.web.service.INutritionEvaluationService;
 import org.springframework.stereotype.Service;
-import org.dromara.system.domain.bo.NutritionEvaluationBo;
-import org.dromara.system.domain.vo.NutritionEvaluationVo;
-import org.dromara.system.domain.NutritionEvaluation;
-import org.dromara.system.mapper.NutritionEvaluationMapper;
-import org.dromara.system.service.INutritionEvaluationService;
 
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
 import java.util.Base64;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
-import java.util.Set;
+import java.math.BigDecimal;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -57,6 +66,9 @@ public class NutritionEvaluationServiceImpl implements INutritionEvaluationServi
     private final SysScreeningAssessmentConfigMapper configMapper;
     private final ISysDictDataService dataService;
     private final SysUserMapper userMapper;
+    private final SettlementMapper settlementMapper;
+    private final TreatmentUserMapper treatmentUserMapper;
+    private final ChargeSetMapper chargeSetMapper;
 
     /**
      * 查询营养评估
@@ -169,9 +181,42 @@ public class NutritionEvaluationServiceImpl implements INutritionEvaluationServi
             throw new ServiceException("没有任何“营养评估”!");
         }
 
+        ChargeSet chargeSet = null;
+        TreatmentUser treatmentUser = treatmentUserMapper.selectById(bo.getPatientId());
+        Settlement settlement = new Settlement();
+        settlement.setOrderTime(new Date());
+        settlement.setPatientId(bo.getPatientId());
+        settlement.setVisitType(bo.getVisitType());
+        settlement.setChargeType(FeeType.NUTRITION_EVALUATION.getCode());
+        settlement.setPatientNo(bo.getPatientNo());
+        settlement.setPatientName(treatmentUser.getTreatName());
+        settlement.setDoorId(treatmentUser.getDoorId());
+        settlement.setPhone(treatmentUser.getPhoneNum());
+        settlement.setIdCard(treatmentUser.getIdCard());
+        settlement.setBedNo(treatmentUser.getBedNo());
+        settlement.setWardId(treatmentUser.getWardId());
+        settlement.setWardName(treatmentUser.getWardName());
+        settlement.setPaymentStatus(PaymentStatus.UNPAID.getCode());
+        settlement.setStatus(bo.getStatus());
+        settlement.setCheckStatus(CheckStatus.STATUS_TWO.getCode());
+        settlement.setTreatNum(treatmentUser.getTreatNum());
+        List<ChargeSet> chargeSetList = chargeSetMapper.selectList();
+        if (CollUtil.isNotEmpty(chargeSetList)) {
+            chargeSet = chargeSetList.get(0);
+            String oneWayCharge = chargeSet.getOneWayCharge();
+            List<ChargeItemVo> chargeItemVoList = JSON.parseArray(oneWayCharge, ChargeItemVo.class);
+// 查找第一个匹配项
+            Optional<ChargeItemVo> chargeItem = chargeItemVoList.stream()
+                .filter(item -> FeeType.NUTRITION_SCREENING.getRemark().equals(item.getName()))
+                .findFirst();
+            settlement.setReceivableAmount(chargeItem.get().getPrice());
+        }
+        settlementMapper.insert(settlement);
+        bo.setSettlementId(settlement.getId());
+
         NutritionEvaluation add = MapstructUtils.convert(bo, NutritionEvaluation.class);
         add.setScreeningTime(new Date());
-        add.setPaymentStatus(PaymentStatus.PAID.getCode());
+        add.setPaymentStatus(PaymentStatus.UNPAID.getCode());
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
@@ -180,6 +225,7 @@ public class NutritionEvaluationServiceImpl implements INutritionEvaluationServi
         return flag;
     }
 
+
     /**
      * 修改营养评估
      *

+ 58 - 19
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/NutritionScreeningServiceImpl.java → ruoyi-admin/src/main/java/org/dromara/web/service/impl/NutritionScreeningServiceImpl.java

@@ -1,4 +1,4 @@
-package org.dromara.system.service.impl;
+package org.dromara.web.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.NumberUtil;
@@ -7,19 +7,21 @@ import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONValidator;
 import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.core.constant.BizConst;
+import org.dromara.common.core.enums.biz.CheckStatus;
+import org.dromara.common.core.enums.biz.FeeType;
 import org.dromara.common.core.enums.biz.PaymentStatus;
 import org.dromara.common.core.enums.biz.QuestionsList;
 import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.system.domain.SysScreeningAssessmentConfig;
 import org.dromara.system.domain.SysUser;
 import org.dromara.system.domain.bo.SysScreeningAssessmentConfigBo;
@@ -28,22 +30,24 @@ import org.dromara.system.domain.vo.SysDictDataVo;
 import org.dromara.system.mapper.SysScreeningAssessmentConfigMapper;
 import org.dromara.system.mapper.SysUserMapper;
 import org.dromara.system.service.ISysDictDataService;
+import org.dromara.web.domain.ChargeSet;
+import org.dromara.web.domain.NutritionScreening;
+import org.dromara.web.domain.Settlement;
+import org.dromara.web.domain.TreatmentUser;
+import org.dromara.web.domain.bo.NutritionScreeningBo;
+import org.dromara.web.domain.vo.ChargeItemVo;
+import org.dromara.web.domain.vo.NutritionScreeningVo;
+import org.dromara.web.mapper.ChargeSetMapper;
+import org.dromara.web.mapper.NutritionScreeningMapper;
+import org.dromara.web.mapper.SettlementMapper;
+import org.dromara.web.mapper.TreatmentUserMapper;
+import org.dromara.web.service.INutritionScreeningService;
 import org.springframework.stereotype.Service;
-import org.dromara.system.domain.bo.NutritionScreeningBo;
-import org.dromara.system.domain.vo.NutritionScreeningVo;
-import org.dromara.system.domain.NutritionScreening;
-import org.dromara.system.mapper.NutritionScreeningMapper;
-import org.dromara.system.service.INutritionScreeningService;
 
 import java.math.BigDecimal;
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
-import java.util.Base64;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -61,6 +65,9 @@ public class NutritionScreeningServiceImpl implements INutritionScreeningService
     private final SysScreeningAssessmentConfigMapper configMapper;
     private final ISysDictDataService dataService;
     private final SysUserMapper userMapper;
+    private final SettlementMapper settlementMapper;
+    private final TreatmentUserMapper treatmentUserMapper;
+    private final ChargeSetMapper chargeSetMapper;
 
     /**
      * 查询营养筛查
@@ -164,7 +171,7 @@ public class NutritionScreeningServiceImpl implements INutritionScreeningService
         try {
             JSONValidator validator = JSONValidator.from(bo.getContent());
             if (ObjUtil.isNull(validator.getType()) || JSONValidator.Type.Value.equals(validator.getType())) {
-                String content =new String(Base64.getDecoder().decode(bo.getContent()), StandardCharsets.UTF_8) ;
+                String content = new String(Base64.getDecoder().decode(bo.getContent()), StandardCharsets.UTF_8);
                 bo.setContent(URLDecoder.decode(content, StandardCharsets.UTF_8.displayName()));
             }
         } catch (Exception e) {
@@ -207,7 +214,39 @@ public class NutritionScreeningServiceImpl implements INutritionScreeningService
                 }
             }
         }
+        ChargeSet chargeSet = null;
+        TreatmentUser treatmentUser = treatmentUserMapper.selectById(bo.getPatientId());
+        Settlement settlement = new Settlement();
+        settlement.setOrderTime(new Date());
+        settlement.setPatientId(bo.getPatientId());
+        settlement.setVisitType(bo.getVisitType());
+        settlement.setChargeType(FeeType.NUTRITION_SCREENING.getCode());
+        settlement.setPatientNo(bo.getPatientNo());
+        settlement.setPatientName(treatmentUser.getTreatName());
+        settlement.setDoorId(treatmentUser.getDoorId());
+        settlement.setPhone(treatmentUser.getPhoneNum());
+        settlement.setIdCard(treatmentUser.getIdCard());
+        settlement.setBedNo(treatmentUser.getBedNo());
+        settlement.setWardId(treatmentUser.getWardId());
+        settlement.setWardName(treatmentUser.getWardName());
+        settlement.setPaymentStatus(PaymentStatus.UNPAID.getCode());
+        settlement.setStatus(bo.getStatus());
+        settlement.setCheckStatus(CheckStatus.STATUS_TWO.getCode());
+        settlement.setTreatNum(treatmentUser.getTreatNum());
 
+        List<ChargeSet> chargeSetList = chargeSetMapper.selectList();
+        if (CollUtil.isNotEmpty(chargeSetList)) {
+            chargeSet = chargeSetList.get(0);
+            String oneWayCharge = chargeSet.getOneWayCharge();
+            List<ChargeItemVo> chargeItemVoList = JSON.parseArray(oneWayCharge, ChargeItemVo.class);
+// 查找第一个匹配项
+            Optional<ChargeItemVo> chargeItem = chargeItemVoList.stream()
+                .filter(item -> FeeType.NUTRITION_SCREENING.getRemark().equals(item.getName()))
+                .findFirst();
+            settlement.setReceivableAmount(chargeItem.get().getPrice());
+        }
+        settlementMapper.insert(settlement);
+        bo.setSettlementId(settlement.getId());
         NutritionScreening add = MapstructUtils.convert(bo, NutritionScreening.class);
         add.setScreeningScore(NumberUtil.round(total.toString(), 2));
         add.setScreeningTime(new Date());

+ 132 - 6
ruoyi-admin/src/main/java/org/dromara/web/service/impl/SettlementServiceImpl.java

@@ -1,5 +1,10 @@
 package org.dromara.web.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import org.dromara.common.core.constant.BizConst;
+import org.dromara.common.core.enums.biz.CheckStatus;
+import org.dromara.common.core.enums.biz.FeeType;
+import org.dromara.common.core.enums.biz.PaymentStatus;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -9,16 +14,28 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.dromara.system.domain.SysDept;
+import org.dromara.system.domain.SysUser;
+import org.dromara.system.mapper.SysDeptMapper;
+import org.dromara.system.mapper.SysUserMapper;
+import org.dromara.web.domain.EnteralNutrition;
+import org.dromara.web.domain.NutritionEvaluation;
+import org.dromara.web.domain.NutritionScreening;
 import org.dromara.web.domain.Settlement;
 import org.dromara.web.domain.bo.SettlementBo;
+import org.dromara.web.domain.vo.EnteralNutritionVo;
+import org.dromara.web.domain.vo.NutritionEvaluationVo;
+import org.dromara.web.domain.vo.NutritionScreeningVo;
 import org.dromara.web.domain.vo.SettlementVo;
+import org.dromara.web.mapper.EnteralNutritionMapper;
+import org.dromara.web.mapper.NutritionEvaluationMapper;
+import org.dromara.web.mapper.NutritionScreeningMapper;
 import org.dromara.web.mapper.SettlementMapper;
 import org.dromara.web.service.ISettlementService;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 结算管理Service业务层处理
@@ -33,6 +50,16 @@ public class SettlementServiceImpl implements ISettlementService {
 
     private final SettlementMapper baseMapper;
 
+    private final SysDeptMapper deptMapper;
+
+    private final SysUserMapper userMapper;
+
+    private final EnteralNutritionMapper enteralNutritionMapper;
+
+    private final NutritionEvaluationMapper evaluationMapper;
+
+    private final NutritionScreeningMapper screeningMapper;
+
     /**
      * 查询结算管理
      *
@@ -41,7 +68,27 @@ public class SettlementServiceImpl implements ISettlementService {
      */
     @Override
     public SettlementVo queryById(Long id) {
-        return baseMapper.selectVoById(id);
+        SettlementVo settlementVo = baseMapper.selectVoById(id);
+        List<SysUser> userList = userMapper.selectList(Wrappers.lambdaQuery(SysUser.class).select(SysUser::getUserId, SysUser::getUserName));
+        Map<Long, String> userMap = userList.stream().collect(Collectors.toMap(k1 -> k1.getUserId(), k2 -> String.valueOf(k2.getUserName()), (k1, k2) -> k1));
+        if (null != settlementVo) {
+            List<EnteralNutritionVo> enteralNutritionVoList = enteralNutritionMapper.selectVoList(new LambdaQueryWrapper<EnteralNutrition>().eq(EnteralNutrition::getSettlementId, settlementVo.getId()));
+            enteralNutritionVoList.forEach(v->{
+                v.setCreateByName(userMap.get(v.getCreateBy()));
+            });
+            settlementVo.setEnteralNutritionList(enteralNutritionVoList);
+            List<NutritionScreeningVo> nutritionScreeningVos = screeningMapper.selectVoList(new LambdaQueryWrapper<NutritionScreening>().eq(NutritionScreening::getSettlementId, settlementVo.getId()));
+            nutritionScreeningVos.forEach(v->{
+                v.setCreateByName(userMap.get(v.getCreateBy()));
+            });
+            settlementVo.setNutritionScreeningList(nutritionScreeningVos);
+            List<NutritionEvaluationVo> nutritionEvaluationVos = evaluationMapper.selectVoList(new LambdaQueryWrapper<NutritionEvaluation>().eq(NutritionEvaluation::getSettlementId, settlementVo.getId()));
+            nutritionEvaluationVos.forEach(v->{
+                v.setCreateByName(userMap.get(v.getCreateBy()));
+            });
+            settlementVo.setNutritionEvaluationList(nutritionEvaluationVos);
+        }
+        return settlementVo;
     }
 
     /**
@@ -55,6 +102,19 @@ public class SettlementServiceImpl implements ISettlementService {
     public TableDataInfo<SettlementVo> queryPageList(SettlementBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<Settlement> lqw = buildQueryWrapper(bo);
         Page<SettlementVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        List<SettlementVo> records = result.getRecords();
+        if (CollUtil.isNotEmpty(records)) {
+            Set<Long> deptList = CollUtil.newHashSet();
+            records.forEach(v -> {
+                deptList.add(v.getDoorId());
+            });
+            Map<Long, String> deptMap = deptMapper.selectList(Wrappers.lambdaQuery(SysDept.class)
+                .select(SysDept::getDeptId, SysDept::getDeptName)
+                .in(SysDept::getDeptId, deptList)).stream().collect(Collectors.toMap(k1 -> k1.getDeptId(), k2 -> k2.getDeptName(), (k1, k2) -> k1));
+            records.forEach(v -> {
+                v.setPatientDepartment(deptMap.get(v.getDoorId()));
+            });
+        }
         return TableDataInfo.build(result);
     }
 
@@ -78,14 +138,14 @@ public class SettlementServiceImpl implements ISettlementService {
         lqw.eq(StringUtils.isNotBlank(bo.getVisitType()), Settlement::getVisitType, bo.getVisitType());
         lqw.eq(StringUtils.isNotBlank(bo.getChargeType()), Settlement::getChargeType, bo.getChargeType());
         lqw.eq(bo.getPatientId() != null, Settlement::getPatientId, bo.getPatientId());
+        lqw.eq(bo.getDoorId() != null, Settlement::getDoorId, bo.getDoorId());
         lqw.like(StringUtils.isNotBlank(bo.getPatientName()), Settlement::getPatientName, bo.getPatientName());
         lqw.eq(StringUtils.isNotBlank(bo.getPatientNo()), Settlement::getPatientNo, bo.getPatientNo());
-        lqw.eq(StringUtils.isNotBlank(bo.getPhone()), Settlement::getPhone, bo.getPhone());
-        lqw.eq(StringUtils.isNotBlank(bo.getIdCard()), Settlement::getIdCard, bo.getIdCard());
         lqw.eq(bo.getReceivableAmount() != null, Settlement::getReceivableAmount, bo.getReceivableAmount());
         lqw.eq(StringUtils.isNotBlank(bo.getPaymentStatus()), Settlement::getPaymentStatus, bo.getPaymentStatus());
         lqw.eq(StringUtils.isNotBlank(bo.getPaymentMethod()), Settlement::getPaymentMethod, bo.getPaymentMethod());
         lqw.eq(StringUtils.isNotBlank(bo.getStatus()), Settlement::getStatus, bo.getStatus());
+        lqw.eq(Settlement::getCheckStatus, CheckStatus.STATUS_TWO.getCode());//结算管理查询已经审核通过的处方
         return lqw;
     }
 
@@ -119,6 +179,72 @@ public class SettlementServiceImpl implements ISettlementService {
         return baseMapper.updateById(update) > 0;
     }
 
+    @Override
+    public TableDataInfo<SettlementVo> queryCheckRecipePageList(SettlementBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<Settlement> lqw = buildCheckRecipeQueryWrapper(bo);
+        Page<SettlementVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        List<SettlementVo> records = result.getRecords();
+        if (CollUtil.isNotEmpty(records)) {
+            Set<Long> deptList = CollUtil.newHashSet();
+            Set<Long> userList = CollUtil.newHashSet();
+            records.forEach(v -> {
+                deptList.add(v.getDoorId());
+                userList.add(v.getCreateBy());
+            });
+            Map<Long, String> deptMap = deptMapper.selectList(Wrappers.lambdaQuery(SysDept.class)
+                .select(SysDept::getDeptId, SysDept::getDeptName)
+                .in(SysDept::getDeptId, deptList)).stream().collect(Collectors.toMap(k1 -> k1.getDeptId(), k2 -> k2.getDeptName(), (k1, k2) -> k1));
+
+            Map<Long, String> userMap = userMapper.selectList(Wrappers.lambdaQuery(SysUser.class)
+                .select(SysUser::getUserId, SysUser::getUserName)
+                .in(SysUser::getUserId, userList)).stream().collect(Collectors.toMap(k1 -> k1.getUserId(), k2 -> k2.getUserName(), (k1, k2) -> k1));
+            List<EnteralNutritionVo> enteralNutritionVoList = null;
+            for (SettlementVo record : records) {
+                enteralNutritionVoList = enteralNutritionMapper.selectVoList(new LambdaQueryWrapper<EnteralNutrition>().eq(EnteralNutrition::getSettlementId, record.getId()));
+                String recipeDetail = enteralNutritionVoList.stream()
+                    .map(EnteralNutritionVo::getNutritionProduct) // 获取每个对象的nutritionProduct字段
+                    .filter(product -> product != null) // 过滤掉空值
+                    .collect(Collectors.joining(", ")); // 用逗号和空格拼接
+
+                record.setPatientDepartment(deptMap.get(record.getDoorId()));
+                record.setRecipeDetail(recipeDetail);
+                record.setCreateByUser(userMap.get(record.getCreateBy()));
+//                record.setUpdateByUser(userMap.get(record.getUpdateBy()));
+            }
+        }
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询符合条件的结算管理列表
+     *
+     * @param bo 查询条件
+     * @return 结算管理列表
+     */
+    @Override
+    public List<SettlementVo> queryCheckRecipeList(SettlementBo bo) {
+        LambdaQueryWrapper<Settlement> lqw = buildCheckRecipeQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<Settlement> buildCheckRecipeQueryWrapper(SettlementBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<Settlement> lqw = Wrappers.lambdaQuery();
+        lqw.orderByDesc(Settlement::getCreateTime);
+        lqw.eq(bo.getOrderTime() != null, Settlement::getOrderTime, bo.getOrderTime());
+        lqw.eq(bo.getCheckStatus() != null && !CheckStatus.STATUS_NINE.getCode().equals(bo.getCheckStatus()), Settlement::getCheckStatus, bo.getCheckStatus());
+        lqw.eq(StringUtils.isNotBlank(bo.getVisitType()), Settlement::getVisitType, bo.getVisitType());
+        lqw.eq(StringUtils.isNotBlank(bo.getChargeType()), Settlement::getChargeType, bo.getChargeType());
+        lqw.eq(bo.getDoorId() != null, Settlement::getDoorId, bo.getDoorId());
+        lqw.eq(StringUtils.isNotBlank(bo.getPatientNo()), Settlement::getPatientNo, bo.getPatientNo());
+        lqw.eq(Settlement::getStatus, PaymentStatus.UNPAID.getCode());
+        lqw.in(Settlement::getChargeType,
+            FeeType.PRE_PACKAGED_PRESCRIPTION.getCode(),
+            FeeType.CONFIGURE_PRESCRIPTION.getCode(),
+            FeeType.LONG_TERM_PRESCRIPTION.getCode());
+        return lqw;
+    }
+
     /**
      * 保存前的数据校验
      */

+ 12 - 0
ruoyi-admin/src/main/java/org/dromara/web/service/impl/TreatmentUserServiceImpl.java

@@ -14,7 +14,9 @@ import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.system.config.RedisUtil;
 import org.dromara.system.domain.SysDept;
 import org.dromara.system.domain.vo.SysDeptVo;
+import org.dromara.system.domain.vo.SysWardVo;
 import org.dromara.system.mapper.SysDeptMapper;
+import org.dromara.system.mapper.SysWardMapper;
 import org.dromara.system.service.ISysDeptService;
 import org.dromara.web.domain.TreatmentUser;
 import org.dromara.web.domain.bo.TreatmentUserBo;
@@ -45,6 +47,8 @@ public class TreatmentUserServiceImpl implements ITreatmentUserService {
 
     private final SysDeptMapper deptMapper;
 
+    private final SysWardMapper wardMapper;
+
     /**
      * 查询【请填写功能名称】
      *
@@ -138,6 +142,10 @@ public class TreatmentUserServiceImpl implements ITreatmentUserService {
                 add.setOutpatientNo(RedisUtil.generatePatientNumber("1"));
             }
         }
+        SysWardVo wardVo = wardMapper.selectVoById(bo.getWardId());
+        if (null != wardVo) {
+        add.setWardName(wardVo.getWardName());
+        }
         add.setBirthday(bo.getBirthday());
         add.setPhoneNum(bo.getPhoneNum());
         validEntityBeforeSave(add);
@@ -156,6 +164,10 @@ public class TreatmentUserServiceImpl implements ITreatmentUserService {
      */
     @Override
     public Boolean updateByBo(TreatmentUserBo bo) {
+        SysWardVo wardVo = wardMapper.selectVoById(bo.getWardId());
+        if (null != wardVo) {
+            bo.setWardName(wardVo.getWardName());
+        }
         TreatmentUser update = MapstructUtils.convert(bo, TreatmentUser.class);
         update.setBirthday(bo.getBirthday());
         update.setPhoneNum(bo.getPhoneNum());

+ 7 - 0
ruoyi-admin/src/main/resources/mapper/ChargeRecordMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.web.mapper.ChargeRecordMapper">
+
+</mapper>

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/NutritionEvaluationMapper.xml → ruoyi-admin/src/main/resources/mapper/NutritionEvaluationMapper.xml

@@ -2,6 +2,6 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.system.mapper.NutritionEvaluationMapper">
+<mapper namespace="org.dromara.web.mapper.NutritionEvaluationMapper">
 
 </mapper>

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/NutritionScreeningMapper.xml → ruoyi-admin/src/main/resources/mapper/NutritionScreeningMapper.xml

@@ -2,6 +2,6 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.system.mapper.NutritionScreeningMapper">
+<mapper namespace="org.dromara.web.mapper.NutritionScreeningMapper">
 
 </mapper>

+ 7 - 0
ruoyi-admin/src/main/resources/mapper/parameter/ChargeSetMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.web.mapper.ChargeSetMapper">
+
+</mapper>

+ 7 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/BizConst.java

@@ -14,6 +14,13 @@ public interface BizConst {
     String FEE_TYPE = "fee_type";
     String TREATMENT_USER_TYPE = "treatment_user_type";
 
+    String CHARGE_WAY = "charge_way";
+
+    String CHECK_STATUS="check_status";
+
+    String CHECK_STATUS_PASS="2";//通过审核
+    String CHECK_STATUS_ALL="9"; //审核状态 全部状态
+
     String HOSPITAL_ROLE_TYPE = "hospital_role_type";
 
     String FOOD_UNIT = "food_unit";

+ 19 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/biz/ChargeWay.java

@@ -0,0 +1,19 @@
+package org.dromara.common.core.enums.biz;
+
+import lombok.Getter;
+
+@Getter
+public enum ChargeWay {
+    WAY_MONEY("1", "现金收费"),
+    WAY_UNION("2", "银联支付"),
+    WAY_QRCODE("3", "二维码支付");
+
+
+    private String code;
+    private String remark;
+
+    private ChargeWay(String code, String remark) {
+        this.code = code;
+        this.remark = remark;
+    }
+}

+ 22 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/biz/CheckStatus.java

@@ -0,0 +1,22 @@
+package org.dromara.common.core.enums.biz;
+
+import lombok.Getter;
+
+@Getter
+public enum CheckStatus {
+    STATUS_ONE("1", "待审核"),
+    STATUS_TWO("2", "审核通过"),
+    STATUS_THREE("3", "处方重审"),
+    STATUS_FOUR("4", "处方作废"),
+    STATUS_FIVE("5", "失效"),
+    STATUS_NINE("9", "全部");
+
+
+    private String code;
+    private String remark;
+
+    private CheckStatus(String code, String remark) {
+        this.code = code;
+        this.remark = remark;
+    }
+}