fix: 仓储类代码合并master后解决冲突
This commit is contained in:
+20
-11
@@ -70,6 +70,7 @@ import org.springblade.transport.mapper.KingdeeInvoicePoolMapper;
|
||||
import org.springblade.transport.pojo.dto.InvoiceReceiptSaveRequest;
|
||||
import org.springblade.transport.pojo.dto.InvoiceReceiptStatusRequest;
|
||||
import org.springblade.transport.pojo.dto.KingdeeInvoicePoolQueryDTO;
|
||||
import org.springblade.transport.pojo.entity.ContractManage;
|
||||
import org.springblade.transport.pojo.entity.CustomerArchive;
|
||||
import org.springblade.transport.pojo.entity.CustomerContact;
|
||||
import org.springblade.transport.pojo.entity.CustomerInvoiceInfo;
|
||||
@@ -691,7 +692,8 @@ public class InvoiceReceiptServiceImpl extends BaseServiceImpl<InvoiceReceiptMap
|
||||
return "发票" + Func.toStrWithEmpty(receipt.getInvoiceNo(), String.valueOf(receipt.getId())) + "已推送金蝶,幂等跳过";
|
||||
}
|
||||
// 计划内登记实体以行锁后最新数据替换(并发下推送状态可能已被其他事务改写)
|
||||
plan = new ReceivedInvoicePushPlan(receipt, plan.mirror(), plan.blockedReason());
|
||||
plan = new ReceivedInvoicePushPlan(receipt, plan.mirror(), plan.settlement(), plan.details(),
|
||||
plan.apBillSrcCode(), plan.blockedReason());
|
||||
log.info("收票登记[{}]推送金蝶收票单开始:id={},推送状态={}", receipt.getInvoiceNo(), receipt.getId(),
|
||||
receipt.getKingdeePushStatus());
|
||||
if (Func.isNotBlank(plan.blockedReason())) {
|
||||
@@ -733,8 +735,12 @@ public class InvoiceReceiptServiceImpl extends BaseServiceImpl<InvoiceReceiptMap
|
||||
fetchMirrorItemsFromPool(plan.mirror());
|
||||
}
|
||||
log.info("收票登记[{}]开始 A303-2 推送金蝶收票单", receipt.getInvoiceNo());
|
||||
ContractManage contract = kingdeeApBillSyncSupport.requireContract(plan.settlement().getContractId(), context);
|
||||
// 明细分录与应付单 A102-2 同源同口径:复用同一结算明细解析结果,结算明细行+结算合计费用项各一条
|
||||
List<KingdeeApBillSyncSupport.BfiEntryGroup> entryGroups =
|
||||
kingdeeApBillSyncSupport.resolveEntryGroups(plan.details(), context);
|
||||
KingdeeReceivedInvoiceSyncSupport.ReceivedInvoicePushOutcome pushOutcome =
|
||||
kingdeeReceivedInvoiceSyncSupport.pushReceivedInvoice(receipt, plan.mirror(), context);
|
||||
kingdeeReceivedInvoiceSyncSupport.pushReceivedInvoice(receipt, plan.mirror(), contract, entryGroups, context);
|
||||
billNo = pushOutcome.billNo();
|
||||
billPkId = pushOutcome.billId();
|
||||
log.info("收票登记[{}]A303-2 推送成功:金蝶收票单[{}],星瀚内码={}", receipt.getInvoiceNo(), billNo, billPkId);
|
||||
@@ -814,23 +820,23 @@ public class InvoiceReceiptServiceImpl extends BaseServiceImpl<InvoiceReceiptMap
|
||||
private ReceivedInvoicePushPlan buildReceivedInvoicePushPlan(InvoiceReceipt receipt, Map<Long, KingdeeInvoicePool> mirrorById) {
|
||||
String pushStatus = Func.toStrWithEmpty(receipt.getKingdeePushStatus(), KingdeeBfiConstant.RECEIVED_PUSH_UNSYNCED);
|
||||
if (!TransportBusiConstant.APPROVED.equals(receipt.getApprovalStatus())) {
|
||||
return new ReceivedInvoicePushPlan(receipt, null, "仅审批通过的收票登记允许推送金蝶");
|
||||
return new ReceivedInvoicePushPlan(receipt, null, null, null, null, "仅审批通过的收票登记允许推送金蝶");
|
||||
}
|
||||
if (KingdeeBfiConstant.RECEIVED_PUSH_ASSIGNED.equals(pushStatus)) {
|
||||
return new ReceivedInvoicePushPlan(receipt, null, "收票单已指定应付,无需重复推送");
|
||||
return new ReceivedInvoicePushPlan(receipt, null, null, null, null, "收票单已指定应付,无需重复推送");
|
||||
}
|
||||
KingdeeInvoicePool mirror = receipt.getKingdeeInvoicePoolId() == null ? null
|
||||
: mirrorById.get(receipt.getKingdeeInvoicePoolId());
|
||||
if (mirror == null) {
|
||||
return new ReceivedInvoicePushPlan(receipt, null, "收票登记未绑定票池镜像,请先完成同步绑定");
|
||||
return new ReceivedInvoicePushPlan(receipt, null, null, null, null, "收票登记未绑定票池镜像,请先完成同步绑定");
|
||||
}
|
||||
if ("2".equals(mirror.getCheckStatus())) {
|
||||
return new ReceivedInvoicePushPlan(receipt, mirror, "金蝶发票查验不通过,请先人工核实票池发票");
|
||||
return new ReceivedInvoicePushPlan(receipt, mirror, null, null, null, "金蝶发票查验不通过,请先人工核实票池发票");
|
||||
}
|
||||
if (receipt.getDeptId() == null) {
|
||||
return new ReceivedInvoicePushPlan(receipt, mirror, "收票登记未选择结算组织,无法确定金蝶结算组织编码");
|
||||
return new ReceivedInvoicePushPlan(receipt, mirror, null, null, null, "收票登记未选择结算组织,无法确定金蝶结算组织编码");
|
||||
}
|
||||
return new ReceivedInvoicePushPlan(receipt, mirror, null);
|
||||
return new ReceivedInvoicePushPlan(receipt, mirror, null, null, null, null);
|
||||
}
|
||||
|
||||
/** A801-3 幂等预检批量查询:未终态计划按购方单位分组,窗口内翻页匹配防重键 */
|
||||
@@ -897,14 +903,17 @@ public class InvoiceReceiptServiceImpl extends BaseServiceImpl<InvoiceReceiptMap
|
||||
}
|
||||
|
||||
/**
|
||||
* 收票单推送预检计划(blockedReason 非空表示前置拦截,不进入推送流程)。
|
||||
* 先票后款链路:分摊结算单/防重键不再参与推送前置,指定应付由结算单侧驱动
|
||||
* 收票单推送预检计划(blockedReason 非空表示前置拦截,不进入推送流程)
|
||||
*
|
||||
* @param receipt 收票登记
|
||||
* @param mirror 绑定的票池镜像(可为 null)
|
||||
* @param settlement 唯一分摊的应付正式结算单(可为 null)
|
||||
* @param details 结算单结算明细(防重键组装与 A303-2 分录解析共用,可为 null)
|
||||
* @param apBillSrcCode 财务应付单防重键(无法组装时为 null)
|
||||
* @param blockedReason 前置拦截原因
|
||||
*/
|
||||
private record ReceivedInvoicePushPlan(InvoiceReceipt receipt, KingdeeInvoicePool mirror, String blockedReason) {
|
||||
private record ReceivedInvoicePushPlan(InvoiceReceipt receipt, KingdeeInvoicePool mirror,
|
||||
FormalSettlement settlement, List<FormalSettlementDetail> details, String apBillSrcCode, String blockedReason) {
|
||||
}
|
||||
|
||||
// ==================== 先票后款:发票明细查询 / 认领候选 / 结算侧关系同步与指定应付 ====================
|
||||
|
||||
+1
@@ -44,6 +44,7 @@ import org.springblade.thirdparty.bfi.service.IBfiService;
|
||||
import org.springblade.thirdparty.bfi.util.BfiUtil;
|
||||
import org.springblade.transport.config.BfiProperties;
|
||||
import org.springblade.transport.constant.KingdeeBfiConstant;
|
||||
import org.springblade.transport.pojo.entity.ContractManage;
|
||||
import org.springblade.transport.pojo.entity.InvoiceReceipt;
|
||||
import org.springblade.transport.pojo.entity.KingdeeInvoicePool;
|
||||
import org.springblade.transport.service.KingdeeSyncContext;
|
||||
|
||||
Reference in New Issue
Block a user