feat: 付款申请单列表指定失败悬浮展示失败原因
This commit is contained in:
+2
@@ -52,6 +52,8 @@ public class PaymentApplicationVO extends PaymentApplication implements KingdeeU
|
|||||||
@TableField(exist = false) private Integer kingdeeTryCount;
|
@TableField(exist = false) private Integer kingdeeTryCount;
|
||||||
/** 已指定应付聚合态(assigned全部已指定/failed存在指定失败/unspecified存在未指定),空展示- */
|
/** 已指定应付聚合态(assigned全部已指定/failed存在指定失败/unspecified存在未指定),空展示- */
|
||||||
@TableField(exist = false) private String kingdeeAssignStatus;
|
@TableField(exist = false) private String kingdeeAssignStatus;
|
||||||
|
/** 指定失败原因(存在指定失败时聚合各票原因,悬浮展示) */
|
||||||
|
@TableField(exist = false) private String kingdeeAssignFailReason;
|
||||||
/** 金蝶解锁终态标识(unlocked 锁记录回填):解锁时间非空即代表该单曾被金蝶解锁/删单,供页面展示明显标识 */
|
/** 金蝶解锁终态标识(unlocked 锁记录回填):解锁时间非空即代表该单曾被金蝶解锁/删单,供页面展示明显标识 */
|
||||||
@TableField(exist = false) private LocalDateTime kingdeeUnlockTime;
|
@TableField(exist = false) private LocalDateTime kingdeeUnlockTime;
|
||||||
/** 金蝶侧解锁操作人(回调报文 operator) */
|
/** 金蝶侧解锁操作人(回调报文 operator) */
|
||||||
|
|||||||
+15
-5
@@ -268,18 +268,28 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl<PaymentApplic
|
|||||||
&& !Objects.equals(receipt.getIsDeleted(), 1))
|
&& !Objects.equals(receipt.getIsDeleted(), 1))
|
||||||
.collect(Collectors.toMap(InvoiceReceipt::getId, receipt -> receipt, (left, right) -> left));
|
.collect(Collectors.toMap(InvoiceReceipt::getId, receipt -> receipt, (left, right) -> left));
|
||||||
for (PaymentApplicationVO vo : rows) {
|
for (PaymentApplicationVO vo : rows) {
|
||||||
List<String> statuses = receiptIdsBySettlement.getOrDefault(vo.getSettlementId(), List.of()).stream()
|
List<InvoiceReceipt> claimed = receiptIdsBySettlement.getOrDefault(vo.getSettlementId(), List.of()).stream()
|
||||||
.map(receiptById::get).filter(Objects::nonNull)
|
.map(receiptById::get).filter(Objects::nonNull).toList();
|
||||||
|
if (claimed.isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
List<String> statuses = claimed.stream()
|
||||||
.map(receipt -> Func.toStrWithEmpty(receipt.getKingdeePushStatus(),
|
.map(receipt -> Func.toStrWithEmpty(receipt.getKingdeePushStatus(),
|
||||||
KingdeeBfiConstant.RECEIVED_PUSH_UNSYNCED))
|
KingdeeBfiConstant.RECEIVED_PUSH_UNSYNCED))
|
||||||
.toList();
|
.toList();
|
||||||
if (statuses.isEmpty()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
String status = statuses.contains(KingdeeBfiConstant.RECEIVED_PUSH_FAILED) ? "failed"
|
String status = statuses.contains(KingdeeBfiConstant.RECEIVED_PUSH_FAILED) ? "failed"
|
||||||
: statuses.stream().allMatch(KingdeeBfiConstant.RECEIVED_PUSH_ASSIGNED::equals)
|
: statuses.stream().allMatch(KingdeeBfiConstant.RECEIVED_PUSH_ASSIGNED::equals)
|
||||||
? "assigned" : "unspecified";
|
? "assigned" : "unspecified";
|
||||||
vo.setKingdeeAssignStatus(status);
|
vo.setKingdeeAssignStatus(status);
|
||||||
|
// 指定失败行聚合各票失败原因,供悬浮展示
|
||||||
|
if ("failed".equals(status)) {
|
||||||
|
vo.setKingdeeAssignFailReason(claimed.stream()
|
||||||
|
.filter(receipt -> KingdeeBfiConstant.RECEIVED_PUSH_FAILED.equals(
|
||||||
|
Func.toStrWithEmpty(receipt.getKingdeePushStatus(), KingdeeBfiConstant.RECEIVED_PUSH_UNSYNCED)))
|
||||||
|
.map(receipt -> "发票" + Func.toStrWithEmpty(receipt.getInvoiceNo(), String.valueOf(receipt.getId()))
|
||||||
|
+ ":" + Func.toStrWithEmpty(receipt.getKingdeePushMsg(), "推送失败"))
|
||||||
|
.collect(Collectors.joining(";")));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user