Merge pull request 'develop' (#293) from develop into master

Reviewed-on: http://git.xdadan.loc/tanex/emis-service/pulls/293
This commit is contained in:
heyu 2026-01-14 10:39:41 +08:00
commit ab0eab80db

View File

@ -186,6 +186,37 @@ public class EmisWriteoffApplyServiceImpl extends EmisBaseService implements IEm
} }
} }
/**
* 验证明细列表中结算账单的结算类型是否一致
*
* @param emisWriteoffApply 销账申请
* @throws EmisBizError 如果结算类型不一致则抛出异常
*/
private void validateSettleTypeConsistency(EmisWriteoffApply emisWriteoffApply) throws EmisBizError {
if (CollectionUtils.isEmpty(emisWriteoffApply.getDetailList())) {
return;
}
String firstSettleType = null;
for (EmisWriteoffApplyDetail detail : emisWriteoffApply.getDetailList()) {
if (detail.getEmisSettleBill() == null) {
throw new EmisBizError("运单号 " + detail.getBillCode() + " 的账单信息为空");
}
String settleType = detail.getEmisSettleBill().getSettleType();
if (settleType == null) {
throw new EmisBizError("运单号 " + detail.getBillCode() + " 的结算账单类型为空");
}
if (firstSettleType == null) {
firstSettleType = settleType;
} else if (!firstSettleType.equals(settleType)) {
throw new EmisBizError("明细列表中的结算账单类型不一致,运单号 " + detail.getBillCode()
+ " 的结算类型为 " + settleType + ",与其他明细的结算类型 " + firstSettleType + " 不一致");
}
}
}
/** /**
* 新增销账申请 * 新增销账申请
* *
@ -199,6 +230,9 @@ public class EmisWriteoffApplyServiceImpl extends EmisBaseService implements IEm
// 先验证销账金额 // 先验证销账金额
validateWriteoffAmount(emisWriteoffApply); validateWriteoffAmount(emisWriteoffApply);
// 验证结算账单类型一致性
validateSettleTypeConsistency(emisWriteoffApply);
// 设置申请编号 // 设置申请编号
String applyNo = generateApplyNo(); String applyNo = generateApplyNo();
emisWriteoffApply.setApplyNo(applyNo); emisWriteoffApply.setApplyNo(applyNo);
@ -1592,7 +1626,7 @@ public class EmisWriteoffApplyServiceImpl extends EmisBaseService implements IEm
EmisSettlePayRecord payRecord = new EmisSettlePayRecord(); EmisSettlePayRecord payRecord = new EmisSettlePayRecord();
payRecord.setPayId(payId); payRecord.setPayId(payId);
payRecord.setWriteoffApplyNo(apply.getApplyNo()); // 设置销账申请编号 payRecord.setWriteoffApplyNo(apply.getApplyNo()); // 设置销账申请编号
payRecord.setPayType("7"); // 销账收款类型 payRecord.setPayType(apply.getPayType()); // 销账收款类型
payRecord.setRecType("1"); // 收款类型 payRecord.setRecType("1"); // 收款类型
payRecord.setPayMan(apply.getApplyManName()); payRecord.setPayMan(apply.getApplyManName());
payRecord.setPayManCode(apply.getApplyManCode()); payRecord.setPayManCode(apply.getApplyManCode());
@ -1611,8 +1645,11 @@ public class EmisWriteoffApplyServiceImpl extends EmisBaseService implements IEm
payRecord.setPayMoney(totalApplyMoney); payRecord.setPayMoney(totalApplyMoney);
payRecord.setPayStatus("2"); // 支付成功 payRecord.setPayStatus("2"); // 支付成功
payRecord.setSettleType("1"); // 现金结算 if (!detailList.isEmpty() && detailList.get(0).getEmisSettleBill() != null) {
payRecord.setTradeDate(new Date()); EmisSettleBill emisSettleBill = detailList.get(0).getEmisSettleBill();
payRecord.setSettleType(emisSettleBill.getSettleType());
}
payRecord.setTradeDate(apply.getTradeDate());
payRecord.setRecManCode(currentUser.getEmpCode()); payRecord.setRecManCode(currentUser.getEmpCode());
// 插入收款记录主表 // 插入收款记录主表