demand: 合并收款相关逻辑
This commit is contained in:
parent
26573ac59e
commit
b9ff278ac6
@ -15,6 +15,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
|||||||
import com.fasterxml.jackson.annotation.JsonGetter;
|
import com.fasterxml.jackson.annotation.JsonGetter;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
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.DataAuditFilter;
|
||||||
import com.xdadan.erp.common.annotation.audit.DataAuditField;
|
import com.xdadan.erp.common.annotation.audit.DataAuditField;
|
||||||
import com.xdadan.erp.common.annotation.audit.DataAuditTable;
|
import com.xdadan.erp.common.annotation.audit.DataAuditTable;
|
||||||
@ -758,6 +759,7 @@ public class EmisWaybill extends BaseEntity {
|
|||||||
* 设置运单表副表
|
* 设置运单表副表
|
||||||
* @param waybillOther EmisWaybillOther
|
* @param waybillOther EmisWaybillOther
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("waybillOther")
|
||||||
public void setWaybillOther(EmisWaybillOther waybillOther) {
|
public void setWaybillOther(EmisWaybillOther waybillOther) {
|
||||||
this.waybillOther = waybillOther;
|
this.waybillOther = waybillOther;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -878,8 +878,6 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
|
|||||||
@Override
|
@Override
|
||||||
public int reCalcSettleBillPayStatus(String settleBillNo) {
|
public int reCalcSettleBillPayStatus(String settleBillNo) {
|
||||||
|
|
||||||
log.info("start reCalcSettleBillPayStatus");
|
|
||||||
log.debug("start reCalcSettleBillPayStatus");
|
|
||||||
EmisSettleBill oldBill = getSettleBillBySettleBillNo(settleBillNo);
|
EmisSettleBill oldBill = getSettleBillBySettleBillNo(settleBillNo);
|
||||||
// 获取收款记录
|
// 获取收款记录
|
||||||
List<EmisSettlePayRecord> payRecordList = emisSettlePayRecordMapper
|
List<EmisSettlePayRecord> payRecordList = emisSettlePayRecordMapper
|
||||||
|
|||||||
@ -475,7 +475,6 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
// 现金结算多账单合并收款时,校验每条运单的 moneyUserId 必须一致
|
// 现金结算多账单合并收款时,校验每条运单的 moneyUserId 必须一致
|
||||||
log.info("aike.start validateMoneyUserIdForMergeCashSettle");
|
|
||||||
validateMoneyUserIdForMergeCashSettle(emisSettlePayRecord);
|
validateMoneyUserIdForMergeCashSettle(emisSettlePayRecord);
|
||||||
|
|
||||||
for (int i = 0; i < settleBillNoArr.size(); i++) {
|
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 {
|
private void validateMoneyUserIdForMergeCashSettle(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError {
|
||||||
// 方法入参与前置条件日志
|
if (!"1".equals(emisSettlePayRecord.getSettleType())
|
||||||
if (emisSettlePayRecord == null) {
|
|| StringUtils.isBlank(emisSettlePayRecord.getSettleBillNo())
|
||||||
log.debug("aike.validateMoneyUserIdForMergeCashSettle skipped: emisSettlePayRecord is null");
|
|| !emisSettlePayRecord.getSettleBillNo().contains(",")) {
|
||||||
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);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<EmisSettlePayRel> payRelList = emisSettlePayRecord.getPayRelList();
|
List<EmisSettlePayRel> payRelList = emisSettlePayRecord.getPayRelList();
|
||||||
if (CollectionUtils.isEmpty(payRelList)) {
|
if (CollectionUtils.isEmpty(payRelList)) {
|
||||||
log.debug("aike.validateMoneyUserIdForMergeCashSettle skipped: payRelList empty");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Set<Long> moneyUserIdSet = new HashSet<>();
|
Set<Long> moneyUserIdSet = new HashSet<>();
|
||||||
int index = 0;
|
|
||||||
for (EmisSettlePayRel payRel : payRelList) {
|
for (EmisSettlePayRel payRel : payRelList) {
|
||||||
Long moneyUserId = null;
|
Long moneyUserId = null;
|
||||||
if (payRel != null
|
if (payRel != null
|
||||||
@ -614,17 +598,11 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
|
|||||||
&& payRel.getWaybillDetail().getWaybillOther() != null) {
|
&& payRel.getWaybillDetail().getWaybillOther() != null) {
|
||||||
moneyUserId = payRel.getWaybillDetail().getWaybillOther().getMoneyUserId();
|
moneyUserId = payRel.getWaybillDetail().getWaybillOther().getMoneyUserId();
|
||||||
}
|
}
|
||||||
log.debug("aike.validateMoneyUserIdForMergeCashSettle item#{}, billNo={}, moneyUserId={}",
|
|
||||||
index++,
|
|
||||||
payRel == null ? null : payRel.getBillNo(),
|
|
||||||
moneyUserId);
|
|
||||||
moneyUserIdSet.add(moneyUserId);
|
moneyUserIdSet.add(moneyUserId);
|
||||||
if (moneyUserIdSet.size() > 1) {
|
if (moneyUserIdSet.size() > 1) {
|
||||||
log.warn("aike.合并现金收款校验失败:存在多个不同的moneyUserId,详情: {}", moneyUserIdSet);
|
|
||||||
throw new EmisBizError(EmisBizErrorType.FAIL, "不同现金客户不允许合并收款");
|
throw new EmisBizError(EmisBizErrorType.FAIL, "不同现金客户不允许合并收款");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.debug("aike.validateMoneyUserIdForMergeCashSettle passed: unique moneyUserId={}", moneyUserIdSet);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void checkParam(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError {
|
private static void checkParam(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user