修改计费重
This commit is contained in:
+37
-1
@@ -54,6 +54,7 @@ import com.bms.price.domain.vo.TmsPriceQuoteFeeLine;
|
||||
import com.bms.price.domain.vo.TmsPriceQuoteResult;
|
||||
import com.bms.price.enums.BillCreditArrearsStatus;
|
||||
import com.bms.price.enums.BillCustomerActiveStatus;
|
||||
import com.bms.price.enums.BillRefundStatus;
|
||||
import com.bms.price.enums.TmsOrderBillMatchType;
|
||||
import com.bms.price.mapper.PrcIncomeBillFeeMapper;
|
||||
import com.bms.price.mapper.PrcIncomeBillMapper;
|
||||
@@ -184,6 +185,10 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
}
|
||||
failReq.setTransferNo(bill.getTransferNo());
|
||||
assertOrderBillEditable(bill);
|
||||
if (BillRefundStatus.REFUNDED.getCode().equalsIgnoreCase(bill.getRefundStatus()))
|
||||
{
|
||||
throw new ServiceException("\u8ba2\u5355\u5df2\u9000\u8d39\uff0c\u4e0d\u53ef\u91cd\u590d\u9000\u8d39");
|
||||
}
|
||||
|
||||
List<PrcIncomeBillFee> fees = incomeBillFeeMapper.selectByBillId(bill.getBillId());
|
||||
if (fees == null)
|
||||
@@ -194,7 +199,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
{
|
||||
if (row != null && FEE_TYPE_REFUND.equalsIgnoreCase(row.getFeeType()))
|
||||
{
|
||||
throw new ServiceException("订单已退费,不可重复退费");
|
||||
throw new ServiceException("\u8ba2\u5355\u5df2\u9000\u8d39\uff0c\u4e0d\u53ef\u91cd\u590d\u9000\u8d39");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,6 +239,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
refundFee.setArBillStatus(ArIncomeBillFeeStatus.UNBILLED.getCode());
|
||||
refundFee.setManualFlag("0");
|
||||
incomeBillFeeMapper.insertPrcIncomeBillFee(refundFee);
|
||||
bill.setRefundStatus(BillRefundStatus.REFUNDED.getCode());
|
||||
|
||||
TmsPriceQuoteResult result = refreshBillIncomeTotals(bill);
|
||||
JSONObject req = new JSONObject();
|
||||
@@ -243,6 +249,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
req.put("billId", bill.getBillId());
|
||||
req.put("refundAmount", feeSum.negate());
|
||||
req.put("feeId", refundFee.getFeeId());
|
||||
req.put("refundStatus", bill.getRefundStatus());
|
||||
if (billSearchStore != null)
|
||||
{
|
||||
billSearchStore.save(EsLogType.BILL,
|
||||
@@ -718,11 +725,27 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
StringUtils.isEmpty(bill.getCustomerActiveStatus())
|
||||
? BillCustomerActiveStatus.ACTIVE.getCode() : bill.getCustomerActiveStatus());
|
||||
bill.setCreditArrearsStatus(creditArrearsStatus);
|
||||
bill.setRefundStatus(resolveRefundStatus(fees));
|
||||
orderBillMapper.updatePrcOrderBill(bill);
|
||||
orderBillMapper.refreshArBillStatusByBillIds(Arrays.asList(bill.getBillId()));
|
||||
return toResult(bill, fees, payBillFeeMapper.selectByBillId(bill.getBillId()));
|
||||
}
|
||||
|
||||
private static String resolveRefundStatus(List<PrcIncomeBillFee> fees)
|
||||
{
|
||||
if (fees != null)
|
||||
{
|
||||
for (PrcIncomeBillFee row : fees)
|
||||
{
|
||||
if (row != null && FEE_TYPE_REFUND.equalsIgnoreCase(row.getFeeType()))
|
||||
{
|
||||
return BillRefundStatus.REFUNDED.getCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
return BillRefundStatus.NONE.getCode();
|
||||
}
|
||||
|
||||
private BigDecimal calcManualSurchargeAmount(PrcSurcharge surcharge, BigDecimal weight, BigDecimal freightAmount)
|
||||
{
|
||||
if (surcharge == null || surcharge.getChargeValue() == null)
|
||||
@@ -1106,6 +1129,10 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
// Credit soft-fail before persist so insert/update stores arrears flag in one write.
|
||||
String creditArrearsStatus = syncOrderCredit(bill, previousIncome, customerActiveStatus);
|
||||
bill.setCreditArrearsStatus(creditArrearsStatus);
|
||||
if (existed == null || StringUtils.isEmpty(bill.getRefundStatus()))
|
||||
{
|
||||
bill.setRefundStatus(BillRefundStatus.NONE.getCode());
|
||||
}
|
||||
result.setBillId(bill.getBillId());
|
||||
result.setOrderNo(orderNo);
|
||||
result.setTransferNo(bill.getTransferNo());
|
||||
@@ -1113,6 +1140,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
result.setCustomerCode(bill.getCustomerCode());
|
||||
result.setCustomerActiveStatus(customerActiveStatus);
|
||||
result.setCreditArrearsStatus(creditArrearsStatus);
|
||||
result.setRefundStatus(bill.getRefundStatus());
|
||||
result.setIncomeTotal(bill.getIncomeTotal());
|
||||
result.setPayTotal(bill.getPayTotal());
|
||||
result.setPayableTotal(bill.getIncomeTotal());
|
||||
@@ -1121,6 +1149,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
if (existed == null)
|
||||
{
|
||||
bill.setArBillStatus(ArOrderBillStatus.UNBILLED.getCode());
|
||||
bill.setRefundStatus(BillRefundStatus.NONE.getCode());
|
||||
orderBillMapper.insertPrcOrderBill(bill);
|
||||
}
|
||||
else
|
||||
@@ -1152,11 +1181,14 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
result.setIncomeTotal(refreshed.getIncomeTotal());
|
||||
result.setPayableTotal(refreshed.getPayableTotal());
|
||||
result.setCreditArrearsStatus(refreshed.getCreditArrearsStatus());
|
||||
result.setRefundStatus(refreshed.getRefundStatus());
|
||||
result.setFeeDetails(refreshed.getFeeDetails());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bill.setRefundStatus(BillRefundStatus.NONE.getCode());
|
||||
result.setRefundStatus(bill.getRefundStatus());
|
||||
orderBillMapper.refreshArBillStatusByBillIds(Arrays.asList(bill.getBillId()));
|
||||
}
|
||||
// Payable not in scope yet: do not write prc_pay_bill / prc_pay_bill_fee.
|
||||
@@ -1570,6 +1602,9 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
r.setCurrency(bill.getCurrency());
|
||||
r.setRoundMode(bill.getRoundMode());
|
||||
r.setBizDate(bill.getBizDate());
|
||||
r.setCustomerActiveStatus(bill.getCustomerActiveStatus());
|
||||
r.setCreditArrearsStatus(bill.getCreditArrearsStatus());
|
||||
r.setRefundStatus(bill.getRefundStatus());
|
||||
r.setFeeDetails(toIncomeFeeLines(incomeFees));
|
||||
r.setPayFeeDetails(toPayFeeLines(payFees));
|
||||
PrcIncomeBill incomeBill = incomeBillMapper.selectByBillId(bill.getBillId());
|
||||
@@ -1661,6 +1696,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
r.setCustomerName(bill.getCustomerName());
|
||||
r.setCustomerActiveStatus(bill.getCustomerActiveStatus());
|
||||
r.setCreditArrearsStatus(bill.getCreditArrearsStatus());
|
||||
r.setRefundStatus(bill.getRefundStatus());
|
||||
r.setPieces(bill.getPieces());
|
||||
r.setActualWeight(bill.getActualWeight());
|
||||
r.setVolume(bill.getVolume());
|
||||
|
||||
Reference in New Issue
Block a user