feat: A301-2 认领公告查询接口适配新参数(billstatus/modifytimeS/modifytimeE),时间窗口配置化(Nacos thirdParty.bfi.claimAnnounce.months,默认6个月)

This commit is contained in:
刘泉佳
2026-09-28 15:49:53 +08:00
parent 85b703b7d5
commit 4d62bb6df7
9 changed files with 721 additions and 21 deletions
@@ -65,6 +65,11 @@ public class BfiProperties {
*/
private ReceivedInvoice receivedInvoice = new ReceivedInvoice();
/**
* 收款认领公告查询配置(A301-2)
*/
private ClaimAnnounce claimAnnounce = new ClaimAnnounce();
/**
* 付款申请推送配置项
*/
@@ -114,4 +119,16 @@ public class BfiProperties {
private String materialNumber = "SP0324";
}
/**
* 收款认领公告查询配置项(A301-2)
*/
@Data
public static class ClaimAnnounce {
/**
* 查询时间窗口(月数),默认 6(近半年)
*/
private int months = 6;
}
}
@@ -55,6 +55,7 @@ import org.springblade.transport.service.IReceiptFlowService;
import org.springblade.transport.service.IFormalSettlementService;
import org.springblade.transport.support.TransportBusinessSupport;
import org.springblade.transport.wrapper.ReceiptFlowWrapper;
import org.springblade.thirdparty.bfi.pojo.dto.BfiClaimAnnounceQueryDTO;
import org.springblade.thirdparty.bfi.pojo.dto.BfiClaimPushDTO;
import org.springblade.thirdparty.bfi.pojo.dto.BfiClaimPushEntryDTO;
import org.springblade.thirdparty.bfi.pojo.vo.BfiBillSaveResultItemVO;
@@ -314,10 +315,25 @@ public class ReceiptFlowServiceImpl extends BaseServiceImpl<KingdeeReceiptFlowMa
if (Func.isEmpty(claimusers)) {
throw new ServiceException("当前用户无姓名,无法同步金蝶认领公告");
}
// 从配置读取查询时间窗口(月数),默认近半年
int months = bfiProperties.getClaimAnnounce().getMonths();
LocalDate endDate = LocalDate.now();
LocalDate startDate = endDate.minusMonths(months);
String modifytimeS = startDate.format(DateTimeFormatter.ISO_LOCAL_DATE);
String modifytimeE = endDate.format(DateTimeFormatter.ISO_LOCAL_DATE);
long start = System.currentTimeMillis();
log.info("调用BFI接口 收款认领公告查询开始 claimusers:{}", claimusers);
List<BfiClaimAnnounceVO> announces = BfiUtil.queryAllPages(pageNo ->
bfiService.queryClaimAnnounce(claimusers, pageNo, SYNC_PAGE_SIZE));
log.info("调用BFI接口 收款认领公告查询开始 claimusers:{},时间窗口:{} ~ {}(近{}个月)",
claimusers, modifytimeS, modifytimeE, months);
List<BfiClaimAnnounceVO> announces = BfiUtil.queryAllPages(pageNo -> {
BfiClaimAnnounceQueryDTO queryDTO = new BfiClaimAnnounceQueryDTO();
queryDTO.setClaimusers(claimusers);
queryDTO.setModifytimeS(modifytimeS);
queryDTO.setModifytimeE(modifytimeE);
queryDTO.setPageNo(pageNo);
queryDTO.setPageSize(SYNC_PAGE_SIZE);
return bfiService.queryClaimAnnounce(queryDTO);
});
log.info("调用BFI接口 收款认领公告查询结束 耗时:{}ms,拉取 {} 条",
System.currentTimeMillis() - start, announces.size());