diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/invoice/InvoiceController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/invoice/InvoiceController.java index 4be24f2da..289e82156 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/invoice/InvoiceController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/invoice/InvoiceController.java @@ -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 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> getAvailablePage(@Valid InvoiceAmountAndAvailablePageReqVO pageReqVO) { + public CommonResult> getAvailablePage(@Valid InvoiceAmountAndAvailablePageReqVO pageReqVO) { return success(invoiceService.getAvailablePage(pageReqVO)); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/invoice/vo/InvoiceAvailablePageRespVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/invoice/vo/InvoiceAvailablePageRespVO.java new file mode 100644 index 000000000..79a034e6b --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/invoice/vo/InvoiceAvailablePageRespVO.java @@ -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; +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/invoice/InvoiceService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/invoice/InvoiceService.java index 6b37fcf3f..55d6f23b5 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/invoice/InvoiceService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/invoice/InvoiceService.java @@ -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 getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO); + PageResult getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO); /** * 组织申请发票 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/invoice/InvoiceServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/invoice/InvoiceServiceImpl.java index 83da87301..8ac5b4b94 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/invoice/InvoiceServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/invoice/InvoiceServiceImpl.java @@ -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() + .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 getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO) { - return purchaseRecordMapper.selectPage(invoiceAmountAndAvailablePageReqVO); + public PageResult getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO) { + PageResult availablePage = purchaseRecordMapper.selectPage(invoiceAmountAndAvailablePageReqVO); + if (CollUtil.isEmpty(availablePage.getList())) { + return new PageResult<>(availablePage.getTotal()); + } + + List 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 diff --git a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/funds/purchase/PurchaseMapper.xml b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/funds/purchase/PurchaseMapper.xml index 69589b15d..ff5a5176f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/resources/mapper/funds/purchase/PurchaseMapper.xml +++ b/cf-module-system/cf-module-system-biz/src/main/resources/mapper/funds/purchase/PurchaseMapper.xml @@ -16,7 +16,7 @@