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