🐛 修复开票申请推送未回填星瀚内码导致金蝶附件始终无法上传
This commit is contained in:
+12
-4
@@ -43,6 +43,7 @@ import org.springblade.thirdparty.bfi.pojo.dto.BfiInvoiceApplyQueryDTO;
|
|||||||
import org.springblade.thirdparty.bfi.pojo.dto.BfiInvoiceApplySaveDTO;
|
import org.springblade.thirdparty.bfi.pojo.dto.BfiInvoiceApplySaveDTO;
|
||||||
import org.springblade.thirdparty.bfi.pojo.dto.BfiInvoiceApplySaveEntryDTO;
|
import org.springblade.thirdparty.bfi.pojo.dto.BfiInvoiceApplySaveEntryDTO;
|
||||||
import org.springblade.thirdparty.bfi.pojo.dto.BfiInvoiceApplySaveFreightDTO;
|
import org.springblade.thirdparty.bfi.pojo.dto.BfiInvoiceApplySaveFreightDTO;
|
||||||
|
import org.springblade.thirdparty.bfi.pojo.vo.BfiBillSaveResultItemVO;
|
||||||
import org.springblade.thirdparty.bfi.pojo.vo.BfiBillSaveResultVO;
|
import org.springblade.thirdparty.bfi.pojo.vo.BfiBillSaveResultVO;
|
||||||
import org.springblade.thirdparty.bfi.pojo.vo.BfiInvoiceApplyOpenApiBillVO;
|
import org.springblade.thirdparty.bfi.pojo.vo.BfiInvoiceApplyOpenApiBillVO;
|
||||||
import org.springblade.thirdparty.bfi.pojo.vo.BfiInvoiceApplyOpenApiInvoiceVO;
|
import org.springblade.thirdparty.bfi.pojo.vo.BfiInvoiceApplyOpenApiInvoiceVO;
|
||||||
@@ -733,9 +734,11 @@ public class InvoiceApplicationServiceImpl extends BaseServiceImpl<InvoiceApplic
|
|||||||
public String doSyncKingdee(Long id) {
|
public String doSyncKingdee(Long id) {
|
||||||
InvoiceApplication entity = lockedExisting(id);
|
InvoiceApplication entity = lockedExisting(id);
|
||||||
if (!TransportBusiConstant.APPROVED.equals(entity.getApprovalStatus())) throw new ServiceException("仅审批通过的开票申请允许同步金蝶");
|
if (!TransportBusiConstant.APPROVED.equals(entity.getApprovalStatus())) throw new ServiceException("仅审批通过的开票申请允许同步金蝶");
|
||||||
// 已同步/已开票幂等返回(开票完成为终态);星瀚内码由附件补传分支经 A303-4 反查回填
|
// 已开票为终态幂等返回;已同步且星瀚内码齐备幂等返回——
|
||||||
if (KingdeeBfiConstant.KINGDEE_STATUS_SYNCED.equals(entity.getKingdeeStatus())
|
// 已同步但内码缺失(历史推送未落内码)放行,走下方 A303-4 勾稽反查补内码,供 A902 附件上传定位金蝶单据
|
||||||
|| KingdeeBfiConstant.KINGDEE_STATUS_INVOICED.equals(entity.getKingdeeStatus())) {
|
if (KingdeeBfiConstant.KINGDEE_STATUS_INVOICED.equals(entity.getKingdeeStatus())
|
||||||
|
|| (KingdeeBfiConstant.KINGDEE_STATUS_SYNCED.equals(entity.getKingdeeStatus())
|
||||||
|
&& Func.isNotBlank(entity.getKingdeeBillId()))) {
|
||||||
return entity.getKingdeeBillNo();
|
return entity.getKingdeeBillNo();
|
||||||
}
|
}
|
||||||
if (Func.isBlank(entity.getApplicationNo())) throw new ServiceException("推送金蝶开票申请失败:开票申请单号为空");
|
if (Func.isBlank(entity.getApplicationNo())) throw new ServiceException("推送金蝶开票申请失败:开票申请单号为空");
|
||||||
@@ -882,7 +885,12 @@ public class InvoiceApplicationServiceImpl extends BaseServiceImpl<InvoiceApplic
|
|||||||
BfiBillSaveResultVO saveResult = bfiService.saveInvoiceApply(param);
|
BfiBillSaveResultVO saveResult = bfiService.saveInvoiceApply(param);
|
||||||
kingdeeApBillSyncSupport.requireBfiSaveSuccess(saveResult,
|
kingdeeApBillSyncSupport.requireBfiSaveSuccess(saveResult,
|
||||||
"推送金蝶开票申请发票张[" + Func.toStr(sheet.getSheetNo()) + "]");
|
"推送金蝶开票申请发票张[" + Func.toStr(sheet.getSheetNo()) + "]");
|
||||||
String kingdeeNo = saveResult.getResult().get(0).getNumber();
|
BfiBillSaveResultItemVO saveItem = saveResult.getResult().get(0);
|
||||||
|
String kingdeeNo = saveItem.getNumber();
|
||||||
|
// 星瀚内码随 A303-1 保存结果回填(A902 附件上传定位金蝶单据用),缺失时由 A303-4 勾稽反查兜底
|
||||||
|
if (Func.isBlank(entity.getKingdeeBillId()) && saveItem.getId() != null) {
|
||||||
|
entity.setKingdeeBillId(String.valueOf(saveItem.getId()));
|
||||||
|
}
|
||||||
sheet.setKingdeeBillNo(kingdeeNo);
|
sheet.setKingdeeBillNo(kingdeeNo);
|
||||||
savedBillNos.add(kingdeeNo);
|
savedBillNos.add(kingdeeNo);
|
||||||
pushedNew = true;
|
pushedNew = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user