|
|
@@ -26,6 +26,7 @@ import org.springblade.check.entity.AuditPathsActs;
|
|
|
import org.springblade.check.entity.AuditPathsLevels;
|
|
|
import org.springblade.check.feign.ICheckClient;
|
|
|
import org.springblade.client.entity.CorpsDesc;
|
|
|
+import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.deliver.goods.entity.Delivery;
|
|
|
import org.springblade.deliver.goods.entity.DeliveryItems;
|
|
|
@@ -119,11 +120,11 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
//收费明细的核销金额
|
|
|
BigDecimal reduce = new BigDecimal(BigInteger.ZERO);
|
|
|
if (CollectionUtils.isNotEmpty(itemsList)){
|
|
|
- reduce = itemsList.stream().filter(e -> e.getSettlmentAmount() != null).map(Items::getSettlmentAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ reduce = itemsList.stream().filter(e -> e.getThisAmount() != null).map(Items::getThisAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
}
|
|
|
//如果人民币金额大于核销金额明细 撤销生成的溢付款 撤销使用的溢付款
|
|
|
if (settlement.getAmount().compareTo(reduce)>0){
|
|
|
- if (settlement.getCaseOverPayment() != null){
|
|
|
+ if (settlement.getCaseOverPayment() != null && settlement.getCaseOverPayment().compareTo(BigDecimal.ZERO) > 0){
|
|
|
throw new SecurityException("此结算单人民币金额足够,不能使用溢付款");
|
|
|
}
|
|
|
R overpayment = this.updateOverpayment(settlement, SettlementEnum.REPEALADD.getStatus(), settlement.getAmount().subtract(reduce));
|
|
|
@@ -131,7 +132,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
throw new SecurityException(overpayment.getMsg());
|
|
|
}
|
|
|
}else if (settlement.getAmount().compareTo(reduce) == 0){
|
|
|
- if (settlement.getCaseOverPayment() != null){
|
|
|
+ if (settlement.getCaseOverPayment() != null && settlement.getCaseOverPayment().compareTo(BigDecimal.ZERO) > 0){
|
|
|
throw new SecurityException("此结算单人民币金额足够,不能使用溢付款");
|
|
|
}
|
|
|
}else {
|
|
|
@@ -194,11 +195,11 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
//收费明细的核销金额
|
|
|
BigDecimal reduce = new BigDecimal(BigInteger.ZERO);
|
|
|
if (CollectionUtils.isNotEmpty(itemsList)){
|
|
|
- reduce = itemsList.stream().filter(e -> e.getSettlmentAmount() != null).map(Items::getSettlmentAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ reduce = itemsList.stream().filter(e -> e.getThisAmount() != null).map(Items::getThisAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
}
|
|
|
//如果人民币金额大于核销金额明细生成溢付款 小于使用溢付款
|
|
|
if (settlement.getAmount().compareTo(reduce)>0){
|
|
|
- if (settlement.getCaseOverPayment() != null){
|
|
|
+ if (settlement.getCaseOverPayment() != null && settlement.getCaseOverPayment().compareTo(BigDecimal.ZERO) > 0){
|
|
|
throw new SecurityException("此结算单人民币金额足够,不能使用溢付款");
|
|
|
}
|
|
|
R overpayment = this.updateOverpayment(settlement, SettlementEnum.ADD.getStatus(), settlement.getAmount().subtract(reduce));
|
|
|
@@ -206,7 +207,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
throw new SecurityException(overpayment.getMsg());
|
|
|
}
|
|
|
}else if (settlement.getAmount().compareTo(reduce) == 0){
|
|
|
- if (settlement.getCaseOverPayment() != null){
|
|
|
+ if (settlement.getCaseOverPayment() != null && settlement.getCaseOverPayment().compareTo(BigDecimal.ZERO) > 0){
|
|
|
throw new SecurityException("此结算单人民币金额足够,不能使用溢付款");
|
|
|
}
|
|
|
}else {
|
|
|
@@ -738,7 +739,10 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
|
|
|
BigDecimal total = itemsList.stream().filter(e -> e.getAmount() != null && e.getCurrency().equals("CNY")).map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
BigDecimal foreignTotal = itemsList.stream().filter(e -> e.getAmount() != null && !e.getCurrency().equals("CNY")).map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
model.setForeignAmount(foreignTotal);
|
|
|
- model.setAmount(total);
|
|
|
+ // todo 暂定用租户判断 国内贸易 收费 人民币金额 可以手输
|
|
|
+ if (!SecureUtil.getTenantId().equals("681169")){
|
|
|
+ model.setAmount(total);
|
|
|
+ }
|
|
|
//如果id=null, 无论主表还是从表, 必然都是新增
|
|
|
Long id = settlementDTO.getId();
|
|
|
if (id == null) {
|