diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtSettleDaoController.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtSettleDaoController.java index 07d743d77..4bb55750e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtSettleDaoController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtSettleDaoController.java @@ -1,6 +1,7 @@ package com.ruoyi.system.fantang.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; @@ -9,7 +10,11 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.fantang.domain.FtReportMealsDao; import com.ruoyi.system.fantang.domain.FtSettleDao; +import com.ruoyi.system.fantang.entity.ReportMealsPriceEntity; +import com.ruoyi.system.fantang.entity.SettleEntity; +import com.ruoyi.system.fantang.service.IFtFoodDemandDaoService; import com.ruoyi.system.fantang.service.IFtReportMealsDaoService; import com.ruoyi.system.fantang.service.IFtSettleDaoService; import lombok.RequiredArgsConstructor; @@ -17,10 +22,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; +import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; /** * 结算报Controller @@ -37,6 +41,70 @@ public class FtSettleDaoController extends BaseController { private final IFtReportMealsDaoService iFtReportMealsDaoService; + private final IFtFoodDemandDaoService iFtFoodDemandDaoService; + + + /** + * 显示报餐信息,包含日期,正餐与营养餐的总价格 + */ + @PostMapping("/showMealsWithSelect") + public AjaxResult showMealsWithSelect(@RequestBody SettleEntity settlement) { + + Long patientId = settlement.getPatientId(); + Date lastBillingDate = settlement.getLastBillingDate(); + Date selectBillingDate = settlement.getSelectBillingDate(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + // 根据病人 id ,上次结算日期,选择日期查询病人非营养餐记录 + QueryWrapper reportMealsWrapper = new QueryWrapper<>(); + reportMealsWrapper.eq("patient_id", patientId); +// reportMealsWrapper.eq("nutrition_food_flag", 0); + reportMealsWrapper.between("create_at", sdf.format(lastBillingDate), sdf.format(selectBillingDate)); + List reportMealsList = iFtReportMealsDaoService.list(reportMealsWrapper); + + ReportMealsPriceEntity reportMealsPrice = iFtReportMealsDaoService.sumTotalPrice(patientId, lastBillingDate, selectBillingDate); + + Map data = new HashMap<>(); + data.put("reportMealsList",reportMealsList); + data.put("reportMealsPrice",reportMealsPrice); + + return AjaxResult.success(data); + } + + /** + * 新增结算报 + */ + @PostMapping("/addSettle") + public AjaxResult addSettle(@RequestBody SettleEntity settlement) { + System.out.println(settlement); + + Long patientId = settlement.getPatientId(); + Date lastBillingDate = settlement.getLastBillingDate(); + Date selectBillingDate = settlement.getSelectBillingDate(); + +// List reportMealsDaoList = iFtReportMealsDaoService.listByPatientIdAndDate(patientId,); + + // 根据病人 id ,上次结算日期,选择日期查询病人非营养餐记录 + QueryWrapper reportMealsWrapper = new QueryWrapper<>(); + reportMealsWrapper.eq("patient_id", patientId); + reportMealsWrapper.eq("nutrition_food_flag", 0); + reportMealsWrapper.between("create_at", lastBillingDate, selectBillingDate); + List reportMealsList = iFtReportMealsDaoService.list(reportMealsWrapper); + + // 统计非营养餐总价 +// BigDecimal totalPrice = iFtReportMealsDaoService.sumTotalPrice(patientId, lastBillingDate, selectBillingDate); + + + // 根据病人 id ,上次结算日期,选择日期查询病人养餐记录 + QueryWrapper withNutritionWrapper = new QueryWrapper<>(); + withNutritionWrapper.eq("patient_id", patientId); + withNutritionWrapper.eq("nutrition_food_flag", 1); + withNutritionWrapper.between("create_at", lastBillingDate, selectBillingDate); + List withNutritionList = iFtReportMealsDaoService.list(reportMealsWrapper); + + return null; + } /** * 查询结算报列表 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/domain/FtFoodDemandDao.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/domain/FtFoodDemandDao.java index d99416338..034a0f1ac 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/domain/FtFoodDemandDao.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/domain/FtFoodDemandDao.java @@ -116,4 +116,13 @@ public class FtFoodDemandDao extends BasePatient implements Serializable { @Excel(name = "启用状态") private Boolean flag; + /** + * 营养餐 id + **/ + private Long nutritionFoodId; + + /** + * 营养餐标志 + **/ + private Integer nutritionFoodFlag; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/domain/FtReportMealsDao.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/domain/FtReportMealsDao.java index 5e3f971f0..741770c42 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/domain/FtReportMealsDao.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/domain/FtReportMealsDao.java @@ -69,7 +69,7 @@ public class FtReportMealsDao implements Serializable { private String foods; /** - * 总价 + * 正餐总价 */ @Excel(name = "总价") private BigDecimal price; @@ -96,7 +96,31 @@ public class FtReportMealsDao implements Serializable { @TableField(exist = false) private String bedId; - @TableField(exist = false) private String name; + + /** + * 营养餐 id + */ + private Long nutritionFoodId; + + /** + * 营养配餐标志 + */ + private Integer nutritionFoodFlag; + + /** + * 是否替代正餐 + */ + private Boolean isReplaceFood; + + /** + * 营养配餐价格 + */ + private BigDecimal nutritionFoodPrice; + + /** + * 当前报餐总价 + */ + private BigDecimal totalPrice; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/entity/ReportMealsDayEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/entity/ReportMealsDayEntity.java index a11817649..ffa4581d1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/entity/ReportMealsDayEntity.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/entity/ReportMealsDayEntity.java @@ -15,11 +15,11 @@ import java.util.Date; @AllArgsConstructor public class ReportMealsDayEntity extends FtReportMealsDao { // 用户自定义结算日期 - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd") private Date selectBillingDate; // 自上一次结算累计未结算天数 private Long days; // 上次缴费日期 - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd") private Date lastCreateDate; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/entity/ReportMealsPriceEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/entity/ReportMealsPriceEntity.java new file mode 100644 index 000000000..b7c246add --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/entity/ReportMealsPriceEntity.java @@ -0,0 +1,28 @@ +package com.ruoyi.system.fantang.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ReportMealsPriceEntity { + + /** + * 正餐总价 + */ + private BigDecimal dinnerTotalPrice; + + /** + * 营养餐总价 + */ + private BigDecimal nutritionTotalPrice; + + /** + * 正餐和营养餐总价 + */ + private BigDecimal sumTotalPrice; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/entity/SettleEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/entity/SettleEntity.java new file mode 100644 index 000000000..83f970fc9 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/entity/SettleEntity.java @@ -0,0 +1,57 @@ +package com.ruoyi.system.fantang.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class SettleEntity { + + // 床号 + private String bedId; + + // 科室名 + private String departName; + + // 住院号 + private String hospitalId; + + // 上次缴费日期 + @JsonFormat(pattern = "yyyy-MM-dd") + private Date lastBillingDate; + + // 病人姓名 + private String name; + + // 实收 + private BigDecimal netPeceipt; + + // 操作员 + private String opera; + + // 病人 id + private Long patientId; + + // 预付款金额 + private BigDecimal prepayment; + + // 应收 + private BigDecimal price; + + // 用户自定义结算日期 + @JsonFormat(pattern = "yyyy-MM-dd") + private Date selectBillingDate; + + // 自上一次结算累计未结算天数 + private Long days; + + // 操作员 + private String userName; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtReportMealsDaoMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtReportMealsDaoMapper.java index b3d4aded9..9d195aa98 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtReportMealsDaoMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtReportMealsDaoMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.system.fantang.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.fantang.domain.FtReportMealsDao; +import com.ruoyi.system.fantang.entity.ReportMealsPriceEntity; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; @@ -24,4 +25,16 @@ public interface FtReportMealsDaoMapper extends BaseMapper { @Update("UPDATE ft_report_meals set settlement_flag = 1 , settlement_at = now() , settlement_id = #{settlementId} where patient_id = #{patientId} and create_at BETWEEN #{lastBillingDate} and #{selectBillingDate}") Integer settleMeals(@Param("settlementId") Long settlementId, @Param("patientId") Long patientId, @Param("lastBillingDate") String lastBillingDate, @Param("selectBillingDate") String selectBillingDate); + + + /** + * SELECT a.patient_id,sum(a.price) as price , sum(a.nutrition_food_price ) as nutrition_food_price , sum(a.total_price) as total_price FROM ft_report_meals a where a.patient_id = 2 and a.create_at BETWEEN '2020-12-01' AND '2020-12-22' + * + * @param patientId + * @param lastBillingDate + * @param selectBillingDate + * @return + */ + @Select("SELECT a.patient_id,sum(a.price) as dinner_total_price , sum(a.nutrition_food_price ) as nutrition_total_price , sum(a.total_price) as sum_total_price FROM ft_report_meals a where a.patient_id = #{patientId} and a.create_at BETWEEN #{lastBillingDate} AND #{selectBillingDate}") + ReportMealsPriceEntity sumTotalPrice(@Param("patientId") Long patientId, @Param("lastBillingDate") Date lastBillingDate, @Param("selectBillingDate") Date selectBillingDate); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/IFtReportMealsDaoService.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/IFtReportMealsDaoService.java index 8fa102ed9..86ad20d79 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/IFtReportMealsDaoService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/IFtReportMealsDaoService.java @@ -3,8 +3,10 @@ package com.ruoyi.system.fantang.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.fantang.domain.FtReportMealsDao; import com.ruoyi.system.fantang.entity.ReportMealsDayEntity; +import com.ruoyi.system.fantang.entity.ReportMealsPriceEntity; import com.ruoyi.system.fantang.vo.FtReportMealVo; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -27,4 +29,6 @@ public interface IFtReportMealsDaoService extends IService { List listMealsWithInSettle(FtReportMealsDao ftReportMealsDao); Integer settleMeals(Long settlementId, Long patientId, String lastBillingDate, String selectBillingDate); + + ReportMealsPriceEntity sumTotalPrice(Long patientId, Date lastBillingDate, Date selectBillingDate); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/impl/FtReportMealsDaoServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/impl/FtReportMealsDaoServiceImpl.java index 5d2dfa14e..b7a836a43 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/impl/FtReportMealsDaoServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/impl/FtReportMealsDaoServiceImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.system.fantang.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.fantang.domain.FtReportMealsDao; import com.ruoyi.system.fantang.entity.ReportMealsDayEntity; +import com.ruoyi.system.fantang.entity.ReportMealsPriceEntity; import com.ruoyi.system.fantang.mapper.FtReportMealVoMapper; import com.ruoyi.system.fantang.mapper.FtReportMealsDaoMapper; import com.ruoyi.system.fantang.service.IFtReportMealsDaoService; @@ -10,6 +11,7 @@ import com.ruoyi.system.fantang.vo.FtReportMealVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -63,4 +65,9 @@ public class FtReportMealsDaoServiceImpl extends ServiceImpl + + diff --git a/ruoyi-ui/src/api/fantang/settle.js b/ruoyi-ui/src/api/fantang/settle.js index ecd229ce6..94654c315 100644 --- a/ruoyi-ui/src/api/fantang/settle.js +++ b/ruoyi-ui/src/api/fantang/settle.js @@ -36,7 +36,16 @@ export function getSettle(settleId) { // 新增结算报 export function addSettle(data) { return request({ - url: '/fantang/settle', + url: '/fantang/settle/addSettle', + method: 'post', + data: data + }) +} + +// 显示正餐记录 +export function showMealsWithSelect(data) { + return request({ + url: '/fantang/settle/showMealsWithSelect', method: 'post', data: data }) diff --git a/ruoyi-ui/src/views/fantang/meals/index.vue b/ruoyi-ui/src/views/fantang/meals/index.vue index ddc7146f4..c0af7ef4a 100644 --- a/ruoyi-ui/src/views/fantang/meals/index.vue +++ b/ruoyi-ui/src/views/fantang/meals/index.vue @@ -145,10 +145,13 @@ - + + + + + + + 报餐明细 + + + + 正餐总价:{{ dinnerTotalPrice }} + + + 营养餐总价:{{ nutritionTotalPrice }} + + + + 报餐总价:{{ sumTotalPrice }} + + + + + + + + + + @@ -264,7 +292,7 @@