demand: 合并收款相关逻辑

This commit is contained in:
aike 2026-04-01 13:19:13 +08:00
parent 26573ac59e
commit b9ff278ac6
3 changed files with 5 additions and 27 deletions

View File

@ -15,6 +15,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonGetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
//import com.xdadan.erp.common.annotation.audit.DataAuditFilter;
import com.xdadan.erp.common.annotation.audit.DataAuditField;
import com.xdadan.erp.common.annotation.audit.DataAuditTable;
@ -758,6 +759,7 @@ public class EmisWaybill extends BaseEntity {
* 设置运单表副表
* @param waybillOther EmisWaybillOther
*/
@JsonProperty("waybillOther")
public void setWaybillOther(EmisWaybillOther waybillOther) {
this.waybillOther = waybillOther;
}

View File

@ -878,8 +878,6 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
@Override
public int reCalcSettleBillPayStatus(String settleBillNo) {
log.info("start reCalcSettleBillPayStatus");
log.debug("start reCalcSettleBillPayStatus");
EmisSettleBill oldBill = getSettleBillBySettleBillNo(settleBillNo);
// 获取收款记录
List<EmisSettlePayRecord> payRecordList = emisSettlePayRecordMapper

View File

@ -475,7 +475,6 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
.collect(Collectors.toList());
// 现金结算多账单合并收款时,校验每条运单的 moneyUserId 必须一致
log.info("aike.start validateMoneyUserIdForMergeCashSettle");
validateMoneyUserIdForMergeCashSettle(emisSettlePayRecord);
for (int i = 0; i < settleBillNoArr.size(); i++) {
@ -580,33 +579,18 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
}
private void validateMoneyUserIdForMergeCashSettle(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError {
// 方法入参与前置条件日志
if (emisSettlePayRecord == null) {
log.debug("aike.validateMoneyUserIdForMergeCashSettle skipped: emisSettlePayRecord is null");
return;
}
String settleType = emisSettlePayRecord.getSettleType();
String settleBillNo = emisSettlePayRecord.getSettleBillNo();
boolean containsComma = settleBillNo != null && settleBillNo.contains(",");
log.debug("aike.validateMoneyUserIdForMergeCashSettle enter: settleType={}, settleBillNo={}, containsComma={}",
settleType, settleBillNo, containsComma);
if (!"1".equals(settleType)
|| StringUtils.isBlank(settleBillNo)
|| !containsComma) {
log.debug("aike.validateMoneyUserIdForMergeCashSettle skipped by preconditions. settleTypeMatch={}, billNoBlank={}, containsComma={}",
"1".equals(settleType), StringUtils.isBlank(settleBillNo), containsComma);
if (!"1".equals(emisSettlePayRecord.getSettleType())
|| StringUtils.isBlank(emisSettlePayRecord.getSettleBillNo())
|| !emisSettlePayRecord.getSettleBillNo().contains(",")) {
return;
}
List<EmisSettlePayRel> payRelList = emisSettlePayRecord.getPayRelList();
if (CollectionUtils.isEmpty(payRelList)) {
log.debug("aike.validateMoneyUserIdForMergeCashSettle skipped: payRelList empty");
return;
}
Set<Long> moneyUserIdSet = new HashSet<>();
int index = 0;
for (EmisSettlePayRel payRel : payRelList) {
Long moneyUserId = null;
if (payRel != null
@ -614,17 +598,11 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
&& payRel.getWaybillDetail().getWaybillOther() != null) {
moneyUserId = payRel.getWaybillDetail().getWaybillOther().getMoneyUserId();
}
log.debug("aike.validateMoneyUserIdForMergeCashSettle item#{}, billNo={}, moneyUserId={}",
index++,
payRel == null ? null : payRel.getBillNo(),
moneyUserId);
moneyUserIdSet.add(moneyUserId);
if (moneyUserIdSet.size() > 1) {
log.warn("aike.合并现金收款校验失败:存在多个不同的moneyUserId,详情: {}", moneyUserIdSet);
throw new EmisBizError(EmisBizErrorType.FAIL, "不同现金客户不允许合并收款");
}
}
log.debug("aike.validateMoneyUserIdForMergeCashSettle passed: unique moneyUserId={}", moneyUserIdSet);
}
private static void checkParam(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError {