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; @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) { return invAccountIncoiceService.selectPage(invAccountIncoice); } /** * 通过主键查询单条数据 * * @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, invAccountIncoice.getPayoutMoney()); 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); } }