Browse Source

Merge remote-tracking branch 'origin/dev' into dev

lazhaoqian 4 years ago
parent
commit
30d663c85f

+ 2 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/entity/Acc.java

@@ -297,4 +297,6 @@ public class Acc implements Serializable {
 
 
 	private String tradeType;
 	private String tradeType;
 
 
+	private String itemType;
+
 }
 }

+ 3 - 2
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -247,7 +247,7 @@ public class SettlementController extends BladeController {
 	}
 	}
 
 
 	/**
 	/**
-	 * 申请货款(申请/付费)
+	 * 批量申请货款(申请/付费)
 	 * */
 	 * */
 	@PostMapping("/applyList")
 	@PostMapping("/applyList")
 	@ApiOperationSupport(order = 8)
 	@ApiOperationSupport(order = 8)
@@ -258,7 +258,8 @@ public class SettlementController extends BladeController {
 		{
 		{
 			throw new SecurityException("传入数据不能为空");
 			throw new SecurityException("传入数据不能为空");
 		}
 		}
-		return R.data(settlementService.apply(dto.getItemsList(),dto.getBillType(),dto.getUrl()));
+		settlementService.applyList(dto.getItemsList(),dto.getBillType(),dto.getUrl());
+		return R.success("操作成功");
 	}
 	}
 
 
 
 

+ 1 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/service/ISettlementService.java

@@ -50,7 +50,7 @@ public interface ISettlementService extends IService<Settlement> {
 
 
 	Settlement apply(List<Items> itemsList, String billType,String url);
 	Settlement apply(List<Items> itemsList, String billType,String url);
 
 
-	void applyList(List<Items> itemsList, String billType);
+	void applyList(List<Items> itemsList, String billType,String url);
 
 
 	void check(Settlement settlement);
 	void check(Settlement settlement);
 
 

+ 1 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/AccServiceImpl.java

@@ -102,6 +102,7 @@ public class AccServiceImpl extends ServiceImpl<AccMapper, Acc> implements IAccS
 			items.setCurrency(k.getCurrency());
 			items.setCurrency(k.getCurrency());
 			items.setExchangeRate(k.getExchangeRate());
 			items.setExchangeRate(k.getExchangeRate());
 			items.setAmount(k.getAmount());
 			items.setAmount(k.getAmount());
+			items.setItemType(k.getItemType());
 			items.setSrcOrderno(k.getAccSysNo());
 			items.setSrcOrderno(k.getAccSysNo());
 			items.setSrcBillNo(k.getSrcBillNo());
 			items.setSrcBillNo(k.getSrcBillNo());
 			items.setTaxRate(k.getTaxRate());
 			items.setTaxRate(k.getTaxRate());

+ 88 - 15
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -327,21 +327,22 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		{
 		{
 			throw new SecurityException("操作失败,没有绑定明细信息");
 			throw new SecurityException("操作失败,没有绑定明细信息");
 		}
 		}
+		//获取账单明细对象
 		Acc acc = accMapper.selectById(accId);
 		Acc acc = accMapper.selectById(accId);
 		if(acc==null)
 		if(acc==null)
 		{
 		{
 		   throw new SecurityException("操作账单失败");
 		   throw new SecurityException("操作账单失败");
 		}
 		}
 		//结算成功后,更新acc表金额,采购收费 销售付费
 		//结算成功后,更新acc表金额,采购收费 销售付费
-		acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
+	/*	acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
 		BigDecimal settlementAmount = acc.getSettlementAmount();
 		BigDecimal settlementAmount = acc.getSettlementAmount();
 		BigDecimal amount = acc.getAmount();
 		BigDecimal amount = acc.getAmount();
 		if(settlementAmount.compareTo(amount)>0)
 		if(settlementAmount.compareTo(amount)>0)
 		{
 		{
 			throw new SecurityException("结算金额超过账单明细总金额");
 			throw new SecurityException("结算金额超过账单明细总金额");
-		}
-		accMapper.updateById(acc);
-		//修改原业务表数据
+		}*/
+
+		//修改原业务表和账单明细的数据
 		if(type==1)
 		if(type==1)
 		{   Long srcParentId = acc.getSrcParentId();
 		{   Long srcParentId = acc.getSrcParentId();
 			if(srcParentId==null)
 			if(srcParentId==null)
@@ -353,32 +354,80 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			{
 			{
 				throw new SecurityException("修改原单据失败");
 				throw new SecurityException("修改原单据失败");
 			}
 			}
+
+			/**
+			 *  金币增加操作: (billType=申请,itemType=采购) 或者 (billType=收费,itemType=销售)
+			 *  金币减少操作: (billType=申请,itemType=销售) 或者 (billType=收费,itemType=采购)
+			 * */
+
 			//如果是人民币,修改人民结算字段
 			//如果是人民币,修改人民结算字段
 			if(items.getCurrency().equals("CNY"))
 			if(items.getCurrency().equals("CNY"))
 			{
 			{
-				if(settlementDTO.getBillType().equals("申请")||settlementDTO.getBillType().equals("付费"))
+				//人民币-增加金额的操作
+				if
+				(
+					    (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("采购"))
+				        ||
+						(settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("销售"))
+				)
 				{
 				{
+					//账单明细增加
+					acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
+					//原业务表增加
 					client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
 					client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
 				}
 				}
-				else if(settlementDTO.getBillType().equals("收费"))
+
+
+				//人民币-减少金额的操作
+				else if
+				(
+					    (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("销售"))
+						||
+						(settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("采购"))
+				)
 				{
 				{
-					client.setSettlmentAmount(client.getSettlmentAmount()!=null?items.getThisAmount().subtract(client.getSettlmentAmount()):items.getThisAmount().subtract(new BigDecimal("0")));
+					//账单明细减少
+					acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
+					//原业务表减少
+					client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
 				}
 				}
 
 
 			}
 			}
 			//如果是外币
 			//如果是外币
 			else
 			else
 			{
 			{
-				if(settlementDTO.getBillType().equals("申请")||settlementDTO.getBillType().equals("收费"))
+				//外币-增加金额的操作
+				if
+				(
+					    (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("采购"))
+						||
+						(settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("销售"))
+				)
 				{
 				{
-					client.setForeignSettlmentAmount(client.getForeignSettlmentAmount()!=null?client.getForeignSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
+					//账单明细增加
+					acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
+					//原业务表增加
+					client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
 				}
 				}
-				else if(settlementDTO.getBillType().equals("付费"))
+
+				//外币-减少金额的操作
+				else if
+				(
+					    (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("销售"))
+						||
+						(settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("采购"))
+				)
 				{
 				{
-					client.setForeignSettlmentAmount(client.getForeignSettlmentAmount()!=null?items.getThisAmount().subtract(client.getForeignSettlmentAmount()):items.getThisAmount().subtract(new BigDecimal("0")));
+					//账单明细减少
+					acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
+					//原业务表减少
+					client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
 				}
 				}
 				//client.setForeignSettlmentAmount(client.getForeignSettlmentAmount()!=null?client.getForeignSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
 				//client.setForeignSettlmentAmount(client.getForeignSettlmentAmount()!=null?client.getForeignSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
 			}
 			}
+			//明细账单操作
+			accMapper.updateById(acc);
+			//原业务表
 			orderDescClient.updateOrder(client);
 			orderDescClient.updateOrder(client);
 
 
 		}
 		}
@@ -396,7 +445,29 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			{
 			{
 				throw new SecurityException("修改原单据失败");
 				throw new SecurityException("修改原单据失败");
 			}
 			}
-			orderFees.setSettlmentAmount(orderFees.getSettlmentAmount()!=null?orderFees.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
+			//增加操作
+			if
+			(
+				(settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("采购"))
+					||
+					(settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("销售"))
+			)
+			{
+				acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
+				orderFees.setSettlmentAmount(orderFees.getSettlmentAmount()!=null?orderFees.getSettlmentAmount().add(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
+			}
+			//减少操作
+			else if
+			(
+				    (settlementDTO.getBillType().equals("申请")&&settlementDTO.getItemType().equals("销售"))
+					||
+					(settlementDTO.getBillType().equals("收费")&&settlementDTO.getItemType().equals("采购"))
+			)
+			{
+				acc.setSettlementAmount(acc.getSettlementAmount()!=null?acc.getSettlementAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
+				orderFees.setSettlmentAmount(orderFees.getSettlmentAmount()!=null?orderFees.getSettlmentAmount().subtract(items.getThisAmount()):new BigDecimal("0").subtract(items.getThisAmount()));
+			}
+			accMapper.updateById(acc);
 			orderFeesClient.submit(orderFees);
 			orderFeesClient.submit(orderFees);
 		}
 		}
 		else
 		else
@@ -463,7 +534,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 
 	@Override
 	@Override
 	@Transactional
 	@Transactional
-	public void applyList(List<Items> itemsList, String billType)
+	public void applyList(List<Items> itemsList, String billType,String url)
 	{
 	{
 		itemsList.forEach(e->{
 		itemsList.forEach(e->{
 
 
@@ -487,14 +558,14 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			e.setCreateUser(AuthUtil.getUserId());
 			e.setCreateUser(AuthUtil.getUserId());
 			itemsMapper.insert(e);
 			itemsMapper.insert(e);
 
 
-			if(e.getCurrency().equals("CNY"))
+			/*if(e.getCurrency().equals("CNY"))
 			{
 			{
 				settlement.setAmount(e.getAmount());
 				settlement.setAmount(e.getAmount());
 			}
 			}
 			else
 			else
 			{
 			{
 				settlement.setForeignAmount(e.getAmount());
 				settlement.setForeignAmount(e.getAmount());
-			}
+			}*/
 		});
 		});
 	}
 	}
 
 
@@ -550,6 +621,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			Acc acc=new Acc();
 			Acc acc=new Acc();
 			BeanUtils.copyProperties(e,acc);
 			BeanUtils.copyProperties(e,acc);
 			acc.setId(null);
 			acc.setId(null);
+			acc.setItemType(e.getItemType());
 			acc.setAccSysNo(e.getSrcOrderno());
 			acc.setAccSysNo(e.getSrcOrderno());
 			acc.setSrcParentId(e.getSrcParentId());
 			acc.setSrcParentId(e.getSrcParentId());
 			acc.setSrcBillNo(e.getBillNo());
 			acc.setSrcBillNo(e.getBillNo());
@@ -672,6 +744,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 				acc.setBillType(settlement.getBillType());
 				acc.setBillType(settlement.getBillType());
 				acc.setCreateTime(new Date());
 				acc.setCreateTime(new Date());
 				acc.setStatus(0);
 				acc.setStatus(0);
+				acc.setItemType(e.getItemType());
 				acc.setCreateUser(AuthUtil.getUserId());
 				acc.setCreateUser(AuthUtil.getUserId());
 				acc.setCostType(e.getCostType());
 				acc.setCostType(e.getCostType());
 				acc.setSrcFeesId(e.getSrcFeesId());
 				acc.setSrcFeesId(e.getSrcFeesId());