| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- package com.ydtech.modules.inv.controller;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.core.page.PageRequest;
- import com.ydtech.exception.SystemException;
- import com.ydtech.modules.inv.model.InvAccountIncoice;
- import com.ydtech.modules.inv.model.InvAccountIncoiceResult;
- import com.ydtech.modules.inv.model.InvAccountOperate;
- import com.ydtech.modules.inv.model.vo.InvAccountIncoiceQueryVo;
- import com.ydtech.modules.inv.service.InvAccountIncoiceService;
- import com.ydtech.modules.inv.service.InvAccountOperateService;
- import com.ydtech.utils.StringUtils;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.util.ObjectUtils;
- import org.springframework.web.bind.annotation.*;
- import javax.annotation.Resource;
- import java.io.Serializable;
- import java.math.BigDecimal;
- import java.util.List;
- import java.util.stream.Collectors;
- import static com.ydtech.modules.inv.service.impl.InvAccountIncoiceServiceImpl.getBigDecimal;
- import static com.ydtech.modules.inv.utils.TransferUtils.isProfitFull;
- /**
- * 发票管理表(InvAccountIncoice)表控制层
- *
- * @author makejava
- * @since 2024-01-18 16:01:25
- */
- @RestController
- @RequestMapping("invAccountIncoice")
- @Api(tags = "发票管理表", value = "发票管理表")
- public class InvAccountIncoiceController {
- /**
- * 服务对象
- */
- @Resource
- private InvAccountIncoiceService invAccountIncoiceService;
- @Resource
- private InvAccountOperateService invAccountOperateService;
- @PostMapping("excel")
- @ApiOperation("导出开票记录表")
- public HttpResult selectAccountIncoiceExcel(@RequestBody InvAccountIncoiceQueryVo invAccountIncoiceQueryVo) {
- return HttpResult.ok("", invAccountIncoiceService.excel(invAccountIncoiceQueryVo));
- }
- /**
- * 分页查询所有数据
- *
- * @param invAccountIncoice 查询实体
- * @return 所有数据
- */
- @PostMapping("page")
- @ApiOperation("分页查询")
- public HttpResult selectAll(@RequestBody InvAccountIncoiceQueryVo invAccountIncoice) {
- /**
- * 构造分页参数
- */
- PageRequest pageRequest = new PageRequest();
- pageRequest.setPageNum(invAccountIncoice.getPageNo());
- pageRequest.setPageSize(invAccountIncoice.getPageSize());
- Page<InvAccountIncoice> page = PageRequest.buildPageRequest(pageRequest);
- LambdaQueryWrapper<InvAccountIncoice> lambdaQuery = new LambdaQueryWrapper<>();
- /**
- * 如果有开票时间范围,查询开票记录表
- */
- if (invAccountIncoice.getApplyTimeStart() != null && invAccountIncoice.getApplyTimeEnd() != null) {
- LambdaQueryWrapper<InvAccountOperate> lambdaQueryWrapper = new LambdaQueryWrapper<>();
- lambdaQueryWrapper.ge(InvAccountOperate::getApplyTime, invAccountIncoice.getApplyTimeStart());
- lambdaQueryWrapper.le(InvAccountOperate::getApplyTime, invAccountIncoice.getApplyTimeEnd());
- lambdaQueryWrapper.isNotNull(InvAccountOperate::getInvoiceId);
- List<InvAccountOperate> list = invAccountOperateService.list(lambdaQueryWrapper);
- List<String> collect = list.stream().map(InvAccountOperate::getInvoiceId).collect(Collectors.toList());
- //将开票id集合放入查询中
- lambdaQueryWrapper.in(InvAccountOperate::getInvoiceId, collect);
- }
- lambdaQuery
- .like(!StringUtils.isEmpty(invAccountIncoice.getBiller()), InvAccountIncoice::getBiller, invAccountIncoice.getBiller())
- .like(!StringUtils.isEmpty(invAccountIncoice.getInvoiceBy()), InvAccountIncoice::getInvoiceBy,
- invAccountIncoice.getInvoiceBy())
- .eq(InvAccountIncoice::getDelFlag, "0")
- .eq(!StringUtils.isEmpty(invAccountIncoice.getInvoiceType()), InvAccountIncoice::getInvoiceType,
- invAccountIncoice.getInvoiceType())
- .like(!StringUtils.isEmpty(invAccountIncoice.getOtherUnit()), InvAccountIncoice::getOtherUnit, invAccountIncoice.getOtherUnit())
- .like(!StringUtils.isEmpty(invAccountIncoice.getClearFlag()), InvAccountIncoice::getClearFlag, invAccountIncoice.getClearFlag());
- if (!ObjectUtils.isEmpty(invAccountIncoice.getInvoiceTimeStart()) && !ObjectUtils.isEmpty(invAccountIncoice.getInvoiceTimeEnd())) {
- lambdaQuery.ge(InvAccountIncoice::getInvoiceTime, invAccountIncoice.getInvoiceTimeStart().toString());
- lambdaQuery.le(InvAccountIncoice::getInvoiceTime, invAccountIncoice.getInvoiceTimeEnd().toString());
- }
- lambdaQuery.orderByDesc(InvAccountIncoice::getInvoiceTime);
- Page<InvAccountIncoice> invAccountIncoicePage = this.invAccountIncoiceService.page(page, lambdaQuery);
- /**
- * 合计
- */
- InvAccountIncoiceResult invAccountIncoiceResult = this.invAccountIncoiceService.selectAccountIncoice(invAccountIncoice);
- if (invAccountIncoiceResult == null) {
- InvAccountIncoiceResult invAccountIncoiceResult1 = new InvAccountIncoiceResult();
- invAccountIncoiceResult1.setRecords(invAccountIncoicePage.getRecords());
- invAccountIncoiceResult1.setCurrent(invAccountIncoice.getPageNo());
- invAccountIncoiceResult1.setTotal(invAccountIncoicePage.getTotal());
- invAccountIncoiceResult1.setSize(invAccountIncoice.getPageSize());
- return HttpResult.ok(invAccountIncoiceResult1);
- }
- invAccountIncoiceResult.setRecords(invAccountIncoicePage.getRecords());
- invAccountIncoiceResult.setCurrent(invAccountIncoice.getPageNo());
- invAccountIncoiceResult.setTotal(invAccountIncoicePage.getTotal());
- invAccountIncoiceResult.setSize(invAccountIncoice.getPageSize());
- return HttpResult.ok(invAccountIncoiceResult);
- }
- /**
- * 通过主键查询单条数据
- *
- * @param id 主键
- * @return 单条数据
- */
- @GetMapping("byId/{id}")
- @ApiOperation("根据id查询")
- public HttpResult selectOne(@PathVariable("id") Serializable id) {
- return HttpResult.ok(this.invAccountIncoiceService.getById(id));
- }
- /**
- * 新增数据
- *
- * @param invAccountIncoice 实体对象
- * @return 新增结果
- */
- @PostMapping
- @ApiOperation("新增")
- public HttpResult insert(@RequestBody InvAccountIncoice invAccountIncoice) {
- return this.invAccountIncoiceService.insertInvAccountIncoice(invAccountIncoice);
- }
- /**
- * 新增收入
- */
- @PostMapping("update")
- @ApiOperation("新增收入")
- public HttpResult updateIncome(@RequestBody InvAccountIncoice invAccountIncoice) {
- JSONObject outProfit = invAccountIncoice.getOutProfit();
- JSONObject entProfit = invAccountIncoice.getEntProfit();
- isProfitFull(outProfit, entProfit);
- return this.invAccountIncoiceService.updateInvAccountIncoice(invAccountIncoice);
- }
- @PostMapping("updateIncoice")
- @ApiOperation("修改发票信息")
- public HttpResult updateIncoice(@RequestBody InvAccountIncoice invAccountIncoice) {
- if (!invAccountIncoice.getPayoutMoney().equals("0") && !invAccountIncoice.getNotPayoutMoney().equals(invAccountIncoice.getInvoiceMoney())) {
- throw new SystemException("已进账 如需修改请撤销");
- }
- BigDecimal tax = getBigDecimal(invAccountIncoice);
- //不含税金额
- BigDecimal noHasTax = new BigDecimal(invAccountIncoice.getInvoiceMoney()).subtract(tax);
- invAccountIncoice.setNotPayoutMoney(invAccountIncoice.getInvoiceMoney());
- //税额
- invAccountIncoice.setTax(noHasTax.toString());
- //不含税金额
- invAccountIncoice.setNoHasTax(tax.toString());
- return HttpResult.ok(invAccountIncoiceService.updateById(invAccountIncoice));
- }
- /**
- * 撤销
- */
- @DeleteMapping
- @ApiOperation("删除")
- public HttpResult delete(@RequestParam("id") String id) {
- if (id == null) {
- throw new RuntimeException("id不能为空");
- }
- InvAccountIncoice invAccountIncoice = new InvAccountIncoice();
- invAccountIncoice.setInvoiceId(id);
- invAccountIncoice.setDelFlag("1");
- return this.invAccountIncoiceService.delInvAccountIncoice(invAccountIncoice);
- }
- }
|