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);
// 验证结算账单类型一致性
validateSettleTypeConsistency(emisWriteoffApply);
// 设置申请编号
String applyNo = generateApplyNo();
emisWriteoffApply.setApplyNo(applyNo);
@ -1592,7 +1626,7 @@ public class EmisWriteoffApplyServiceImpl extends EmisBaseService implements IEm
EmisSettlePayRecord payRecord = new EmisSettlePayRecord();
payRecord.setPayId(payId);
payRecord.setWriteoffApplyNo(apply.getApplyNo()); // 设置销账申请编号
payRecord.setPayType("7"); // 销账收款类型
payRecord.setPayType(apply.getPayType()); // 销账收款类型
payRecord.setRecType("1"); // 收款类型
payRecord.setPayMan(apply.getApplyManName());
payRecord.setPayManCode(apply.getApplyManCode());
@ -1611,8 +1645,11 @@ public class EmisWriteoffApplyServiceImpl extends EmisBaseService implements IEm
payRecord.setPayMoney(totalApplyMoney);
payRecord.setPayStatus("2"); // 支付成功
payRecord.setSettleType("1"); // 现金结算
payRecord.setTradeDate(new Date());
if (!detailList.isEmpty() && detailList.get(0).getEmisSettleBill() != null) {
EmisSettleBill emisSettleBill = detailList.get(0).getEmisSettleBill();
payRecord.setSettleType(emisSettleBill.getSettleType());
}
payRecord.setTradeDate(apply.getTradeDate());
payRecord.setRecManCode(currentUser.getEmpCode());
// 插入收款记录主表