预付费出院结清,收费

This commit is contained in:
ryoeiken 2021-02-10 10:25:49 +08:00
parent ffa745bac0
commit 8d6c43e457
4 changed files with 82 additions and 75 deletions

View File

@ -3,7 +3,6 @@ package com.ruoyi.system.fantang.controller;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.config.RuoYiConfig;
@ -22,6 +21,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -64,10 +64,6 @@ public class FtPrepaymentDaoController extends BaseController {
*/ */
@GetMapping("/getPrepaymentByPatientId/{patientId}") @GetMapping("/getPrepaymentByPatientId/{patientId}")
public AjaxResult getPrepaymentByPatientId(@PathVariable("patientId") Long patientId) { public AjaxResult getPrepaymentByPatientId(@PathVariable("patientId") Long patientId) {
// FtPrepaymentVo dao = iFtPrepaymentDaoService.getCountById(patientId);
// if (dao == null)
// return AjaxResult.error("无该记录");
// return AjaxResult.success("操作成功", dao);
FtPrepaymentDao ftPrepaymentDao = iFtPrepaymentDaoService.getByPatientId(patientId); FtPrepaymentDao ftPrepaymentDao = iFtPrepaymentDaoService.getByPatientId(patientId);
if (ftPrepaymentDao == null) { if (ftPrepaymentDao == null) {
return AjaxResult.error("无该记录"); return AjaxResult.error("无该记录");
@ -164,14 +160,9 @@ public class FtPrepaymentDaoController extends BaseController {
@PreAuthorize("@ss.hasPermi('fantang:prepayment:add')") @PreAuthorize("@ss.hasPermi('fantang:prepayment:add')")
@Log(title = "收费管理", businessType = BusinessType.INSERT) @Log(title = "收费管理", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody FtPrepaymentVo ftPrepaymentDao) { public AjaxResult add(@RequestBody FtPrepaymentDao ftPrepaymentDao) {
Long patientId = ftPrepaymentDao.getPatientId();
QueryWrapper<FtPrepaymentVo> wrapper = new QueryWrapper<>();
wrapper.eq("patient_id", patientId);
ftPrepaymentDao.setCollectAt(new Date()); ftPrepaymentDao.setCollectAt(new Date());
ftPrepaymentDao.setSettlementFlag(0L);
return toAjax(iFtPrepaymentDaoService.save(ftPrepaymentDao) ? 1 : 0); return toAjax(iFtPrepaymentDaoService.save(ftPrepaymentDao) ? 1 : 0);
} }
@ -195,6 +186,9 @@ public class FtPrepaymentDaoController extends BaseController {
return toAjax(iFtPrepaymentDaoService.removeByIds(Arrays.asList(prepaymentIds)) ? 1 : 0); return toAjax(iFtPrepaymentDaoService.removeByIds(Arrays.asList(prepaymentIds)) ? 1 : 0);
} }
/**
* 生成 pdf 收据
*/
@PostMapping("/generateReceiptPdf") @PostMapping("/generateReceiptPdf")
public AjaxResult generateReceiptPdf(@RequestBody JSONObject params) { public AjaxResult generateReceiptPdf(@RequestBody JSONObject params) {
@ -213,6 +207,21 @@ public class FtPrepaymentDaoController extends BaseController {
String downloadPath = "profile/upload/饭堂票据" + patientId + ".pdf"; String downloadPath = "profile/upload/饭堂票据" + patientId + ".pdf";
return AjaxResult.success(fileWebUrl + downloadPath); return AjaxResult.success(fileWebUrl + downloadPath);
}
/**
* 出院结清
*/
@PutMapping("/leaveSettlePrepayment/{prepaymentId}")
public AjaxResult leaveSettlePrepayment(@PathVariable Long prepaymentId){
FtPrepaymentDao prepaymentDao = new FtPrepaymentDao();
prepaymentDao.setPrepaymentId(prepaymentId);
prepaymentDao.setPrepaid(new BigDecimal(0));
prepaymentDao.setSettlementFlag(1);
prepaymentDao.setSettlementAt(new Date());
iFtPrepaymentDaoService.updateById(prepaymentDao);
return AjaxResult.success("已结清");
} }
} }

View File

@ -74,7 +74,7 @@ public class FtPrepaymentDao implements Serializable {
* 结算标志 * 结算标志
*/ */
@Excel(name = "结算标志") @Excel(name = "结算标志")
private Long settlementFlag; private Integer settlementFlag;
/** /**
* 预付费金额 * 预付费金额

View File

@ -109,3 +109,10 @@ export function generateReceiptPdf(data) {
data: data data: data
}) })
} }
export function leaveSettlePrepayment(prepaymentId) {
return request({
url: '/fantang/prepayment/leaveSettlePrepayment/' + prepaymentId,
method: 'put'
})
}

View File

@ -19,7 +19,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="结算标志" prop="settlementFlag"> <el-form-item label="是否已缴费" prop="settlementFlag" label-width="90px">
<el-select v-model="queryParams.settlementFlag" @change="selectSettlementFlag" placeholder="请选择"> <el-select v-model="queryParams.settlementFlag" @change="selectSettlementFlag" placeholder="请选择">
<el-option <el-option
v-for="item in settlementFlagOptions" v-for="item in settlementFlagOptions"
@ -29,7 +29,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="预付费时间" prop="prepaidAt" label-width="50"> <el-form-item label="预付费时间" prop="prepaidAt" label-width="50" v-if="payFlag">
<el-date-picker clearable size="small" style="width: 200px" <el-date-picker clearable size="small" style="width: 200px"
v-model="queryParams.prepaidAt" v-model="queryParams.prepaidAt"
type="date" type="date"
@ -101,7 +101,7 @@
:modal="true"> :modal="true">
<el-form ref="formAddPrepayment" :model="formAddPrepayment" :rules="rules" label-width="120px"> <el-form ref="formAddPrepayment" :model="formAddPrepayment" :rules="rules" label-width="120px">
<el-form-item label="住院号" prop="hospitalId"> <el-form-item label="住院号" prop="hospitalId">
<el-autocomplete <el-autocomplete :disabled="payFlag"
popper-class="my-autocomplete" popper-class="my-autocomplete"
v-model="formAddPrepayment.hospitalId" v-model="formAddPrepayment.hospitalId"
:fetch-suggestions="querySearch" :fetch-suggestions="querySearch"
@ -131,7 +131,8 @@
<el-input v-model="formAddPrepayment.prepaid" <el-input v-model="formAddPrepayment.prepaid"
onKeypress="return(/[\d]/.test(String.fromCharCode(event.keyCode)))" type="number" onKeypress="return(/[\d]/.test(String.fromCharCode(event.keyCode)))" type="number"
placeholder="请输入预付费金额" placeholder="请输入预付费金额"
style="width: 250px"/> style="width: 250px"
:disabled="payFlag"/>
</el-form-item> </el-form-item>
<el-form-item label="预付费时间" prop="collectAt"> <el-form-item label="预付费时间" prop="collectAt">
<el-date-picker clearable size="small" style="width: 250px" <el-date-picker clearable size="small" style="width: 250px"
@ -144,7 +145,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitformAddPrepayment"> </el-button> <el-button type="primary" @click="submitLeaveSettle"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
<el-button @click="clickPrintSettle">打印收据</el-button> <el-button @click="clickPrintSettle">打印收据</el-button>
</div> </div>
@ -158,6 +159,7 @@
<el-form ref="formAddPrepayment" :model="formAddPrepayment" :rules="rules" label-width="120px"> <el-form ref="formAddPrepayment" :model="formAddPrepayment" :rules="rules" label-width="120px">
<el-form-item label="住院号" prop="hospitalId"> <el-form-item label="住院号" prop="hospitalId">
<el-autocomplete <el-autocomplete
:disabled="!this.payFlag"
popper-class="my-autocomplete" popper-class="my-autocomplete"
v-model="formAddPrepayment.hospitalId" v-model="formAddPrepayment.hospitalId"
:fetch-suggestions="querySearch" :fetch-suggestions="querySearch"
@ -187,7 +189,8 @@
<el-input v-model="formAddPrepayment.prepaid" <el-input v-model="formAddPrepayment.prepaid"
onKeypress="return(/[\d]/.test(String.fromCharCode(event.keyCode)))" type="number" onKeypress="return(/[\d]/.test(String.fromCharCode(event.keyCode)))" type="number"
placeholder="请输入预付费金额" placeholder="请输入预付费金额"
style="width: 250px"/> style="width: 250px"
:disabled="!this.payFlag"/>
</el-form-item> </el-form-item>
<el-form-item label="预付费时间" prop="collectAt"> <el-form-item label="预付费时间" prop="collectAt">
<el-date-picker clearable size="small" style="width: 250px" <el-date-picker clearable size="small" style="width: 250px"
@ -200,9 +203,8 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitformChangePrepayment"> </el-button> <el-button type="primary" @click="submitFormChangePrepayment"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
<el-button @click="clickPrintSettle">打印收据</el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -216,16 +218,18 @@ import {
exportPrepayment, exportPrepayment,
generateReceiptPdf, generateReceiptPdf,
getPrepayment, getPrepayment,
leaveSettlePrepayment,
listNoPrepayment, listNoPrepayment,
listPrepay listPrepay
} from "../../../api/fantang/prepayment"; } from "../../../api/fantang/prepayment";
import {getUserProfile} from "../../../api/system/user";
export default { export default {
name: "Prepayment", name: "Prepayment",
components: {}, components: {},
data() { data() {
return { return {
//
payFlag: true,
openChargeDialogTitle: null, openChargeDialogTitle: null,
openChargeDialogFlag: false, openChargeDialogFlag: false,
// //
@ -238,7 +242,7 @@ export default {
label: '已缴费' label: '已缴费'
}, { }, {
value: 1, value: 1,
label: '未费' label: '未费'
}], }],
suggestionList: [], suggestionList: [],
NoPrepayments: [], NoPrepayments: [],
@ -279,7 +283,10 @@ export default {
name: null, name: null,
prepaid: null, prepaid: null,
collectAt: null, collectAt: null,
row: null row: null,
userName: null,
patientId: null,
settlementFlag: null,
}, },
// //
rules: { rules: {
@ -296,7 +303,6 @@ export default {
created() { created() {
this.getList(); this.getList();
this.buildSuggestionList(); this.buildSuggestionList();
this.myGetUser();
}, },
mounted() { mounted() {
}, },
@ -310,8 +316,7 @@ export default {
// //
clickSettle(row) { clickSettle(row) {
this.open = true; this.open = true;
getPrepayment(row.prepaymentId).then(response =>{ getPrepayment(row.prepaymentId).then(response => {
console.log(response);
this.formAddPrepayment.hospitalId = row.hospitalId; this.formAddPrepayment.hospitalId = row.hospitalId;
this.formAddPrepayment.name = row.name; this.formAddPrepayment.name = row.name;
this.formAddPrepayment.collectAt = response.data.prepayment = response.data.collectAt; this.formAddPrepayment.collectAt = response.data.prepayment = response.data.collectAt;
@ -324,9 +329,7 @@ export default {
if (this.queryParams.settlementFlag === 0) { if (this.queryParams.settlementFlag === 0) {
// //
listPrepay(this.queryParams).then(response => { listPrepay(this.queryParams).then(response => {
console.log(response);
this.prepaymentList = response.rows.map((item) => { this.prepaymentList = response.rows.map((item) => {
console.log(item);
item.noPrepayment = true; item.noPrepayment = true;
return item; return item;
}); });
@ -344,27 +347,16 @@ export default {
generateReceiptPdf(row).then(response => { generateReceiptPdf(row).then(response => {
window.open(response.msg) window.open(response.msg)
}) })
console.log(process.env);
},
//
myGetUser() {
getUserProfile().then(response => {
this.user = response.data;
this.roleGroup = response.roleGroup;
this.postGroup = response.postGroup;
});
}, },
// //
selectSettlementFlag(value) { selectSettlementFlag(value) {
this.payFlag = value !== 1;
this.getList(); this.getList();
}, },
// //
querySearch(queryString, cb) { querySearch(queryString, cb) {
var restaurants = this.suggestionList; var restaurants = this.suggestionList;
console.log("restaurants-->", restaurants);
console.log("queryString", queryString)
console.log("cb-->", cb)
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants; var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
// callback // callback
cb(results); cb(results);
@ -379,7 +371,6 @@ export default {
buildSuggestionList() { buildSuggestionList() {
listNoPrepayment(this.queryParams).then(response => { listNoPrepayment(this.queryParams).then(response => {
console.log("aaaaaaaaaaaaa", response);
let prepaymentList = response.rows; let prepaymentList = response.rows;
this.suggestionList = prepaymentList.map(item => { this.suggestionList = prepaymentList.map(item => {
return { return {
@ -398,7 +389,6 @@ export default {
this.loading = true; this.loading = true;
listNoPrepayment(this.queryParams).then(response => { listNoPrepayment(this.queryParams).then(response => {
this.prepaymentList = response.rows.map(item => { this.prepaymentList = response.rows.map(item => {
console.log(item);
item.noPrepayment = false; item.noPrepayment = false;
return item; return item;
}); });
@ -428,12 +418,12 @@ export default {
// //
handleIconClick(ev) { handleIconClick(ev) {
console.log(ev);
}, },
// //
cancel() { cancel() {
this.open = false; this.open = false;
this.openChargeDialogFlag = false;
this.reset(); this.reset();
}, },
// //
@ -482,7 +472,6 @@ export default {
this.reset(); this.reset();
const prepaymentId = row.prepaymentId || this.ids const prepaymentId = row.prepaymentId || this.ids
console.log('row:',row);
this.formAddPrepayment.hospitalId = row.hospitalId; this.formAddPrepayment.hospitalId = row.hospitalId;
this.formAddPrepayment.name = row.name; this.formAddPrepayment.name = row.name;
this.formAddPrepayment.collectAt = new Date(); this.formAddPrepayment.collectAt = new Date();
@ -490,36 +479,38 @@ export default {
this.formAddPrepayment.row = row; this.formAddPrepayment.row = row;
this.openChargeDialogFlag = true; this.openChargeDialogFlag = true;
}, },
submitformChangePrepayment() { submitFormChangePrepayment() {
this.formAddPrepayment.collectBy = this.$store.state.user.name;
this.formAddPrepayment.patientId = this.formAddPrepayment.row.patientId;
this.formAddPrepayment.settlementFlag = 0;
this.formAddPrepayment.collectAt = null;
this.formAddPrepayment.prepaidAt = null;
console.log("bbbbbbbbbb", this.formAddPrepayment);
addPrepayment(this.formAddPrepayment).then(response => {
this.msgSuccess("已收费")
this.openChargeDialogFlag = false;
this.reset();
this.getList();
})
}, },
/** 提交按钮 */ /** 提交按钮 */
submitformAddPrepayment() { submitFormAddPrepayment() {
this.formAddPrepayment.userName = this.$store.state.user.name
// 1 console.log(this.formAddPrepayment);
let hospitalId = this.formAddPrepayment.hospitalId;
this.formAddPrepayment.collectBy = this.user.userName;
this.$refs["formAddPrepayment"].validate(valid => {
if (valid) {
if (!this.suggestionList.find(x => {
return x.value === hospitalId;
})) {
this.msgError("未找到该住院号记录,请先添加!");
return;
}
this.formAddPrepayment.prepaidAt = null;
console.log("form -->", this.formAddPrepayment)
addPrepayment(this.formAddPrepayment).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
this.buildSuggestionList();
});
}
});
}, },
submitLeaveSettle() {
console.log(this.formAddPrepayment.row);
leaveSettlePrepayment(this.formAddPrepayment.row.prepaymentId).then(response => {
this.msgSuccess("已结清")
this.open = false;
this.reset();
this.getList();
})
},
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const prepaymentIds = row.prepaymentId || this.ids; const prepaymentIds = row.prepaymentId || this.ids;