|
|
@@ -1244,7 +1244,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- @GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public Agent confirmCollectionOfPayments(Agent agent) {
|
|
|
if (agent.getId() == null) {
|
|
|
throw new RuntimeException("缺少必要参数");
|
|
|
@@ -1345,17 +1344,37 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
agentItemsService.updateBatchById(agentItemsList);
|
|
|
}
|
|
|
- BigDecimal advanceChargeAmount = feeCenterList.stream().filter(e -> "YFK".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal advanceChargeAmount = feeCenterList.stream().filter(e -> "YFK".equals(e.getFeeCode())).map(FeeCenter::getAmount)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add).abs();
|
|
|
if (new BigDecimal("0").compareTo(advanceChargeAmount) != 0) {
|
|
|
AdvanceCharge advanceCharge = advanceChargeService.getOne(new LambdaQueryWrapper<AdvanceCharge>()
|
|
|
.eq(AdvanceCharge::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(AdvanceCharge::getIsDeleted, 0)
|
|
|
- .eq(AdvanceCharge::getCorpId, agentList.get(0).getDomesticConsigneeId()));
|
|
|
+ .eq(AdvanceCharge::getCorpId, agentList.get(0).getCorpId()));
|
|
|
if (advanceCharge != null) {
|
|
|
+ if (advanceCharge.getAdvancePaymentBalance().compareTo(advanceChargeAmount) < 0) {
|
|
|
+ throw new RuntimeException("当前客户" + agentList.get(0).getCorpName() + "剩余预付款:" + advanceCharge.getAdvancePaymentBalance() +
|
|
|
+ "小于本次使用预付款:" + advanceChargeAmount + ",确认收款失败!");
|
|
|
+ }
|
|
|
advanceCharge.setAdvancePaymentBalance(advanceCharge.getAdvancePaymentBalance().subtract(advanceChargeAmount));
|
|
|
advanceCharge.setOutOverpaymen(advanceCharge.getOutOverpaymen().subtract(advanceChargeAmount));
|
|
|
advanceChargeService.updateById(advanceCharge);
|
|
|
+ AdvanceChargeItem advanceChargeItem = new AdvanceChargeItem();
|
|
|
+ advanceChargeItem.setCreateUser(AuthUtil.getUserId());
|
|
|
+ advanceChargeItem.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ advanceChargeItem.setCreateTime(new Date());
|
|
|
+ advanceChargeItem.setCreateDept(deptId);
|
|
|
+ advanceChargeItem.setCreateDeptName(deptName);
|
|
|
+ advanceChargeItem.setSrcId(agent.getId());
|
|
|
+ advanceChargeItem.setSrcPid(agent.getId());
|
|
|
+ advanceChargeItem.setOrderNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setOverpayment(advanceChargeAmount);
|
|
|
+ advanceChargeItem.setOverpaymentType(1);
|
|
|
+ advanceChargeItem.setSrcOrderNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setBillNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setIdentifier(0);
|
|
|
+ advanceChargeItem.setPid(advanceCharge.getId());
|
|
|
+ advanceChargeItemService.save(advanceChargeItem);
|
|
|
}
|
|
|
}
|
|
|
List<FinAccBills> finAccBillsList = finAccBillsService.list(new LambdaQueryWrapper<FinAccBills>()
|
|
|
@@ -1850,6 +1869,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
advanceChargeItem.setSrcPid(agent.getId());
|
|
|
advanceChargeItem.setOrderNo(agent.getBusinessNo());
|
|
|
advanceChargeItem.setOverpayment(amountSub);
|
|
|
+ advanceChargeItem.setOverpaymentType(0);
|
|
|
advanceChargeItem.setSrcOrderNo(agent.getBusinessNo());
|
|
|
advanceChargeItem.setBillNo(agent.getBusinessNo());
|
|
|
advanceChargeItem.setIdentifier(0);
|
|
|
@@ -3892,17 +3912,31 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
agentItemsService.updateBatchById(agentItemsList);
|
|
|
}
|
|
|
- BigDecimal advanceChargeAmount = feeCenterList.stream().filter(e -> "YFK".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal advanceChargeAmount = feeCenterList.stream().filter(e -> "YFK".equals(e.getFeeCode())).map(FeeCenter::getAmount)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add).abs();
|
|
|
if (new BigDecimal("0").compareTo(advanceChargeAmount) != 0) {
|
|
|
AdvanceCharge advanceCharge = advanceChargeService.getOne(new LambdaQueryWrapper<AdvanceCharge>()
|
|
|
.eq(AdvanceCharge::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(AdvanceCharge::getIsDeleted, 0)
|
|
|
- .eq(AdvanceCharge::getCorpId, agentList.get(0).getDomesticConsigneeId()));
|
|
|
+ .eq(AdvanceCharge::getCorpId, agentList.get(0).getCorpId()));
|
|
|
if (advanceCharge != null) {
|
|
|
advanceCharge.setAdvancePaymentBalance(advanceCharge.getAdvancePaymentBalance().add(advanceChargeAmount));
|
|
|
advanceCharge.setOutOverpaymen(advanceCharge.getOutOverpaymen().add(advanceChargeAmount));
|
|
|
advanceChargeService.updateById(advanceCharge);
|
|
|
+ AdvanceChargeItem advanceChargeItem = new AdvanceChargeItem();
|
|
|
+ advanceChargeItem.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ advanceChargeItem.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ advanceChargeItem.setUpdateTime(new Date());
|
|
|
+ advanceChargeItem.setSrcId(agent.getId());
|
|
|
+ advanceChargeItem.setSrcPid(agent.getId());
|
|
|
+ advanceChargeItem.setOrderNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setOverpayment(advanceChargeAmount);
|
|
|
+ advanceChargeItem.setOverpaymentType(0);
|
|
|
+ advanceChargeItem.setSrcOrderNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setBillNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setIdentifier(0);
|
|
|
+ advanceChargeItem.setPid(advanceCharge.getId());
|
|
|
+ advanceChargeItemService.save(advanceChargeItem);
|
|
|
}
|
|
|
}
|
|
|
List<FeeCenter> feeCenters = new ArrayList<>();
|
|
|
@@ -4007,7 +4041,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
AdvanceCharge advanceCharge = advanceChargeService.getOne(new LambdaQueryWrapper<AdvanceCharge>()
|
|
|
.eq(AdvanceCharge::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(AdvanceCharge::getIsDeleted, 0)
|
|
|
- .eq(AdvanceCharge::getCorpId, agentList.get(0).getDomesticConsigneeId()));
|
|
|
+ .eq(AdvanceCharge::getCorpId, agentList.get(0).getCorpId()));
|
|
|
if (advanceCharge != null) {
|
|
|
advanceCharge.setAdvancePaymentBalance(advanceCharge.getAdvancePaymentBalance().subtract(amountSub));
|
|
|
advanceCharge.setInOverpayment(advanceCharge.getInOverpayment().subtract(amountSub));
|
|
|
@@ -4268,8 +4302,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
AdvanceCharge advanceCharge = advanceChargeService.getOne(new LambdaQueryWrapper<AdvanceCharge>()
|
|
|
.eq(AdvanceCharge::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(AdvanceCharge::getIsDeleted, 0)
|
|
|
- .eq(AdvanceCharge::getCorpId, detail.getDomesticConsigneeId()));
|
|
|
- if (advanceCharge != null) {
|
|
|
+ .eq(AdvanceCharge::getCorpId, detail.getCorpId()));
|
|
|
+ if (advanceCharge != null && new BigDecimal("0.00").compareTo(advanceCharge.getAdvancePaymentBalance()) != 0) {
|
|
|
feeCenter.setPrice(advanceCharge.getAdvancePaymentBalance());
|
|
|
feeCenter.setAmount(advanceCharge.getAdvancePaymentBalance());
|
|
|
return feeCenter;
|
|
|
@@ -4402,8 +4436,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
AdvanceCharge advanceCharge = advanceChargeService.getOne(new LambdaQueryWrapper<AdvanceCharge>()
|
|
|
.eq(AdvanceCharge::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(AdvanceCharge::getIsDeleted, 0)
|
|
|
- .eq(AdvanceCharge::getCorpId, detail.getDomesticConsigneeId()));
|
|
|
- if (advanceCharge != null) {
|
|
|
+ .eq(AdvanceCharge::getCorpId, detail.getCorpId()));
|
|
|
+ if (advanceCharge != null && new BigDecimal("0.00").compareTo(advanceCharge.getAdvancePaymentBalance()) != 0) {
|
|
|
feeCenter.setPrice(advanceCharge.getAdvancePaymentBalance());
|
|
|
feeCenter.setAmount(advanceCharge.getAdvancePaymentBalance());
|
|
|
return feeCenter;
|