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.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.InvoiceAmountAndAvailablePageReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAmountRespVO; 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.InvoiceConfirmReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceDetailsPageReqVO; 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.InvoiceDetailsRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceRecordsReqVO; 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.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.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 com.cf.imes.module.system.service.funds.invoice.InvoiceService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@@ -45,6 +46,11 @@ public class InvoiceController {
@Resource @Resource
private InvoiceService invoiceService; private InvoiceService invoiceService;
@GetMapping("/title/{organId}")
@Operation(summary = "获取发票抬头信息")
public CommonResult<InvoiceTitleInfo> getInvoiceTitle(@PathVariable("organId") Long organId) {
return success(invoiceService.getInvoiceTitle(organId));
}
@PostMapping("/title") @PostMapping("/title")
@Operation(summary = "新增/修改发票抬头信息") @Operation(summary = "新增/修改发票抬头信息")
@@ -61,7 +67,7 @@ public class InvoiceController {
@GetMapping("/available") @GetMapping("/available")
@Operation(summary = "获取组织可开票购买记录") @Operation(summary = "获取组织可开票购买记录")
public CommonResult<PageResult<PurchaseRecordDO>> getAvailablePage(@Valid InvoiceAmountAndAvailablePageReqVO pageReqVO) { public CommonResult<PageResult<InvoiceAvailablePageRespVO>> getAvailablePage(@Valid InvoiceAmountAndAvailablePageReqVO pageReqVO) {
return success(invoiceService.getAvailablePage(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.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.InvoiceAmountAndAvailablePageReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAmountRespVO; 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.InvoiceConfirmReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceDetailsPageReqVO; 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.InvoiceDetailsRespVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceRecordsReqVO; 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.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.controller.admin.funds.invoice.vo.InvoiceTitleSaveReqVO;
import com.cf.imes.module.system.dal.dataobject.funds.purchase.PurchaseRecordDO;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
@@ -19,6 +20,13 @@ import java.io.IOException;
*/ */
public interface InvoiceService { public interface InvoiceService {
/**
* 获取组织抬头信息
*
* @param organId
*/
InvoiceTitleInfo getInvoiceTitle(Long organId);
/** /**
* 新增/修改抬头信息 * 新增/修改抬头信息
* *
@@ -47,7 +55,7 @@ public interface InvoiceService {
* @param invoiceAmountAndAvailablePageReqVO * @param invoiceAmountAndAvailablePageReqVO
* @return * @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.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.InvoiceAmountAndAvailablePageReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceAmountRespVO; 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.InvoiceConfirmReqVO;
import com.cf.imes.module.system.controller.admin.funds.invoice.vo.InvoiceDetailsPageReqVO; 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.InvoiceDetailsRespVO;
@@ -85,6 +86,13 @@ public class InvoiceServiceImpl implements InvoiceService {
@Resource @Resource
private FileApi fileApi; 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 @Override
public void insetInvoiceTitle(InvoiceTitleSaveReqVO reqVO) { public void insetInvoiceTitle(InvoiceTitleSaveReqVO reqVO) {
@@ -136,8 +144,23 @@ public class InvoiceServiceImpl implements InvoiceService {
} }
@Override @Override
public PageResult<PurchaseRecordDO> getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO) { public PageResult<InvoiceAvailablePageRespVO> getAvailablePage(InvoiceAmountAndAvailablePageReqVO invoiceAmountAndAvailablePageReqVO) {
return purchaseRecordMapper.selectPage(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 @Override
@@ -16,7 +16,7 @@
</select> </select>
<select id="getInvoicableAmount" resultType="java.math.BigDecimal"> <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}' where organ_id = #{organId} and is_invocing = '${@com.cf.imes.module.system.enums.pay.InvoiceStatusEnum@INVOICABLE.code}'
and id in and id in
<foreach collection="ids" item="id" open="(" close=")" separator=","> <foreach collection="ids" item="id" open="(" close=")" separator=",">