From 85716eb8d8e03510a9b10dea32830bd28da1aafd Mon Sep 17 00:00:00 2001 From: czx <28353131@qq.com> Date: Wed, 2 Dec 2020 14:34:36 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E7=AE=97=E6=94=B6=E6=AC=BE=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=88=E6=9C=AA=E5=AE=8C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FtPrepaymentDaoController.java | 21 ++- .../FtReportMealsDaoController.java | 25 ++- .../controller/FtSettleDaoController.java | 1 - .../fantang/entity/ReportMealsDayEntity.java | 11 +- .../mapper/FtReportMealsDaoMapper.java | 6 + .../fantang/mapper/FtSettleDaoMapper.java | 2 +- .../service/IFtReportMealsDaoService.java | 4 + .../impl/FtReportMealsDaoServiceImpl.java | 16 ++ ruoyi-ui/package.json | 10 +- ruoyi-ui/src/api/fantang/meals.js | 10 ++ ruoyi-ui/src/api/fantang/prepayment.js | 8 + ruoyi-ui/src/api/fantang/settle.js | 18 +- ruoyi-ui/src/views/fantang/settle/index.vue | 160 ++++++++++++++---- 13 files changed, 241 insertions(+), 51 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtPrepaymentDaoController.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtPrepaymentDaoController.java index c7654ab35..be77a6054 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtPrepaymentDaoController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtPrepaymentDaoController.java @@ -35,11 +35,28 @@ public class FtPrepaymentDaoController extends BaseController { @GetMapping("/getCountById/{patientId}") - public AjaxResult getCountById(@PathVariable("patientId") Long patiendId) { - FtPrepaymentVo dao = iFtPrepaymentDaoService.getCountById(patiendId); + public AjaxResult getCountById(@PathVariable("patientId") Long patientId) { + FtPrepaymentVo dao = iFtPrepaymentDaoService.getCountById(patientId); + if (dao == null) + return AjaxResult.error("无该记录"); return AjaxResult.success("操作成功", dao); } + /** + * 通过病人id查询收费管理详细 + * 作者:陈智兴 + * 日期:2020年12月2日 + * 功能: 前端查询预付款情况 + * @param patientId + * @return + */ + @GetMapping("/getPrepaymentByPatientId/{patientId}") + public AjaxResult getPrepaymentByPatientId(@PathVariable("patientId") Long patientId) { + FtPrepaymentVo dao = iFtPrepaymentDaoService.getCountById(patientId); + if (dao == null) + return AjaxResult.error("无该记录"); + return AjaxResult.success("操作成功", dao); + } // 查询所有待缴费列表 @PreAuthorize("@ss.hasPermi('fantang:prepayment:list')") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtReportMealsDaoController.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtReportMealsDaoController.java index bcdc82274..4b0133661 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtReportMealsDaoController.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/controller/FtReportMealsDaoController.java @@ -1,5 +1,7 @@ package com.ruoyi.system.fantang.controller; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -10,6 +12,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; 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.ReportMealsDayEntity; import com.ruoyi.system.fantang.service.IFtReportMealsDaoService; import com.ruoyi.system.fantang.vo.FtReportMealVo; @@ -35,21 +38,22 @@ public class FtReportMealsDaoController extends BaseController { private final IFtReportMealsDaoService iFtReportMealsDaoService; - /** + + /** * 查询指定用户上一次结算的日期,并通过这个日期计算未结算的天数 */ @GetMapping("/getLastSettlementDate/{patientId}") - public AjaxResult getLastSettlementDate(@PathVariable("patiendId") Long patiendId) { + public AjaxResult getLastSettlementDate(@PathVariable("patientId") Long patientId) { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("patient_id", patiendId); + wrapper.eq("patient_id", patientId); wrapper.orderByDesc("settlement_at"); wrapper.last("limit 1"); FtReportMealsDao ftReportMealsDao = iFtReportMealsDaoService.getOne(wrapper); Date settlementAt = ftReportMealsDao.getSettlementAt(); - int days = (int) (new Date().getTime() - settlementAt.getTime()) / (1000 * 3600 * 24); + long days = DateUtil.between(settlementAt, new Date(), DateUnit.DAY); ReportMealsDayEntity reportMealsDayEntity = new ReportMealsDayEntity(); - reportMealsDayEntity.setCreateAt(settlementAt); + reportMealsDayEntity.setSettlementAt(settlementAt); reportMealsDayEntity.setDays(days); return AjaxResult.success(reportMealsDayEntity); @@ -128,6 +132,17 @@ public class FtReportMealsDaoController extends BaseController { return util.exportExcel(list, "meals"); } + + /** + * 计算两个日期之间的未结算数据 + * @param dao + * @return + */ + @GetMapping("/countBillingBetween") + public AjaxResult countBillingBetween(ReportMealsDayEntity dao) { + iFtReportMealsDaoService.countBillingBetween(dao); + } + /** * 获取报餐管理详细信息 */ 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 b2e4872fd..58bc2b0d4 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 @@ -33,7 +33,6 @@ public class FtSettleDaoController extends BaseController { private final IFtSettleDaoService iFtSettleDaoService; - /** * 查询结算报列表 */ 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 d626675d1..b10d520cc 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 @@ -1,5 +1,6 @@ package com.ruoyi.system.fantang.entity; +import com.ruoyi.system.fantang.domain.FtReportMealsDao; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -9,9 +10,9 @@ import java.util.Date; @Data @NoArgsConstructor @AllArgsConstructor -public class ReportMealsDayEntity { - - private Date createAt; - - private int days; +public class ReportMealsDayEntity extends FtReportMealsDao { + // 用户自定义结算日期 + private Date selectBillingDate; + // 自上一次结算累计未结算天数 + private Long days; } 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 e1e2f6c8e..55bd099c8 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,10 @@ 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.ReportMealsDayEntity; +import org.apache.ibatis.annotations.Select; + +import java.util.Date; /** * 报餐管理Mapper接口 @@ -11,4 +15,6 @@ import com.ruoyi.system.fantang.domain.FtReportMealsDao; */ public interface FtReportMealsDaoMapper extends BaseMapper { + @Select("SELECT sum(price) as price from ft_report_meals where patient_id = #{patientId} and settlement_flag = 0 and create_at BETWEEN #{createAt} and #{selectBillingDate}") + Long countBillingBetween(Long patientId, Date createAt, Date selectBillingDate); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtSettleDaoMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtSettleDaoMapper.java index 515054470..32c4ba589 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtSettleDaoMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtSettleDaoMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.system.fantang.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.fantang.domain.FtSettleDao; +import org.apache.ibatis.annotations.Select; /** * 结算报Mapper接口 @@ -10,5 +11,4 @@ import com.ruoyi.system.fantang.domain.FtSettleDao; * @date 2020-11-19 */ public interface FtSettleDaoMapper extends BaseMapper { - } 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 2f3fe8161..422cf76a0 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 @@ -2,6 +2,8 @@ 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.domain.FtSettleDao; +import com.ruoyi.system.fantang.entity.ReportMealsDayEntity; import com.ruoyi.system.fantang.vo.FtReportMealVo; import java.util.List; @@ -19,4 +21,6 @@ public interface IFtReportMealsDaoService extends IService { List listNoPay(); List listPayoff(); + + Long countBillingBetween(ReportMealsDayEntity dao); } 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 809586ff9..498790714 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 @@ -1,7 +1,9 @@ package com.ruoyi.system.fantang.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.mapper.FtReportMealVoMapper; import com.ruoyi.system.fantang.mapper.FtReportMealsDaoMapper; import com.ruoyi.system.fantang.service.IFtReportMealsDaoService; @@ -37,4 +39,18 @@ public class FtReportMealsDaoServiceImpl extends ServiceImpl listPayoff() { return ftReportMealVoMapper.listPayoff(); } + + @Override + public Long countBillingBetween(ReportMealsDayEntity dao) { + this.baseMapper.countBillingBetween(dao.getPatientId(), dao.getCreateAt(), dao.getSelectBillingDate()); +// FtReportMealsDao ftReportMealsDao = new FtReportMealsDao(); +// QueryWrapper wrapper = new QueryWrapper<>(); +// wrapper +// .eq("patient_id", dao.getPatientId()) +// .eq("settlement_flag", 0) +// .between("create_at", dao.getCreateAt(), dao.getSelectBillingDate()); +// List mealsDaoList = this.baseMapper.selectList(wrapper); + return null; + + } } diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json index 5461a0f52..4be0e173d 100644 --- a/ruoyi-ui/package.json +++ b/ruoyi-ui/package.json @@ -47,23 +47,27 @@ "echarts": "4.2.1", "element-ui": "2.13.2", "file-saver": "2.0.1", - "js-beautify": "1.10.2", "fuse.js": "3.4.4", + "js-beautify": "1.10.2", "js-cookie": "2.2.0", "jsencrypt": "3.0.0-rc.1", + "less": "^3.12.2", + "less-loader": "^7.1.0", "normalize.css": "7.0.0", "nprogress": "0.2.0", "path-to-regexp": "2.4.0", + "quill": "1.3.7", "screenfull": "4.2.0", "sortablejs": "1.8.4", "vue": "2.6.10", "vue-count-to": "1.0.13", - "quill": "1.3.7", "vue-cropper": "0.4.9", "vue-router": "3.0.2", "vue-splitpane": "1.0.4", "vuedraggable": "2.20.0", - "vuex": "3.1.0" + "vuex": "3.1.0", + "vux": "^2.9.4", + "vux-loader": "^1.2.9" }, "devDependencies": { "@vue/cli-plugin-babel": "4.4.4", diff --git a/ruoyi-ui/src/api/fantang/meals.js b/ruoyi-ui/src/api/fantang/meals.js index 47eb60154..901f8ae84 100644 --- a/ruoyi-ui/src/api/fantang/meals.js +++ b/ruoyi-ui/src/api/fantang/meals.js @@ -87,3 +87,13 @@ export function getLastSettlementDate(patientId) { method: 'get', }) } + + +// 计算两个日期之间的结算数据 +export function countBillingBetween(query) { + return request({ + url: '/fantang/meals/countBillingBetween', + method: 'get', + params: query + }) +} diff --git a/ruoyi-ui/src/api/fantang/prepayment.js b/ruoyi-ui/src/api/fantang/prepayment.js index 2be85ef03..1c8c63c17 100644 --- a/ruoyi-ui/src/api/fantang/prepayment.js +++ b/ruoyi-ui/src/api/fantang/prepayment.js @@ -57,6 +57,14 @@ export function getPrepayment(prepaymentId) { }) } +// 通过病人id查询收费管理详细 +export function getPrepaymentByPatientId(patientId) { + return request({ + url: '/fantang/prepayment/getPrepaymentByPatientId/' + patientId, + method: 'get' + }) +} + // 新增收费管理 export function addPrepayment(data) { return request({ diff --git a/ruoyi-ui/src/api/fantang/settle.js b/ruoyi-ui/src/api/fantang/settle.js index 2396a837e..ecd229ce6 100644 --- a/ruoyi-ui/src/api/fantang/settle.js +++ b/ruoyi-ui/src/api/fantang/settle.js @@ -1,5 +1,21 @@ import request from '@/utils/request' +/** + * 获取指定用户最后一次结算日期 + * 作者: czx + * 日期:2020年12月2日 + * 功能:向后台获取指定用户最后一次结算日期,显示在收费弹出层 + * @param patientId + */ +export function getLastBillingDateByPatientId(patientId) { + return request({ + url: '/fantang/settle/getLastBillingDateByPatientId/' + patientId, + method: 'get' + }) +} + + + // 查询结算报列表 export function listSettle(query) { return request({ @@ -50,4 +66,4 @@ export function exportSettle(query) { method: 'get', params: query }) -} \ No newline at end of file +} diff --git a/ruoyi-ui/src/views/fantang/settle/index.vue b/ruoyi-ui/src/views/fantang/settle/index.vue index 5f3aa39ce..a9a19044d 100644 --- a/ruoyi-ui/src/views/fantang/settle/index.vue +++ b/ruoyi-ui/src/views/fantang/settle/index.vue @@ -160,39 +160,65 @@ /> - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -234,12 +260,40 @@ import {addSettle, delSettle, exportSettle, getSettle, listSettle, updateSettle} from "@/api/fantang/settle"; import {listAll, listNoPay, listPayoff} from "@/api/fantang/meals"; import {getUserProfile} from "../../../api/system/user"; +import {getPrepaymentByPatientId} from "../../../api/fantang/prepayment"; +import {getLastSettlementDate} from "../../../api/fantang/meals"; +import { dateFormat } from 'vux' export default { name: "Settle", components: {}, data() { return { + pickerOptions: { + disabledDate(time) { + return time.getTime() > Date.now(); + }, + shortcuts: [{ + text: '今天', + onClick(picker) { + picker.$emit('pick', new Date()); + } + }, { + text: '昨天', + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24); + picker.$emit('pick', date); + } + }, { + text: '一周前', + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', date); + } + }] + }, // 权限相关的参数 userName: null, roleGroup: null, @@ -256,12 +310,23 @@ export default { name: null, departName: null, bedId: null, + price: null, receivable: null, + // 应收 netPeceipt: null, + // 已收预付费 prepayment: null, - settlementDate: null, + // 结算日期 + settlementDays: null, + // 操作员 userName: null, + // 计费周期 + billingCycle: null, + // 上一次结算日期 + lastBillingDate: null, + // 选择结算日期 + selectBillingDate: null, }, // 结算类型字典 @@ -343,6 +408,20 @@ export default { }); }, methods: { + // 变更结算日期计算 + changeBillingDate(value) { + var dateSpan, iDays; + let sDate1 = Date.parse(this.formAddNewSettlement.lastBillingDate); + let sDate2 = Date.parse(value); + dateSpan = sDate2 - sDate1; + if(dateSpan <=0){ + this.msgError("你现在的结算日期小于上一次结算日期!!"); + } else { + dateSpan = Math.abs(dateSpan); + iDays = Math.floor(dateSpan / (24 * 3600 * 1000)); + this.formAddNewSettlement.settlementDays = iDays; + } + }, // 获取用户相关信息 myGetUser() { getUserProfile().then(response => { @@ -354,17 +433,26 @@ export default { // 日常伙食费结算操作按钮 clickAddNewSettlement(row) { - this.flagAddNewSettlementOpen = true; - this.flagAddPrepaymentShow = false; - this.formAddNewSettlement.hospitalId = row.hospitalId; - this.formAddNewSettlement.name = row.name; - this.formAddNewSettlement.departName = row.departName; - this.formAddNewSettlement.bedId = row.bedId; - this.formAddNewSettlement.patientId = row.patientId; - this.formAddNewSettlement.price = row.price; - this.formAddNewSettlement.prepayment = row.prepayment; - this.formAddNewSettlement.netPeceipt = null; - this.formAddNewSettlement.userName = this.userName; + getLastSettlementDate(row.patientId).then(response =>{ + console.log("getLastBillingDateByPatientId-->", response); + this.formAddNewSettlement.lastBillingDate = response.data.settlementAt; + this.formAddNewSettlement.settlementDays = response.data.days; + }); + + getPrepaymentByPatientId(row.patientId).then(response => { + console.log("row-->", response); + this.flagAddNewSettlementOpen = true; + this.flagAddPrepaymentShow = false; + this.formAddNewSettlement.hospitalId = row.hospitalId; + this.formAddNewSettlement.name = row.name; + this.formAddNewSettlement.departName = row.departName; + this.formAddNewSettlement.bedId = row.bedId; + this.formAddNewSettlement.patientId = row.patientId; + this.formAddNewSettlement.price = row.price; + this.formAddNewSettlement.prepayment = response.data.prepaid; + this.formAddNewSettlement.netPeceipt = null; + this.formAddNewSettlement.userName = this.userName; + }); }, // 出院伙食费结算按钮 @@ -407,6 +495,12 @@ export default { this.loading = false; }); }, + + // 取消按钮 + clickFormAddNewSettlementCancel() { + this.flagAddNewSettlementOpen = false; + this.reset(); + }, // 取消按钮 cancel() { this.open = false;