1、新增组织抬头信息查询接口;2、组织可开票记录分页列表回调数据修正;

This commit is contained in:
gaoqr
2025-08-28 18:38:50 +08:00
parent 7421d77f7d
commit 659044c9ac
5 changed files with 72 additions and 7 deletions
@@ -4,13 +4,14 @@ import com.cf.imes.framework.common.pojo.CommonResult;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAmountAndAvailablePageReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAmountRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAvailablePageRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceConfirmReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceDetailsPageReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceDetailsRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceRecordsReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceRecordsRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceTitleInfo;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceTitleSaveReqVO;
import com.cf.imes.module.system.dal.dataobject.funds.purchase.PurchaseRecordDO;
import com.cf.imes.module.system.service.funds.invoice.InvoiceService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -45,6 +46,11 @@ public class InvoiceController {
@Resource
private InvoiceService invoiceService;
@GetMapping("/title/{organId}")
@Operation(summary = "获取发票抬头信息")
public CommonResult<InvoiceTitleInfo> getInvoiceTitle(@PathVariable("organId") Long organId) {
return success(invoiceService.getInvoiceTitle(organId));
}
@PostMapping("/title")
@Operation(summary = "新增/修改发票抬头信息")
@@ -61,7 +67,7 @@ public class InvoiceController {
@GetMapping("/available")
@Operation(summary = "获取组织可开票购买记录")
public CommonResult<PageResult<PurchaseRecordDO>> getAvailablePage(@Valid InvoiceAmountAndAvailablePageReqVO pageReqVO) {
public CommonResult<PageResult<InvoiceAvailablePageRespVO>> getAvailablePage(@Valid InvoiceAmountAndAvailablePageReqVO pageReqVO) {
return success(invoiceService.getAvailablePage(pageReqVO));
}
@@ -0,0 +1,28 @@
package com.cf.imes.module.system.controller.admin.funds.invoice.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author Gqr
* @since 2025/8/28 18:13
*/
@Data
@Schema(description = "组织可开票信息 Resp VO")
public class InvoiceAvailablePageRespVO {
@Schema(description = "流水号")
private Long id;
@Schema(description = "交易类型")
private Integer tradeType;
@Schema(description = "交易时间")
private LocalDateTime createTime;
@Schema(description = "可开票金额")
private BigDecimal availableAmount;
}
@@ -3,13 +3,14 @@ package com.cf.imes.module.system.service.funds.invoice;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAmountAndAvailablePageReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAmountRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAvailablePageRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceConfirmReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceDetailsPageReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceDetailsRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceRecordsReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceRecordsRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceTitleInfo;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceTitleSaveReqVO;
import com.cf.imes.module.system.dal.dataobject.funds.purchase.PurchaseRecordDO;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
@@ -19,6 +20,13 @@ import java.io.IOException;
*/
public interface InvoiceService {
/**
* 获取组织抬头信息
*
* @param organId
*/
InvoiceTitleInfo getInvoiceTitle(Long organId);
/**
* 新增/修改抬头信息
*
@@ -47,7 +55,7 @@ public interface InvoiceService {
* @param invoiceAmountAndAvailablePageReqVO
* @return
*/
PageResult<PurchaseRecordDO> getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO);
PageResult<InvoiceAvailablePageRespVO> getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO);
/**
* 组织申请发票
@@ -17,6 +17,7 @@ import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
import com.cf.imes.module.infra.api.file.FileApi;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAmountAndAvailablePageReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAmountRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAvailablePageRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceConfirmReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceDetailsPageReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceDetailsRespVO;
@@ -85,6 +86,13 @@ public class InvoiceServiceImpl implements InvoiceService {
@Resource
private FileApi fileApi;
@Override
public InvoiceTitleInfo getInvoiceTitle(Long organId) {
InvoiceTitleInfoDO invoiceTitleInfoDO = invoiceTitleInfoMapper.selectOne(new LambdaQueryWrapper<InvoiceTitleInfoDO>()
.eq(InvoiceTitleInfoDO::getOrganId, organId));
return BeanUtils.toBean(invoiceTitleInfoDO, InvoiceTitleInfo.class);
}
@Override
public void insetInvoiceTitle(InvoiceTitleSaveReqVO reqVO) {
@@ -136,8 +144,23 @@ public class InvoiceServiceImpl implements InvoiceService {
}
@Override
public PageResult<PurchaseRecordDO> getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO) {
return purchaseRecordMapper.selectPage(invoiceAmountAndAvailablePageReqVO);
public PageResult<InvoiceAvailablePageRespVO> getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO) {
PageResult<PurchaseRecordDO> availablePage = purchaseRecordMapper.selectPage(invoiceAmountAndAvailablePageReqVO);
if (CollUtil.isEmpty(availablePage.getList())) {
return new PageResult<>(availablePage.getTotal());
}
List<InvoiceAvailablePageRespVO> availablePageRespVOS = new ArrayList<>();
availablePage.getList().forEach(i -> {
InvoiceAvailablePageRespVO availablePageRespVO = new InvoiceAvailablePageRespVO();
availablePageRespVO.setId(i.getId());
availablePageRespVO.setCreateTime(i.getCreateTime());
availablePageRespVO.setTradeType(TradeTypeEnum.PRODUCT.getCode());
// 可开票金额=总额扣除赠送金
availablePageRespVO.setAvailableAmount(i.getTotalAmount().subtract(i.getGiftMoneySpent()));
availablePageRespVOS.add(availablePageRespVO);
});
return new PageResult<>(availablePageRespVOS, availablePage.getTotal());
}
@Override
@@ -16,7 +16,7 @@
</select>
<select id="getInvoicableAmount" resultType="java.math.BigDecimal">
select sum(account_balance_spent) from purchase_record
select sum(total_amount - gift_money_spent) from purchase_record
where organ_id = #{organId} and is_invocing = '${@com.cf.imes.module.system.enums.pay.InvoiceStatusEnum@INVOICABLE.code}'
and id in
<foreach collection="ids" item="id" open="(" close=")" separator=",">