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.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;
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user