发票管理回款登记,回款管理 CRUD

This commit is contained in:
ryoeiken 2021-01-25 11:44:54 +08:00
parent d92f8cd997
commit 79d8bf1e40
10 changed files with 693 additions and 482 deletions

View File

@ -10,7 +10,6 @@ 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.FtInvoiceDao;
import com.ruoyi.system.fantang.domain.FtReturnDao;
import com.ruoyi.system.fantang.domain.FtSettlementDao;
import com.ruoyi.system.fantang.service.IFtInvoiceDaoService;
import com.ruoyi.system.fantang.service.IFtReturnDaoService;
@ -147,14 +146,13 @@ public class FtInvoiceDaoController extends BaseController {
iFtInvoiceDaoService.save(invoiceDao);
// 跟踪回款
if (invoiceType == 2) {
FtReturnDao ftReturnDao = new FtReturnDao();
ftReturnDao.setInvoiceId(invoiceDao.getId());
ftReturnDao.setReturnAt(new Date());
ftReturnDao.setReturnFlag(0);
ftReturnDaoService.save(ftReturnDao);
}
// if (invoiceType == 2) {
// FtReturnDao ftReturnDao = new FtReturnDao();
// ftReturnDao.setInvoiceId(invoiceDao.getId());
// ftReturnDao.setReturnFlag(0);
//
// ftReturnDaoService.save(ftReturnDao);
// }
FtSettlementDao settlementDao = new FtSettlementDao();
settlementDao.setSettleId(params.getLong("settleId"));

View File

@ -1,45 +1,46 @@
package com.ruoyi.system.fantang.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.fantang.domain.FtReturnDao;
import com.ruoyi.system.fantang.service.IFtReturnDaoService;
import com.ruoyi.common.utils.poi.ExcelUtil;
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.FtInvoiceDao;
import com.ruoyi.system.fantang.domain.FtReturnDao;
import com.ruoyi.system.fantang.service.IFtInvoiceDaoService;
import com.ruoyi.system.fantang.service.IFtReturnDaoService;
import lombok.RequiredArgsConstructor;
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.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* 回款登记Controller
*
*
* @author ft
* @date 2021-01-04
* @date 2021-01-25
*/
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/fantang/invoiceReturn" )
@RequestMapping("/fantang/returnManage")
public class FtReturnDaoController extends BaseController {
private final IFtReturnDaoService iFtReturnDaoService;
private final IFtInvoiceDaoService iFtInvoiceDaoService;
/**
* 查询回款登记列表
*/
@PreAuthorize("@ss.hasPermi('fantang:invoiceReturn:list')")
@PreAuthorize("@ss.hasPermi('fantang:returnManage:list')")
@GetMapping("/list")
public TableDataInfo list(FtReturnDao ftReturnDao) {
startPage();
@ -50,29 +51,29 @@ public class FtReturnDaoController extends BaseController {
/**
* 导出回款登记列表
*/
@PreAuthorize("@ss.hasPermi('fantang:invoiceReturn:export')" )
@Log(title = "回款登记" , businessType = BusinessType.EXPORT)
@GetMapping("/export" )
@PreAuthorize("@ss.hasPermi('fantang:returnManage:export')")
@Log(title = "回款登记", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(FtReturnDao ftReturnDao) {
List<FtReturnDao> list = iFtReturnDaoService.queryList(ftReturnDao);
ExcelUtil<FtReturnDao> util = new ExcelUtil<FtReturnDao>(FtReturnDao.class);
return util.exportExcel(list, "invoiceReturn" );
return util.exportExcel(list, "returnManage");
}
/**
* 获取回款登记详细信息
*/
@PreAuthorize("@ss.hasPermi('fantang:invoiceReturn:query')" )
@GetMapping(value = "/{id}" )
public AjaxResult getInfo(@PathVariable("id" ) Long id) {
@PreAuthorize("@ss.hasPermi('fantang:returnManage:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) {
return AjaxResult.success(iFtReturnDaoService.getById(id));
}
/**
* 新增回款登记
*/
@PreAuthorize("@ss.hasPermi('fantang:invoiceReturn:add')" )
@Log(title = "回款登记" , businessType = BusinessType.INSERT)
@PreAuthorize("@ss.hasPermi('fantang:returnManage:add')")
@Log(title = "回款登记", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody FtReturnDao ftReturnDao) {
return toAjax(iFtReturnDaoService.save(ftReturnDao) ? 1 : 0);
@ -81,8 +82,8 @@ public class FtReturnDaoController extends BaseController {
/**
* 修改回款登记
*/
@PreAuthorize("@ss.hasPermi('fantang:invoiceReturn:edit')" )
@Log(title = "回款登记" , businessType = BusinessType.UPDATE)
@PreAuthorize("@ss.hasPermi('fantang:returnManage:edit')")
@Log(title = "回款登记", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody FtReturnDao ftReturnDao) {
return toAjax(iFtReturnDaoService.updateById(ftReturnDao) ? 1 : 0);
@ -91,10 +92,74 @@ public class FtReturnDaoController extends BaseController {
/**
* 删除回款登记
*/
@PreAuthorize("@ss.hasPermi('fantang:invoiceReturn:remove')" )
@Log(title = "回款登记" , businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}" )
@PreAuthorize("@ss.hasPermi('fantang:returnManage:remove')")
@Log(title = "回款登记", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(iFtReturnDaoService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
}
@PostMapping("/addToReturn")
public AjaxResult addToReturn(@RequestBody JSONObject params) {
System.out.println(params);
// 回款金额
BigDecimal returnPrice = params.getBigDecimal("returnPrice");
// 开票金额
BigDecimal invoiceAmount = params.getBigDecimal("invoiceAmount");
// 余额
BigDecimal nowBalancePrice;
// 发票 id
Long id = params.getLong("id");
if (returnPrice.compareTo(invoiceAmount) > 0) {
return AjaxResult.error("该次回款超出开票金额");
}
// 查找该发票上次的回款记录
FtReturnDao lastReturn = iFtReturnDaoService.selectLastReturn(id);
if (lastReturn == null) {
// 余额
nowBalancePrice = invoiceAmount.subtract(returnPrice);
} else {
BigDecimal lastBalancePrice = lastReturn.getBalancePrice();
if (lastBalancePrice.compareTo(returnPrice) < 0) {
return AjaxResult.error("该次回款超出开票金额");
} else {
nowBalancePrice = lastBalancePrice.subtract(returnPrice);
}
}
FtReturnDao ftReturnDao = new FtReturnDao();
ftReturnDao.setInvoiceId(id);
ftReturnDao.setReturnPrice(returnPrice);
ftReturnDao.setVoucherUrl(params.getString("voucherUrl"));
ftReturnDao.setReturnAt(new Date());
ftReturnDao.setBalancePrice(nowBalancePrice);
if (nowBalancePrice.compareTo(new BigDecimal(0)) == 0) {
FtInvoiceDao ftInvoiceDao = new FtInvoiceDao();
ftInvoiceDao.setId(id);
ftInvoiceDao.setInvoiceType(1);
iFtInvoiceDaoService.updateById(ftInvoiceDao);
}
iFtReturnDaoService.save(ftReturnDao);
return AjaxResult.success("回款成功");
}
@GetMapping("/getReturnByInvoice/{id}")
public TableDataInfo getReturnByInvoice(@PathVariable Long id) {
startPage();
QueryWrapper<FtReturnDao> wrapper = new QueryWrapper<>();
wrapper.eq("invoice_id", id);
List<FtReturnDao> list = iFtReturnDaoService.list(wrapper);
return getDataTable(list);
}
}

View File

@ -21,7 +21,7 @@ import java.math.BigDecimal;
* 回款登记对象 ft_return
*
* @author ft
* @date 2021-01-04
* @date 2021-01-25
*/
@Data
@ToString

View File

@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* 回款登记Mapper接口
*
* @author ft
* @date 2021-01-04
* @date 2021-01-25
*/
public interface FtReturnDaoMapper extends BaseMapper<FtReturnDao> {

View File

@ -8,7 +8,7 @@ import java.util.List;
* 回款登记Service接口
*
* @author ft
* @date 2021-01-04
* @date 2021-01-25
*/
public interface IFtReturnDaoService extends IService<FtReturnDao> {
@ -16,4 +16,6 @@ public interface IFtReturnDaoService extends IService<FtReturnDao> {
* 查询列表
*/
List<FtReturnDao> queryList(FtReturnDao ftReturnDao);
FtReturnDao selectLastReturn(Long id);
}

View File

@ -1,22 +1,22 @@
package com.ruoyi.system.fantang.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.apache.commons.lang3.StringUtils;
import com.ruoyi.system.fantang.mapper.FtReturnDaoMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.fantang.domain.FtReturnDao;
import com.ruoyi.system.fantang.mapper.FtReturnDaoMapper;
import com.ruoyi.system.fantang.service.IFtReturnDaoService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* 回款登记Service业务层处理
*
* @author ft
* @date 2021-01-04
* @date 2021-01-25
*/
@Service
public class FtReturnDaoServiceImpl extends ServiceImpl<FtReturnDaoMapper, FtReturnDao> implements IFtReturnDaoService {
@ -24,27 +24,37 @@ public class FtReturnDaoServiceImpl extends ServiceImpl<FtReturnDaoMapper, FtRet
@Override
public List<FtReturnDao> queryList(FtReturnDao ftReturnDao) {
LambdaQueryWrapper<FtReturnDao> lqw = Wrappers.lambdaQuery();
if (ftReturnDao.getInvoiceId() != null){
lqw.eq(FtReturnDao::getInvoiceId ,ftReturnDao.getInvoiceId());
if (ftReturnDao.getInvoiceId() != null) {
lqw.eq(FtReturnDao::getInvoiceId, ftReturnDao.getInvoiceId());
}
if (ftReturnDao.getReturnAt() != null){
lqw.eq(FtReturnDao::getReturnAt ,ftReturnDao.getReturnAt());
if (ftReturnDao.getReturnAt() != null) {
lqw.eq(FtReturnDao::getReturnAt, ftReturnDao.getReturnAt());
}
if (ftReturnDao.getReturnPrice() != null){
lqw.eq(FtReturnDao::getReturnPrice ,ftReturnDao.getReturnPrice());
if (ftReturnDao.getReturnPrice() != null) {
lqw.eq(FtReturnDao::getReturnPrice, ftReturnDao.getReturnPrice());
}
if (ftReturnDao.getBalancePrice() != null){
lqw.eq(FtReturnDao::getBalancePrice ,ftReturnDao.getBalancePrice());
if (ftReturnDao.getBalancePrice() != null) {
lqw.eq(FtReturnDao::getBalancePrice, ftReturnDao.getBalancePrice());
}
if (StringUtils.isNotBlank(ftReturnDao.getOpera())){
lqw.eq(FtReturnDao::getOpera ,ftReturnDao.getOpera());
if (StringUtils.isNotBlank(ftReturnDao.getOpera())) {
lqw.eq(FtReturnDao::getOpera, ftReturnDao.getOpera());
}
if (StringUtils.isNotBlank(ftReturnDao.getVoucherUrl())){
lqw.eq(FtReturnDao::getVoucherUrl ,ftReturnDao.getVoucherUrl());
if (StringUtils.isNotBlank(ftReturnDao.getVoucherUrl())) {
lqw.eq(FtReturnDao::getVoucherUrl, ftReturnDao.getVoucherUrl());
}
if (ftReturnDao.getReturnFlag() != null){
lqw.eq(FtReturnDao::getReturnFlag ,ftReturnDao.getReturnFlag());
if (ftReturnDao.getReturnFlag() != null) {
lqw.eq(FtReturnDao::getReturnFlag, ftReturnDao.getReturnFlag());
}
return this.list(lqw);
}
@Override
public FtReturnDao selectLastReturn(Long id) {
QueryWrapper<FtReturnDao> wrapper = new QueryWrapper<>();
wrapper.eq("invoice_id", id);
wrapper.orderByDesc("return_at");
wrapper.last("limit 1");
return this.baseMapper.selectOne(wrapper);
}
}

View File

@ -0,0 +1,70 @@
import request from '@/utils/request'
// 查询回款登记列表
export function listReturnManage(query) {
return request({
url: '/fantang/returnManage/list',
method: 'get',
params: query
})
}
// 查询回款登记详细
export function getReturnManage(id) {
return request({
url: '/fantang/returnManage/' + id,
method: 'get'
})
}
// 根据发票 id 查询回款记录
export function getReturnByInvoice(id) {
return request({
url: '/fantang/returnManage/getReturnByInvoice/' + id,
method: 'get'
})
}
// 新增回款登记
export function addReturnManage(data) {
return request({
url: '/fantang/returnManage',
method: 'post',
data: data
})
}
// 新增回款登记
export function addToReturn(data) {
return request({
url: '/fantang/returnManage/addToReturn',
method: 'post',
data: data
})
}
// 修改回款登记
export function updateReturnManage(data) {
return request({
url: '/fantang/returnManage',
method: 'put',
data: data
})
}
// 删除回款登记
export function delReturnManage(id) {
return request({
url: '/fantang/returnManage/' + id,
method: 'delete'
})
}
// 导出回款登记
export function exportReturnManage(query) {
return request({
url: '/fantang/returnManage/export',
method: 'get',
params: query
})
}

View File

@ -1,356 +1,3 @@
<!--<template>-->
<!-- <div class="app-container">-->
<!-- <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">-->
<!-- <el-form-item label="对应发票id" prop="invoiceId">-->
<!-- <el-input-->
<!-- v-model="queryParams.invoiceId"-->
<!-- placeholder="请输入对应发票id"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="回款日期" prop="returnAt">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="queryParams.returnAt"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择回款日期">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="回款金额" prop="returnPrice">-->
<!-- <el-input-->
<!-- v-model="queryParams.returnPrice"-->
<!-- placeholder="请输入回款金额"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="余额" prop="balancePrice">-->
<!-- <el-input-->
<!-- v-model="queryParams.balancePrice"-->
<!-- placeholder="请输入余额"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="操作员" prop="opera">-->
<!-- <el-input-->
<!-- v-model="queryParams.opera"-->
<!-- placeholder="请输入操作员"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="凭证的图片url" prop="voucherUrl">-->
<!-- <el-input-->
<!-- v-model="queryParams.voucherUrl"-->
<!-- placeholder="请输入凭证的图片url"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否完成回款标志" prop="returnFlag">-->
<!-- <el-input-->
<!-- v-model="queryParams.returnFlag"-->
<!-- placeholder="请输入是否完成回款标志"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item>-->
<!-- <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>-->
<!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <el-row :gutter="10" class="mb8">-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['fantang:invoiceReturn:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['fantang:invoiceReturn:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['fantang:invoiceReturn:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['fantang:invoiceReturn:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
<!-- </el-row>-->
<!-- <el-table v-loading="loading" :data="invoiceReturnList" @selection-change="handleSelectionChange">-->
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table-column label="id" align="center" prop="id" v-if="false"/>-->
<!-- <el-table-column label="对应发票id" align="center" prop="invoiceId" />-->
<!-- <el-table-column label="回款日期" align="center" prop="returnAt" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.returnAt, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="回款金额" align="center" prop="returnPrice" />-->
<!-- <el-table-column label="余额" align="center" prop="balancePrice" />-->
<!-- <el-table-column label="操作员" align="center" prop="opera" />-->
<!-- <el-table-column label="凭证的图片url" align="center" prop="voucherUrl" />-->
<!-- <el-table-column label="是否完成回款标志" align="center" prop="returnFlag" />-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['fantang:invoiceReturn:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['fantang:invoiceReturn:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table>-->
<!-- -->
<!-- <pagination-->
<!-- v-show="total>0"-->
<!-- :total="total"-->
<!-- :page.sync="queryParams.pageNum"-->
<!-- :limit.sync="queryParams.pageSize"-->
<!-- @pagination="getList"-->
<!-- />-->
<!-- &lt;!&ndash; 添加或修改回款登记对话框 &ndash;&gt;-->
<!-- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>-->
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="80px">-->
<!-- <el-form-item label="对应发票id" prop="invoiceId">-->
<!-- <el-input v-model="form.invoiceId" placeholder="请输入对应发票id" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="回款日期" prop="returnAt">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.returnAt"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择回款日期">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="回款金额" prop="returnPrice">-->
<!-- <el-input v-model="form.returnPrice" placeholder="请输入回款金额" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="余额" prop="balancePrice">-->
<!-- <el-input v-model="form.balancePrice" placeholder="请输入余额" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="操作员" prop="opera">-->
<!-- <el-input v-model="form.opera" placeholder="请输入操作员" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="凭证的图片url" prop="voucherUrl">-->
<!-- <el-input v-model="form.voucherUrl" placeholder="请输入凭证的图片url" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否完成回款标志" prop="returnFlag">-->
<!-- <el-input v-model="form.returnFlag" placeholder="请输入是否完成回款标志" />-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="submitForm"> </el-button>-->
<!-- <el-button @click="cancel"> </el-button>-->
<!-- </div>-->
<!-- </el-dialog>-->
<!-- </div>-->
<!--</template>-->
<!--<script>-->
<!--import { listInvoiceReturn, getInvoiceReturn, delInvoiceReturn, addInvoiceReturn, updateInvoiceReturn, exportInvoiceReturn } from "@/api/fantang/invoiceReturn";-->
<!--export default {-->
<!-- name: "InvoiceReturn",-->
<!-- components: {-->
<!-- },-->
<!-- data() {-->
<!-- return {-->
<!-- // -->
<!-- loading: true,-->
<!-- // -->
<!-- ids: [],-->
<!-- // -->
<!-- single: true,-->
<!-- // -->
<!-- multiple: true,-->
<!-- // -->
<!-- showSearch: true,-->
<!-- // -->
<!-- total: 0,-->
<!-- // -->
<!-- invoiceReturnList: [],-->
<!-- // -->
<!-- title: "",-->
<!-- // -->
<!-- open: false,-->
<!-- // -->
<!-- queryParams: {-->
<!-- pageNum: 1,-->
<!-- pageSize: 10,-->
<!-- invoiceId: undefined,-->
<!-- returnAt: undefined,-->
<!-- returnPrice: undefined,-->
<!-- balancePrice: undefined,-->
<!-- opera: undefined,-->
<!-- voucherUrl: undefined,-->
<!-- returnFlag: undefined-->
<!-- },-->
<!-- // -->
<!-- form: {},-->
<!-- // -->
<!-- rules: {-->
<!-- }-->
<!-- };-->
<!-- },-->
<!-- created() {-->
<!-- this.getList();-->
<!-- },-->
<!-- methods: {-->
<!-- /** 查询回款登记列表 */-->
<!-- getList() {-->
<!-- this.loading = true;-->
<!-- listInvoiceReturn(this.queryParams).then(response => {-->
<!-- this.invoiceReturnList = response.rows;-->
<!-- this.total = response.total;-->
<!-- this.loading = false;-->
<!-- });-->
<!-- },-->
<!-- // -->
<!-- cancel() {-->
<!-- this.open = false;-->
<!-- this.reset();-->
<!-- },-->
<!-- // -->
<!-- reset() {-->
<!-- this.form = {-->
<!-- id: undefined,-->
<!-- invoiceId: undefined,-->
<!-- returnAt: undefined,-->
<!-- returnPrice: undefined,-->
<!-- balancePrice: undefined,-->
<!-- opera: undefined,-->
<!-- voucherUrl: undefined,-->
<!-- returnFlag: undefined-->
<!-- };-->
<!-- this.resetForm("form");-->
<!-- },-->
<!-- /** 搜索按钮操作 */-->
<!-- handleQuery() {-->
<!-- this.queryParams.pageNum = 1;-->
<!-- this.getList();-->
<!-- },-->
<!-- /** 重置按钮操作 */-->
<!-- resetQuery() {-->
<!-- this.resetForm("queryForm");-->
<!-- this.handleQuery();-->
<!-- },-->
<!-- // -->
<!-- handleSelectionChange(selection) {-->
<!-- this.ids = selection.map(item => item.id)-->
<!-- this.single = selection.length!==1-->
<!-- this.multiple = !selection.length-->
<!-- },-->
<!-- /** 新增按钮操作 */-->
<!-- handleAdd() {-->
<!-- this.reset();-->
<!-- this.open = true;-->
<!-- this.title = "添加回款登记";-->
<!-- },-->
<!-- /** 修改按钮操作 */-->
<!-- handleUpdate(row) {-->
<!-- this.reset();-->
<!-- const id = row.id || this.ids-->
<!-- getInvoiceReturn(id).then(response => {-->
<!-- this.form = response.data;-->
<!-- this.open = true;-->
<!-- this.title = "修改回款登记";-->
<!-- });-->
<!-- },-->
<!-- /** 提交按钮 */-->
<!-- submitForm() {-->
<!-- this.$refs["form"].validate(valid => {-->
<!-- if (valid) {-->
<!-- if (this.form.id != null) {-->
<!-- updateInvoiceReturn(this.form).then(response => {-->
<!-- this.msgSuccess("修改成功");-->
<!-- this.open = false;-->
<!-- this.getList();-->
<!-- });-->
<!-- } else {-->
<!-- addInvoiceReturn(this.form).then(response => {-->
<!-- this.msgSuccess("新增成功");-->
<!-- this.open = false;-->
<!-- this.getList();-->
<!-- });-->
<!-- }-->
<!-- }-->
<!-- });-->
<!-- },-->
<!-- /** 删除按钮操作 */-->
<!-- handleDelete(row) {-->
<!-- const ids = row.id || this.ids;-->
<!-- this.$confirm('是否确认删除回款登记编号为"' + ids + '"的数据项?', "警告", {-->
<!-- confirmButtonText: "确定",-->
<!-- cancelButtonText: "取消",-->
<!-- type: "warning"-->
<!-- }).then(function() {-->
<!-- return delInvoiceReturn(ids);-->
<!-- }).then(() => {-->
<!-- this.getList();-->
<!-- this.msgSuccess("删除成功");-->
<!-- })-->
<!-- },-->
<!-- /** 导出按钮操作 */-->
<!-- handleExport() {-->
<!-- const queryParams = this.queryParams;-->
<!-- this.$confirm('是否确认导出所有回款登记数据项?', "警告", {-->
<!-- confirmButtonText: "确定",-->
<!-- cancelButtonText: "取消",-->
<!-- type: "warning"-->
<!-- }).then(function() {-->
<!-- return exportInvoiceReturn(queryParams);-->
<!-- }).then(response => {-->
<!-- this.download(response.msg);-->
<!-- })-->
<!-- }-->
<!-- }-->
<!--};-->
<!--</script>-->
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
@ -361,38 +8,6 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['fantang:invoice:add']"
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['fantang:invoice:edit']"
>回款登记
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['fantang:invoice:remove']"
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
@ -424,14 +39,6 @@
v-hasPermi="['fantang:invoice:edit']"
>回款登记
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['fantang:invoice:remove']"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
@ -445,25 +52,116 @@
/>
<!-- 添加或修改财务收费开票对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="应收" prop="payable">
<el-input v-model="form.payable" placeholder="请输入应收" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实收" prop="receipts">
<el-input v-model="form.receipts" placeholder="请输入实收" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开票金额" prop="invoiceAmount">
<el-input v-model="form.invoiceAmount" placeholder="请输入开票金额" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="24">
<el-form-item label="发票名" prop="invoiceName">
<el-input v-model="form.invoiceName" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="发票号" prop="invoiceNum">
<el-input v-model="form.invoiceNum" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="税号" prop="taxId">
<el-input v-model="form.taxId" :disabled="true"/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="收款方式" prop="collectionType">
<el-input v-model="form.collectionType" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="回款跟踪" prop="invoiceType">
<el-select v-model="form.invoiceType" :disabled="true">
<el-option
v-for="item in invoiceTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="回款金额" prop="returnPrice">
<el-input v-model="form.returnPrice" placeholder="请输入回款金额"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="凭证图片" prop="voucherUrl">
<uploadImage v-model="form.voucherUrl"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
<el-table :data="returnManageList">
<el-table-column label="id" align="center" prop="id" v-if="false"/>
<el-table-column label="回款时间" align="center" prop="returnAt" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.returnAt, '{y}-{m}-{d} {h}:{m}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="回款金额" align="center" prop="returnPrice"/>
<el-table-column label="待付金额" align="center" prop="balancePrice"/>
</el-table>
</el-dialog>
</div>
</template>
<script>
import {addInvoice, delInvoice, exportInvoice, getInvoice, listInvoice, updateInvoice} from "@/api/fantang/invoice";
import {delInvoice, exportInvoice, getInvoice, listInvoice} from "../../../api/fantang/invoice";
import UploadImage from '../../../components/UploadImage';
import {addToReturn, getReturnByInvoice} from "../../../api/fantang/returnManage";
export default {
name: "Invoice",
components: {},
components: {
UploadImage,
},
data() {
return {
//
returnManageList: [],
invoiceTypeOptions: [{
value: 1,
label: '已完成'
}, {
value: 2,
label: '未完成'
}],
//
loading: true,
//
@ -491,7 +189,17 @@ export default {
//
form: {},
//
rules: {}
rules: {
returnPrice: [
{required: true, message: "回款金额不能为空", trigger: "blur"},
{
required: true,
pattern: "",
message: "请输入正确的开票金额",
trigger: "blur"
}
],
}
};
},
created() {
@ -500,7 +208,7 @@ export default {
methods: {
formatInvoiceType(row) {
if (row.invoiceType === 1 || row.invoiceType === "1") {
return "完成"
return "完成"
} else {
return "未完成"
}
@ -527,11 +235,17 @@ export default {
invoiceUnit: undefined,
invoiceId: undefined,
createAt: undefined,
drawer: undefined,
collectionType: undefined,
payable: undefined,
receipts: undefined,
voucherList: undefined
invoiceNum: undefined,
invoiceName: undefined,
taxId: undefined,
invoiceType: undefined,
invoiceAmount: undefined,
voucherUrl: undefined,
returnPrice: undefined,
balancePrice: undefined,
};
this.resetForm("form");
},
@ -564,26 +278,24 @@ export default {
getInvoice(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改财务收费开票";
this.title = "回款登记";
console.log(response.data)
});
getReturnByInvoice(id).then(response => {
this.returnManageList = response.rows;
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateInvoice(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addInvoice(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
addToReturn(this.form).then(response => {
this.msgSuccess("回款成功");
this.open = false;
this.getList();
})
}
});
},

View File

@ -0,0 +1,353 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="对应发票id" prop="invoiceId">
<el-input
v-model="queryParams.invoiceId"
placeholder="请输入对应发票id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="回款日期" prop="returnAt">
<el-date-picker clearable size="small"
v-model="queryParams.returnAt"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择回款日期">
</el-date-picker>
</el-form-item>
<el-form-item label="回款金额" prop="returnPrice">
<el-input
v-model="queryParams.returnPrice"
placeholder="请输入回款金额"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="余额" prop="balancePrice">
<el-input
v-model="queryParams.balancePrice"
placeholder="请输入余额"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="操作员" prop="opera">
<el-input
v-model="queryParams.opera"
placeholder="请输入操作员"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="凭证的图片url" prop="voucherUrl">
<el-input
v-model="queryParams.voucherUrl"
placeholder="请输入凭证的图片url"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否完成回款标志" prop="returnFlag">
<el-input
v-model="queryParams.returnFlag"
placeholder="请输入是否完成回款标志"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['fantang:returnManage:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['fantang:returnManage:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['fantang:returnManage:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['fantang:returnManage:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="returnManageList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="id" align="center" prop="id" v-if="false"/>
<el-table-column label="对应发票id" align="center" prop="invoiceId" />
<el-table-column label="回款日期" align="center" prop="returnAt" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.returnAt, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="回款金额" align="center" prop="returnPrice" />
<el-table-column label="余额" align="center" prop="balancePrice" />
<el-table-column label="操作员" align="center" prop="opera" />
<el-table-column label="凭证的图片url" align="center" prop="voucherUrl" />
<el-table-column label="是否完成回款标志" align="center" prop="returnFlag" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['fantang:returnManage:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['fantang:returnManage:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改回款登记对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="对应发票id" prop="invoiceId">
<el-input v-model="form.invoiceId" placeholder="请输入对应发票id" />
</el-form-item>
<el-form-item label="回款日期" prop="returnAt">
<el-date-picker clearable size="small"
v-model="form.returnAt"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择回款日期">
</el-date-picker>
</el-form-item>
<el-form-item label="回款金额" prop="returnPrice">
<el-input v-model="form.returnPrice" placeholder="请输入回款金额" />
</el-form-item>
<el-form-item label="余额" prop="balancePrice">
<el-input v-model="form.balancePrice" placeholder="请输入余额" />
</el-form-item>
<el-form-item label="操作员" prop="opera">
<el-input v-model="form.opera" placeholder="请输入操作员" />
</el-form-item>
<el-form-item label="凭证的图片url" prop="voucherUrl">
<el-input v-model="form.voucherUrl" placeholder="请输入凭证的图片url" />
</el-form-item>
<el-form-item label="是否完成回款标志" prop="returnFlag">
<el-input v-model="form.returnFlag" placeholder="请输入是否完成回款标志" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listReturnManage, getReturnManage, delReturnManage, addReturnManage, updateReturnManage, exportReturnManage } from "@/api/fantang/returnManage";
export default {
name: "ReturnManage",
components: {
},
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
returnManageList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
invoiceId: undefined,
returnAt: undefined,
returnPrice: undefined,
balancePrice: undefined,
opera: undefined,
voucherUrl: undefined,
returnFlag: undefined
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询回款登记列表 */
getList() {
this.loading = true;
listReturnManage(this.queryParams).then(response => {
this.returnManageList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: undefined,
invoiceId: undefined,
returnAt: undefined,
returnPrice: undefined,
balancePrice: undefined,
opera: undefined,
voucherUrl: undefined,
returnFlag: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加回款登记";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getReturnManage(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改回款登记";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateReturnManage(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addReturnManage(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除回款登记编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delReturnManage(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有回款登记数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportReturnManage(queryParams);
}).then(response => {
this.download(response.msg);
})
}
}
};
</script>

View File

@ -343,6 +343,7 @@ export default {
/** 查询结算管理列表 */
getList() {
this.loading = true;
console.log(this.queryParams);
listSettlement(this.queryParams).then(response => {
this.settlementList = response.rows;
this.total = response.total;