Browse Source

财务收费溢付款修改

lazhaoqian 3 years ago
parent
commit
d131f77c37

+ 8 - 2
blade-service/blade-stock/src/main/java/org/springblade/stock/service/impl/StockGoodsServiceImpl.java

@@ -46,6 +46,7 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -122,8 +123,13 @@ public class StockGoodsServiceImpl extends ServiceImpl<StockGoodsMapper, StockGo
 		StringBuffer storage = new StringBuffer();//未找到仓库的商品
 		for (StockGoodsExcel datum : data) {
 			StockGoods stockGoods = new StockGoods();
-			stockGoods.setBalanceQuantity(datum.getSurplusRouteQuantity());
-			stockGoods.setSurplusRouteQuantity(datum.getSurplusRouteQuantity());
+			stockGoods.setBalanceQuantity(datum.getSurplusRouteQuantity());//结余数量
+			stockGoods.setSurplusRouteQuantity(datum.getSurplusRouteQuantity());//可用数量
+			stockGoods.setInQuantity(datum.getSurplusRouteQuantity());//入库数量
+			stockGoods.setOutQuantity(BigDecimal.ZERO);//出库数量
+			stockGoods.setLockingQuantity(BigDecimal.ZERO);//锁定数量
+			stockGoods.setEnRouteQuantity(BigDecimal.ZERO);//在途数量
+
 			stockGoods.setTradeType("GN");
 			stockGoods.setTenantId(SecureUtil.getTenantId());
 			//获取商品id

+ 11 - 7
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -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) {