浏览代码

修改提交

ioioio 3 年之前
父节点
当前提交
b26281da36

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

@@ -40,4 +40,6 @@ public class ApplyDTO extends Acc {
 
 	@ApiModelProperty(value = "货款类型: 申请 收费 付费")
 	private String billType;
+
+	private String url;
 }

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

@@ -225,5 +225,9 @@ public class Settlement  implements Serializable {
 
 	private Long srcBillId;
 
+	private String url;
+
+	private BigDecimal foreignAmount;
+
 
 }

+ 1 - 1
blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java

@@ -107,7 +107,7 @@ public class AuditProecessController extends BladeController {
 				if(e.getSrcBillId()!=null)
 				{
 					Settlement settlement=new Settlement();
-					settlement.setId(e.getSrcBillId());
+					settlement.setId(e.getBillId());
 					R<Settlement> detail = financeClient.detail(settlement);
 					if(detail.isSuccess())
 					{

+ 2 - 0
blade-service/blade-check/src/main/java/org/springblade/check/entity/AuditProecess.java

@@ -139,4 +139,6 @@ public class AuditProecess implements Serializable {
 	    @ApiModelProperty(value = "审批类型")
 		private String processType;
 
+	    private String url;
+
 }

+ 2 - 0
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -84,6 +84,8 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 			auditProecess.setSendMsg(auditProecessDTO.getSendMsg());
 			auditProecess.setAuditUserId(e.getAuditUserId());
 			auditProecess.setIffinalItem(e.getIffinalItem());
+			auditProecess.setProcessType(auditProecessDTO.getProcessType());
+			auditProecess.setUrl(auditProecessDTO.getUrl());
 
 			//除了第一级是待审,其他都N
 			if(e.getLevelId()==1)

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

@@ -243,7 +243,7 @@ public class SettlementController extends BladeController {
           {
           	throw new SecurityException("传入数据不能为空");
 		  }
-          return R.data(settlementService.apply(dto.getItemsList(),dto.getBillType()));
+          return R.data(settlementService.apply(dto.getItemsList(),dto.getBillType(),dto.getUrl()));
 	}
 
 	/**
@@ -258,7 +258,7 @@ public class SettlementController extends BladeController {
 		{
 			throw new SecurityException("传入数据不能为空");
 		}
-		return R.data(settlementService.apply(dto.getItemsList(),dto.getBillType()));
+		return R.data(settlementService.apply(dto.getItemsList(),dto.getBillType(),dto.getUrl()));
 	}
 
 

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

@@ -48,7 +48,7 @@ public interface ISettlementService extends IService<Settlement> {
     //取消结算
 	Settlement cancelModify(SettlementDTO settlementDTO);
 
-	Settlement apply(List<Items> itemsList, String billType);
+	Settlement apply(List<Items> itemsList, String billType,String url);
 
 	void applyList(List<Items> itemsList, String billType);
 

+ 31 - 9
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -267,19 +267,22 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			{
 				throw new SecurityException("撤销账单失败,未获取到原业务信息");
 			}
-			//回退原业务表数据
-			if(client.getSettlmentAmount() == null)
-			{
-				throw new SecurityException("撤销账单失败,原业务表已收金额为空");
-			}
 			//如果是人民币修改原
 			if(items.getCurrency().equals("CNY"))
 			{
+				if(client.getSettlmentAmount() == null)
+				{
+					throw new SecurityException("撤销账单失败,原业务表已收金额为空");
+				}
 				client.setSettlmentAmount(client.getSettlmentAmount()!=null?client.getSettlmentAmount().subtract(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
 			}
 			//如果是外币
 			else
 			{
+				if(client.getForeignSettlmentAmount() == null)
+				{
+					throw new SecurityException("撤销账单失败,原业务表已收金额为空");
+				}
 				client.setForeignSettlmentAmount(client.getForeignSettlmentAmount()!=null?client.getForeignSettlmentAmount().subtract(items.getThisAmount()):new BigDecimal("0").add(items.getThisAmount()));
 			}
 			orderDescClient.updateOrder(client);
@@ -401,17 +404,22 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 	@Override
 	@Transactional
-	public Settlement apply(List<Items> itemsList, String billType)
+	public Settlement apply(List<Items> itemsList, String billType,String url)
 	{
-		BigDecimal total = itemsList.stream().filter(e -> e.getAmount() != null).map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+		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);
 		Settlement settlement=new Settlement();
 		   settlement.setBillType(billType);
 		   settlement.setCorpId(itemsList.get(0).getCorpId());
+		   settlement.setUrl(url);
 		   settlement.setSrcOrderno(itemsList.get(0).getSrcOrderno());
 		   //todo 系统编号暂时按时间戳, 后续按正式
 		   settlement.setSysNo(String.valueOf(System.currentTimeMillis()));
 		   settlement.setCreateTime(new Date());
-		  /* settlement.setAmount(total);*/
+		   //人民币总金额
+		   settlement.setAmount(total);
+		   //外币总金额
+		   settlement.setForeignAmount(foreignTotal);
 		   settlement.setTenantId(AuthUtil.getTenantId());
 		   settlement.setCreateUser(AuthUtil.getUserId());
 		   settlement.setStatus(0);
@@ -463,6 +471,15 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			e.setTenantId(AuthUtil.getTenantId());
 			e.setCreateUser(AuthUtil.getUserId());
 			itemsMapper.insert(e);
+
+			if(e.getCurrency().equals("CNY"))
+			{
+				settlement.setAmount(e.getAmount());
+			}
+			else
+			{
+				settlement.setForeignAmount(e.getAmount());
+			}
 		});
 	}
 
@@ -490,7 +507,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 			  AuditProecessDTO auditProecessDTO=new AuditProecessDTO();
 			  //追加跳转路由url
-			  auditProecessDTO.setUrl("to_finance_page");
+			  auditProecessDTO.setUrl(selectOne.getUrl());
 			  //增加审批类型
 			  auditProecessDTO.setProcessType("付费审批");
 			  auditProecessDTO.setPathsLevelsList(auditPathsLevels);
@@ -535,10 +552,15 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	@Transactional
 	public SettlementDTO saveOrEdit(SettlementDTO settlementDTO)
 	{
+
 		Settlement model=new Settlement();
 		BeanUtils.copyProperties(settlementDTO,model);
 		List<Files> filesList = settlementDTO.getFilesList();
 		List<Items> itemsList = settlementDTO.getItemsList();
+		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);
 		//如果id=null, 无论主表还是从表, 必然都是新增
 		Long id = settlementDTO.getId();
 		if(id==null)