|
|
@@ -383,7 +383,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
List<Long> ids = count.stream().map(Agent::getId).distinct().collect(Collectors.toList());
|
|
|
if (ObjectUtils.isNotNull(agent.getContractNo())) {
|
|
|
if (!count.isEmpty() && !ids.contains(agent.getId())) {
|
|
|
- throw new RuntimeException("提单号不允许重复");
|
|
|
+ throw new RuntimeException("合同号不允许重复");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -403,8 +403,23 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
String orderNoJoin = agent.getAgentItemsList().stream().map(AgentItems::getOrderNo).filter(Objects::nonNull)
|
|
|
.distinct().collect(Collectors.joining(","));
|
|
|
agent.setOrderNoJoin(orderNoJoin);
|
|
|
+ List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
+ .eq(AgentItems::getCreateDept, deptUtils.getDeptPid() + "")
|
|
|
+ .eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgentItems::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(bill_no,'" + billNo + "')")
|
|
|
+ );
|
|
|
+ List<AgentItems> agentItems =agentItemsList.stream()
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(AgentItems::getId))), ArrayList::new));
|
|
|
for (AgentItems item : agent.getAgentItemsList()) {
|
|
|
if (item.getId() == null) {
|
|
|
+ if (ObjectUtils.isNotNull(item.getBillNo())) {
|
|
|
+ List<Long> ids = agentItems.stream().map(AgentItems::getPid).distinct().collect(Collectors.toList());
|
|
|
+ if (!agentItems.isEmpty() && !ids.contains(agent.getId())) {
|
|
|
+ throw new RuntimeException("提单号不允许重复");
|
|
|
+ }
|
|
|
+ }
|
|
|
item.setPid(agent.getId());
|
|
|
item.setCreateTime(new Date());
|
|
|
item.setCreateUser(AuthUtil.getUserId());
|
|
|
@@ -414,6 +429,12 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setCreateDeptName(deptName);
|
|
|
}
|
|
|
} else {
|
|
|
+ if (ObjectUtils.isNotNull(item.getBillNo())) {
|
|
|
+ List<Long> ids = agentItems.stream().map(AgentItems::getId).distinct().collect(Collectors.toList());
|
|
|
+ if (!agentItems.isEmpty() && !ids.contains(item.getId())) {
|
|
|
+ throw new RuntimeException("提单号不允许重复");
|
|
|
+ }
|
|
|
+ }
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setUpdateTime(new Date());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -1021,6 +1042,10 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if (feesList.isEmpty()) {
|
|
|
throw new RuntimeException("请先维护费用信息");
|
|
|
}
|
|
|
+ detail.setAgentItemsList(agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
+ .eq(AgentItems::getPid, detail.getId())
|
|
|
+ .eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgentItems::getIsDeleted, 0)));
|
|
|
if (feeCenterService.count(new LambdaQueryWrapper<FeeCenter>()
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FeeCenter::getIsDeleted, 0)
|
|
|
@@ -1080,20 +1105,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
}
|
|
|
Agent detail = baseMapper.selectById(agent.getId());
|
|
|
- if (ObjectUtils.isNotNull(agent.getAgentItemsRList())) {
|
|
|
- String billNo = agent.getAgentItemsRList().stream().map(AgentItemsR::getBillNo).collect(Collectors.joining(","));
|
|
|
- List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
- .eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AgentItems::getIsDeleted, 0)
|
|
|
- .apply("find_in_set(bill_no,'" + billNo + "')"));
|
|
|
- for (AgentItems items : agentItemsList) {
|
|
|
- items.setWhetherBalancePayment("1");
|
|
|
- }
|
|
|
- agentItemsService.updateBatchById(agentItemsList);
|
|
|
- detail.setAgentItemsRList(agent.getAgentItemsRList());
|
|
|
- } else {
|
|
|
- throw new RuntimeException("请选择明细");
|
|
|
- }
|
|
|
detail.setOrderStatus("尾款账单已生成");
|
|
|
detail.setExchangeRate(agent.getExchangeRate());
|
|
|
List<BFees> feesList = bFeesService.list(new LambdaQueryWrapper<BFees>()
|
|
|
@@ -1125,22 +1136,44 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
|
|
|
List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
- FeeCenter feeCenterSFK = assemblyDataWK("MYDL", detail, "WK", 1L, 1, deptId, deptName, feesList);
|
|
|
- if (feeCenterSFK != null) {
|
|
|
- detail.setFinalPaymentReceivable(feeCenterSFK.getAmountLoc());
|
|
|
- feeCenterList.add(feeCenterSFK);
|
|
|
- }
|
|
|
- FeeCenter feeCenterYDF = assemblyDataWK("MYDL", detail, "YDF", 2L, 2, deptId, deptName, feesList);
|
|
|
- if (feeCenterYDF != null) {
|
|
|
- feeCenterList.add(feeCenterYDF);
|
|
|
- }
|
|
|
- FeeCenter feeCenterSXF = assemblyDataWK("MYDL", detail, "SXF", 3L, 3, deptId, deptName, feesList);
|
|
|
- if (feeCenterSXF != null) {
|
|
|
- feeCenterList.add(feeCenterSXF);
|
|
|
- }
|
|
|
- FeeCenter feeCenterYFK = assemblyDataWK("MYDL", detail, "YFK", 4L, 4, deptId, deptName, feesList);
|
|
|
- if (feeCenterYFK != null) {
|
|
|
- feeCenterList.add(feeCenterYFK);
|
|
|
+ if (ObjectUtils.isNotNull(agent.getAgentItemsRList())) {
|
|
|
+ String billNo = agent.getAgentItemsRList().stream().map(AgentItemsR::getBillNo).collect(Collectors.joining(","));
|
|
|
+ detail.setFinalPaymentReceivable(agent.getAgentItemsRList().stream().map(AgentItemsR::getThisSettlementAmount)
|
|
|
+ .filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
+ .eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgentItems::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(bill_no,'" + billNo + "')"));
|
|
|
+ for (AgentItems items : agentItemsList) {
|
|
|
+ items.setWhetherBalancePayment("1");
|
|
|
+ }
|
|
|
+ agentItemsService.updateBatchById(agentItemsList);
|
|
|
+ for (AgentItemsR items : agent.getAgentItemsRList()) {
|
|
|
+ List<AgentItems> agentItems = agentItemsList.stream().filter(e -> e.getBillNo().equals(items.getBillNo()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<AgentItemsR> agentItemsRList = new ArrayList<>();
|
|
|
+ agentItemsRList.add(items);
|
|
|
+ detail.setAgentItemsRList(agentItemsRList);
|
|
|
+ detail.setAgentItemsList(agentItems);
|
|
|
+ FeeCenter feeCenterSFK = assemblyDataWK("MYDL", detail, "WK", 1L, 1, deptId, deptName, feesList);
|
|
|
+ if (feeCenterSFK != null) {
|
|
|
+ feeCenterList.add(feeCenterSFK);
|
|
|
+ }
|
|
|
+ FeeCenter feeCenterYDF = assemblyDataWK("MYDL", detail, "YDF", 2L, 2, deptId, deptName, feesList);
|
|
|
+ if (feeCenterYDF != null) {
|
|
|
+ feeCenterList.add(feeCenterYDF);
|
|
|
+ }
|
|
|
+ FeeCenter feeCenterSXF = assemblyDataWK("MYDL", detail, "SXF", 3L, 3, deptId, deptName, feesList);
|
|
|
+ if (feeCenterSXF != null) {
|
|
|
+ feeCenterList.add(feeCenterSXF);
|
|
|
+ }
|
|
|
+ FeeCenter feeCenterYFK = assemblyDataWK("MYDL", detail, "YFK", 4L, 4, deptId, deptName, feesList);
|
|
|
+ if (feeCenterYFK != null) {
|
|
|
+ feeCenterList.add(feeCenterYFK);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("请选择明细");
|
|
|
}
|
|
|
if (!feeCenterList.isEmpty()) {
|
|
|
feeCenterService.saveBatch(feeCenterList);
|
|
|
@@ -1716,7 +1749,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
.eq(Agent::getIsDeleted, 0)
|
|
|
.eq(Agent::getBusinessType, "MYDL")
|
|
|
.apply("find_in_set(contract_no,'" + billNo + "')"));
|
|
|
-// Agent detail = baseMapper.selectById(feeCenterList.get(0).getPid());
|
|
|
if (agentList.isEmpty()) {
|
|
|
throw new RuntimeException("未查到贸易代理单据信息");
|
|
|
}
|
|
|
@@ -1730,97 +1762,48 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
BigDecimal amountC = feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
if (new BigDecimal("0").compareTo(amountD) != 0 && amount.compareTo(amountD) == 0) {
|
|
|
BigDecimal amountSub = amountC.subtract(amountD);
|
|
|
+ AdvanceCharge advanceCharge = advanceChargeService.getOne(new LambdaQueryWrapper<AdvanceCharge>()
|
|
|
+ .eq(AdvanceCharge::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AdvanceCharge::getIsDeleted, 0)
|
|
|
+ .eq(AdvanceCharge::getCorpId, agentList.get(0).getDomesticConsigneeId()));
|
|
|
+ if (advanceCharge == null) {
|
|
|
+ advanceCharge = new AdvanceCharge();
|
|
|
+ advanceCharge.setCorpId(agentList.get(0).getDomesticConsigneeId());
|
|
|
+ advanceCharge.setCorpName(agentList.get(0).getDomesticConsigneeCname());
|
|
|
+ advanceCharge.setCreateUser(AuthUtil.getUserId());
|
|
|
+ advanceCharge.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ advanceCharge.setCreateTime(new Date());
|
|
|
+ advanceCharge.setCreateDept(deptId);
|
|
|
+ advanceCharge.setCreateDeptName(deptName);
|
|
|
+ advanceCharge.setAdvancePaymentBalance(new BigDecimal("0.00"));
|
|
|
+ advanceCharge.setInOverpayment(new BigDecimal("0.00"));
|
|
|
+ }
|
|
|
+ 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(amountSub);
|
|
|
+ advanceChargeItem.setSrcOrderNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setBillNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setIdentifier(0);
|
|
|
if (amountSub.compareTo(new BigDecimal("0")) > 0) {
|
|
|
- AdvanceCharge advanceCharge = advanceChargeService.getOne(new LambdaQueryWrapper<AdvanceCharge>()
|
|
|
- .eq(AdvanceCharge::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AdvanceCharge::getIsDeleted, 0)
|
|
|
- .eq(AdvanceCharge::getCorpId, agentList.get(0).getDomesticConsigneeId()));
|
|
|
- if (advanceCharge != null) {
|
|
|
- advanceCharge.setAdvancePaymentBalance(advanceCharge.getAdvancePaymentBalance().add(amountSub));
|
|
|
- advanceCharge.setInOverpayment(advanceCharge.getInOverpayment().add(amountSub));
|
|
|
- } else {
|
|
|
- advanceCharge = new AdvanceCharge();
|
|
|
- advanceCharge.setAdvancePaymentBalance(amountSub);
|
|
|
- advanceCharge.setInOverpayment(amountSub);
|
|
|
- advanceCharge.setCorpId(agentList.get(0).getDomesticConsigneeId());
|
|
|
- advanceCharge.setCorpName(agentList.get(0).getDomesticConsigneeCname());
|
|
|
- advanceCharge.setCreateUser(AuthUtil.getUserId());
|
|
|
- advanceCharge.setCreateUserName(AuthUtil.getUserName());
|
|
|
- advanceCharge.setCreateTime(new Date());
|
|
|
- advanceCharge.setCreateDept(deptId);
|
|
|
- advanceCharge.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- advanceChargeService.saveOrUpdate(advanceCharge);
|
|
|
- AdvanceChargeItem advanceChargeItem = new AdvanceChargeItem();
|
|
|
- advanceChargeItem.setCreateUser(AuthUtil.getUserId());
|
|
|
- advanceChargeItem.setCreateUserName(AuthUtil.getUserName());
|
|
|
- advanceChargeItem.setCreateTime(new Date());
|
|
|
- advanceChargeItem.setCreateDept(deptId);
|
|
|
- advanceChargeItem.setCreateDeptName(deptName);
|
|
|
- advanceChargeItem.setPid(advanceCharge.getId());
|
|
|
- advanceChargeItem.setSrcId(agent.getId());
|
|
|
- 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);
|
|
|
- advanceChargeItemService.save(advanceChargeItem);
|
|
|
+ advanceCharge.setAdvancePaymentBalance(advanceCharge.getAdvancePaymentBalance().add(amountSub));
|
|
|
+ advanceCharge.setInOverpayment(advanceCharge.getInOverpayment().add(amountSub));
|
|
|
} else if (amountSub.compareTo(new BigDecimal("0")) < 0) {
|
|
|
- FeeCenter feeCenter = new FeeCenter();
|
|
|
- feeCenter.setCreateTime(new Date());
|
|
|
- feeCenter.setCreateUser(AuthUtil.getUserId());
|
|
|
- feeCenter.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
|
|
|
- feeCenter.setCreateDept(deptId + "");
|
|
|
- feeCenter.setBranchId(deptId + "");
|
|
|
- feeCenter.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- feeCenter.setBusinessType(agentList.get(0).getBusinessType());
|
|
|
- feeCenter.setPid(agentList.get(0).getId());
|
|
|
- feeCenter.setLineNo(feeCenterListD.size() + 1L);
|
|
|
- feeCenter.setBillNo(agentList.get(0).getBusinessNo());
|
|
|
- feeCenter.setBillDate(agentList.get(0).getBusinessDate());
|
|
|
- feeCenter.setCorpId(agentList.get(0).getDomesticConsigneeId());
|
|
|
- feeCenter.setCorpCnName(agentList.get(0).getDomesticConsigneeCname());
|
|
|
- feeCenter.setBillCorpId(agentList.get(0).getCorpId());
|
|
|
- feeCenter.setBillCorpCnName(agentList.get(0).getCorpName());
|
|
|
- feeCenter.setMblno(agentList.get(0).getContractNo());
|
|
|
- feeCenter.setPolId(agentList.get(0).getPolId());
|
|
|
- feeCenter.setPolCode(agentList.get(0).getPolCode());
|
|
|
- feeCenter.setPolCnName(agentList.get(0).getPolCnName());
|
|
|
- feeCenter.setPolEnName(agentList.get(0).getPolEnName());
|
|
|
- feeCenter.setPodId(agentList.get(0).getPodId());
|
|
|
- feeCenter.setPodCode(agentList.get(0).getPodCode());
|
|
|
- feeCenter.setPodCnName(agentList.get(0).getPodCnName());
|
|
|
- feeCenter.setPodEnName(agentList.get(0).getPodEnName());
|
|
|
- BFees feesSFK = bFeesService.getOne(new LambdaQueryWrapper<BFees>()
|
|
|
- .eq(BFees::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(BFees::getIsDeleted, 0)
|
|
|
- .eq(BFees::getCode, "DSK"));
|
|
|
- if (feesSFK == null) {
|
|
|
- throw new RuntimeException("请先维护待收款费用信息");
|
|
|
- }
|
|
|
- feeCenter.setFeeId(feesSFK.getId());
|
|
|
- feeCenter.setFeeCode(feesSFK.getCode());
|
|
|
- feeCenter.setFeeCnName(feesSFK.getCnName());
|
|
|
- feeCenter.setFeeEnName(feesSFK.getEnName());
|
|
|
- feeCenter.setDc("D");
|
|
|
- feeCenter.setCurCode(feesSFK.getCurNo());
|
|
|
- feeCenter.setSort(feeCenterListD.size() + 1);
|
|
|
- feeCenter.setElementsId(feesSFK.getAccElementId());
|
|
|
- feeCenter.setElementsCode(feesSFK.getElementsCode());
|
|
|
- feeCenter.setElementsCnName(feesSFK.getAccElementName());
|
|
|
- feeCenter.setElementsEnName(feesSFK.getElementsEnName());
|
|
|
- feeCenter.setUnitNo("JOB");
|
|
|
- feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
- feeCenter.setPrice(amountSub.abs());
|
|
|
- feeCenter.setAmount(amountSub.abs());
|
|
|
- feeCenterService.save(feeCenter);
|
|
|
+ advanceCharge.setAdvancePaymentBalance(advanceCharge.getAdvancePaymentBalance().add(amountSub));
|
|
|
+ advanceCharge.setOutOverpaymen(advanceCharge.getOutOverpaymen().add(amountSub.abs()));
|
|
|
} else {
|
|
|
System.out.println("无差额");
|
|
|
}
|
|
|
+ agent.setPendingPrepayment(amountSub);
|
|
|
+ advanceChargeService.saveOrUpdate(advanceCharge);
|
|
|
+ advanceChargeItem.setPid(advanceCharge.getId());
|
|
|
+ advanceChargeItemService.save(advanceChargeItem);
|
|
|
}
|
|
|
Date date = new Date();
|
|
|
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
|
|
@@ -2284,6 +2267,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
preContainers.setBoxNo(items.getBoxNo());
|
|
|
preContainers.setHsCode(items.getHsCode());
|
|
|
preContainers.setGoodsName(items.getLabelProductName());
|
|
|
+ preContainers.setSrcId(items.getId());
|
|
|
preContainersList.add(preContainers);
|
|
|
}
|
|
|
}
|
|
|
@@ -2704,27 +2688,10 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
throw new RuntimeException("请先维护费用信息");
|
|
|
}
|
|
|
Agent declare = baseMapper.selectById(agent.getId());
|
|
|
+ List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
declare.setApplyForPayment("1");
|
|
|
declare.setOrderStatus("已生成应付首付款");
|
|
|
- } else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- if (ObjectUtils.isNotNull(agent.getAgentItemsRList())) {
|
|
|
- String billNo = agent.getAgentItemsRList().stream().map(AgentItemsR::getBillNo).collect(Collectors.joining(","));
|
|
|
- List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
- .eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AgentItems::getIsDeleted, 0)
|
|
|
- .apply("find_in_set(bill_no,'" + billNo + "')"));
|
|
|
- for (AgentItems items : agentItemsList) {
|
|
|
- items.setApplyForPaymentBalance("1");
|
|
|
- }
|
|
|
- agentItemsService.updateBatchById(agentItemsList);
|
|
|
- declare.setAgentItemsRList(agent.getAgentItemsRList());
|
|
|
- } else {
|
|
|
- throw new RuntimeException("请选择明细");
|
|
|
- }
|
|
|
- declare.setOrderStatus("已生成应付尾款");
|
|
|
- }
|
|
|
- if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
if (feeCenterService.count(new LambdaQueryWrapper<FeeCenter>()
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FeeCenter::getIsDeleted, 0)
|
|
|
@@ -2733,7 +2700,10 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
.eq(FeeCenter::getFeeCode, "SFK")) > 0) {
|
|
|
throw new RuntimeException("首付款已生成,生成失败");
|
|
|
}
|
|
|
- List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
+ declare.setAgentItemsList(agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
+ .eq(AgentItems::getPid, declare.getId())
|
|
|
+ .eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgentItems::getIsDeleted, 0)));
|
|
|
FeeCenter feeCenterSFK = cAssemblyDataSK("MYDL", declare, "SFK", 1L, 1, deptId, deptName, feesList);
|
|
|
if (feeCenterSFK != null) {
|
|
|
declare.setFirstPaymentPayable(feeCenterSFK.getAmountLoc());
|
|
|
@@ -2747,62 +2717,80 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if (feeCenterSXF != null) {
|
|
|
feeCenterList.add(feeCenterSXF);
|
|
|
}
|
|
|
- if (!feeCenterList.isEmpty()) {
|
|
|
- feeCenterService.saveBatch(feeCenterList);
|
|
|
- FeeCenter item = feeCenterList.stream().filter(e -> "SFK".equals(e.getFeeCode())).findFirst().orElse(null);
|
|
|
- if (item == null) {
|
|
|
- throw new RuntimeException("数据错误请联系管理员");
|
|
|
- }
|
|
|
- for (FeeCenter feeCenter : feeCenterList) {
|
|
|
- feeCenter.setSrcItemId(item.getId());
|
|
|
- }
|
|
|
- feeCenterService.updateBatchById(feeCenterList);
|
|
|
- }
|
|
|
} else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .eq(FeeCenter::getPid, agent.getId())
|
|
|
- .eq(FeeCenter::getDc, "C")
|
|
|
- .eq(FeeCenter::getFeeCode, "WK"));
|
|
|
- if (!feeCenters.isEmpty()) {
|
|
|
- BigDecimal amount = feeCenters.stream().map(FeeCenter::getAmountLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- BigDecimal amountSum = declare.getGoodsValue().subtract(declare.getPrepaidAmount());
|
|
|
- BigDecimal thisSettlementAmount = agent.getAgentItemsRList().stream().map(AgentItemsR::getThisSettlementAmount)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- if (amount.compareTo(amountSum) == 0) {
|
|
|
- throw new RuntimeException("尾款剩余生成金额为零,生成失败");
|
|
|
+ if (ObjectUtils.isNotNull(agent.getAgentItemsRList())) {
|
|
|
+ List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0)
|
|
|
+ .eq(FeeCenter::getPid, agent.getId())
|
|
|
+ .eq(FeeCenter::getDc, "C")
|
|
|
+ .eq(FeeCenter::getFeeCode, "WK"));
|
|
|
+ if (!feeCenters.isEmpty()) {
|
|
|
+ BigDecimal amount = feeCenters.stream().map(FeeCenter::getAmountLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal amountSum = declare.getGoodsValue().subtract(declare.getPrepaidAmount());
|
|
|
+ BigDecimal thisSettlementAmount = agent.getAgentItemsRList().stream().map(AgentItemsR::getThisSettlementAmount)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if (amount.compareTo(amountSum) == 0) {
|
|
|
+ throw new RuntimeException("尾款剩余生成金额为零,生成失败");
|
|
|
+ }
|
|
|
+ BigDecimal amountSub = amountSum.subtract(amount);
|
|
|
+ if (thisSettlementAmount.compareTo(amountSub) > 0) {
|
|
|
+ throw new RuntimeException("本次生成金额大于剩余金额,剩余未生成金额:" + amountSub);
|
|
|
+ }
|
|
|
}
|
|
|
- BigDecimal amountSub = amountSum.subtract(amount);
|
|
|
- if (thisSettlementAmount.compareTo(amountSub) > 0) {
|
|
|
- throw new RuntimeException("本次生成金额大于剩余金额,剩余未生成金额:" + amountSub);
|
|
|
+ String billNo = agent.getAgentItemsRList().stream().map(AgentItemsR::getBillNo).collect(Collectors.joining(","));
|
|
|
+ List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
+ .eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgentItems::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(bill_no,'" + billNo + "')"));
|
|
|
+ for (AgentItems items : agentItemsList) {
|
|
|
+ items.setApplyForPaymentBalance("1");
|
|
|
}
|
|
|
+ agentItemsService.updateBatchById(agentItemsList);
|
|
|
+ for (AgentItemsR items : agent.getAgentItemsRList()) {
|
|
|
+ List<AgentItems> agentItems = agentItemsList.stream().filter(e -> e.getBillNo().equals(items.getBillNo()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<AgentItemsR> agentItemsRList = new ArrayList<>();
|
|
|
+ agentItemsRList.add(items);
|
|
|
+ declare.setAgentItemsRList(agentItemsRList);
|
|
|
+ declare.setAgentItemsList(agentItems);
|
|
|
+ FeeCenter feeCenterSFK = cAssemblyDataWK("MYDL", declare, "WK", 1L, 1, deptId, deptName, feesList);
|
|
|
+ if (feeCenterSFK != null) {
|
|
|
+ declare.setFinalPaymentPayable(feeCenterSFK.getAmountLoc());
|
|
|
+ feeCenterList.add(feeCenterSFK);
|
|
|
+ }
|
|
|
+ FeeCenter feeCenterYDF = cAssemblyDataWK("MYDL", declare, "YDF", 2L, 2, deptId, deptName, feesList);
|
|
|
+ if (feeCenterYDF != null) {
|
|
|
+ feeCenterList.add(feeCenterYDF);
|
|
|
+ }
|
|
|
+ FeeCenter feeCenterSXF = cAssemblyDataWK("MYDL", declare, "SXF", 3L, 3, deptId, deptName, feesList);
|
|
|
+ if (feeCenterSXF != null) {
|
|
|
+ feeCenterList.add(feeCenterSXF);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("请选择明细");
|
|
|
}
|
|
|
- List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
- FeeCenter feeCenterSFK = cAssemblyDataWK("MYDL", declare, "WK", 1L, 1, deptId, deptName, feesList);
|
|
|
- if (feeCenterSFK != null) {
|
|
|
- declare.setFinalPaymentPayable(feeCenterSFK.getAmountLoc());
|
|
|
- feeCenterList.add(feeCenterSFK);
|
|
|
- }
|
|
|
- FeeCenter feeCenterYDF = cAssemblyDataWK("MYDL", declare, "YDF", 2L, 2, deptId, deptName, feesList);
|
|
|
- if (feeCenterYDF != null) {
|
|
|
- feeCenterList.add(feeCenterYDF);
|
|
|
+ declare.setOrderStatus("已生成应付尾款");
|
|
|
+ }
|
|
|
+ if (!feeCenterList.isEmpty()) {
|
|
|
+ feeCenterService.saveBatch(feeCenterList);
|
|
|
+ String type;
|
|
|
+ if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
+ type = "FFSQ-SK";
|
|
|
+ } else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
+ type = "FFSQ-WK";
|
|
|
+ } else {
|
|
|
+ type = "";
|
|
|
}
|
|
|
- FeeCenter feeCenterSXF = cAssemblyDataWK("MYDL", declare, "SXF", 3L, 3, deptId, deptName, feesList);
|
|
|
- if (feeCenterSXF != null) {
|
|
|
- feeCenterList.add(feeCenterSXF);
|
|
|
+ FeeCenter item = feeCenterList.stream().filter(e -> type.equals(e.getFeeCode())).findFirst().orElse(null);
|
|
|
+ if (item == null) {
|
|
|
+ throw new RuntimeException("数据错误请联系管理员");
|
|
|
}
|
|
|
- if (!feeCenterList.isEmpty()) {
|
|
|
- feeCenterService.saveBatch(feeCenterList);
|
|
|
- FeeCenter item = feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode())).findFirst().orElse(null);
|
|
|
- if (item == null) {
|
|
|
- throw new RuntimeException("数据错误请联系管理员");
|
|
|
- }
|
|
|
- for (FeeCenter feeCenter : feeCenterList) {
|
|
|
- feeCenter.setSrcItemId(item.getId());
|
|
|
- }
|
|
|
- feeCenterService.updateBatchById(feeCenterList);
|
|
|
+ for (FeeCenter feeCenter : feeCenterList) {
|
|
|
+ feeCenter.setSrcItemId(item.getId());
|
|
|
}
|
|
|
+ feeCenterService.updateBatchById(feeCenterList);
|
|
|
}
|
|
|
baseMapper.updateById(declare);
|
|
|
return declare;
|
|
|
@@ -3292,7 +3280,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
map.put("agentBillReportList", new ArrayList<>());
|
|
|
map.put("agentZzsReportList", new ArrayList<>());
|
|
|
map.put(MagicValues.DATA, agentReport);
|
|
|
- } else if (MagicValues.BUSINESS.equals(reportCode) && MagicValues.THE_FIRST_ONE.equals(groupCode) && MagicValues.MYDL.equals(type)) {
|
|
|
+ } else if (MagicValues.BUSINESS.equals(reportCode) && MagicValues.THE_FIRST_ONE.equals(groupCode) && MagicValues.MYDL_STL.equals(type)) {
|
|
|
Agent agent = baseMapper.selectById(billId);
|
|
|
DateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd");
|
|
|
if (agent != null) {
|
|
|
@@ -3312,119 +3300,89 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else {
|
|
|
throw new RuntimeException("获取报表表头数据失败");
|
|
|
}
|
|
|
- List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
- .eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(AgentItems::getIsDeleted, 0)
|
|
|
- .eq(AgentItems::getPid, agent.getId()));
|
|
|
- List<Agent> agentList = new ArrayList<>();
|
|
|
+ AgentFeeReport agentFeeReport = new AgentFeeReport();
|
|
|
+ List<AgentFeeItemsReport> agentFeeItemsReportList = new ArrayList<>();
|
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, agent.getId())
|
|
|
- .eq(FeeCenter::getFeeType, "1")
|
|
|
+ .eq(FeeCenter::getStlPid, agent.getId())
|
|
|
+ .eq(FeeCenter::getDc, "D")
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FeeCenter::getIsDeleted, 0));
|
|
|
- if (!feeCenterList.isEmpty()) {
|
|
|
- List<Long> stlPids = feeCenterList.stream().map(FeeCenter::getStlPid)
|
|
|
- .filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
- if (!stlPids.isEmpty()) {
|
|
|
- agentList = baseMapper.selectList(new LambdaQueryWrapper<Agent>()
|
|
|
- .eq(Agent::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Agent::getIsDeleted, 0)
|
|
|
- .eq(Agent::getBusinessType, "MYDL-STL")
|
|
|
- .in(Agent::getId, stlPids));
|
|
|
- }
|
|
|
- } else {
|
|
|
+ if (feeCenterList.isEmpty()) {
|
|
|
throw new RuntimeException("请先维护首款费用信息");
|
|
|
}
|
|
|
- AgentSKReport agentSKReport = new AgentSKReport();
|
|
|
- List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
- List<Long> stlPids = feeCenterList.stream().filter(e -> "SFK".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc())).map(FeeCenter::getStlPid)
|
|
|
- .filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
- if (!agentList.isEmpty()) {
|
|
|
- List<Agent> agentList1 = agentList.stream().filter(e -> stlPids.contains(e.getId())).collect(Collectors.toList());
|
|
|
- for (Agent item : agentList1) {
|
|
|
- Map<String, Object> map1 = new HashMap<>();
|
|
|
- map1.put("time", dateFormat.format(item.getBusinessDate()));
|
|
|
- BigDecimal remainingAmount = feeCenterList.stream().filter(e -> "YFK".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc()) && "1".equals(e.getFeeType()) && item.getId().equals(e.getStlPid()))
|
|
|
- .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- map1.put("amount", item.getActualAmount().add(item.getPostElectricFee())
|
|
|
- .add(item.getServiceCharge()).subtract(remainingAmount));
|
|
|
- mapList.add(map1);
|
|
|
- }
|
|
|
- agentSKReport.setMapList(mapList.isEmpty() ? new ArrayList<>() : mapList);
|
|
|
+ List<Long> ids = feeCenterList.stream().map(FeeCenter::getPid).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ List<FeeCenter> feeCenterListC = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .in(FeeCenter::getPid, ids)
|
|
|
+ .eq(FeeCenter::getDc, "C")
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0));
|
|
|
+ if (feeCenterList.isEmpty()) {
|
|
|
+ throw new RuntimeException("请先维护首款费用信息");
|
|
|
}
|
|
|
- agentSKReport.setPaymentMethod(agent.getAdvanceRatio());
|
|
|
- agentSKReport.setContractNo(agent.getContractNo());
|
|
|
- agentSKReport.setPrepaidTime(dateFormat.format(agent.getBusinessDate()));
|
|
|
- agentSKReport.setSkAmountUsd(agent.getPrepaidAmount());
|
|
|
- agentSKReport.setAmountUsd(agent.getPrepaidAmount());
|
|
|
- FeeCenter feeCenters = feeCenterList.stream().filter(e -> "SFK".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc()) && "1".equals(e.getFeeType())).findFirst().orElse(null);
|
|
|
- if (feeCenters != null) {
|
|
|
- agentSKReport.setExchangeRate(feeCenters.getExrate());
|
|
|
- agentSKReport.setAmount(feeCenters.getAmount());
|
|
|
- feeCenterList.stream().filter(e -> "YDF".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc()) && "1".equals(e.getFeeType()) && e.getSrcItemId().equals(feeCenters.getId()))
|
|
|
- .findFirst().ifPresent(feeCentersYDF ->
|
|
|
- agentSKReport.setPostElectricFee(ObjectUtils.isNotNull(feeCentersYDF.getAmount()) ? feeCentersYDF.getAmount()
|
|
|
- : new BigDecimal("0.00")));
|
|
|
- feeCenterList.stream().filter(e -> "SXF".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc()) && "1".equals(e.getFeeType()) && e.getSrcItemId().equals(feeCenters.getId()))
|
|
|
- .findFirst().ifPresent(feeCentersSXF ->
|
|
|
- agentSKReport.setServiceCharge(ObjectUtils.isNotNull(feeCentersSXF.getAmount()) ? feeCentersSXF.getAmount()
|
|
|
- : new BigDecimal("0.00")));
|
|
|
- feeCenterList.stream().filter(e -> "YFK".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc()) && "1".equals(e.getFeeType()) && e.getSrcItemId().equals(feeCenters.getId()))
|
|
|
- .findFirst().ifPresent(feeCentersYFK ->
|
|
|
- agentSKReport.setRemainingAmount(ObjectUtils.isNotNull(feeCentersYFK.getAmount()) ? feeCentersYFK.getAmount()
|
|
|
- : new BigDecimal("0.00")));
|
|
|
- } else {
|
|
|
- agentSKReport.setAmount(new BigDecimal("0.00"));
|
|
|
- agentSKReport.setPostElectricFee(new BigDecimal("0.00"));
|
|
|
- agentSKReport.setServiceCharge(new BigDecimal("0.00"));
|
|
|
- agentSKReport.setRemainingAmount(new BigDecimal("0.00"));
|
|
|
- throw new RuntimeException("未查到应收首款费用信息");
|
|
|
+ List<Long> stlPidC = feeCenterListC.stream().map(FeeCenter::getStlPid).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ List<Agent> agentList = baseMapper.selectList(new LambdaQueryWrapper<Agent>()
|
|
|
+ .eq(Agent::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Agent::getIsDeleted, 0)
|
|
|
+ .in(Agent::getId, stlPidC));
|
|
|
+ List<FeeCenter> feeCentersSk = feeCenterList.stream().filter(e -> ObjectUtils.isNotNull(e.getFeeType()) &&
|
|
|
+ "1".equals(e.getFeeType()) && "SFK".equals(e.getFeeCode()))
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(FeeCenter::getBillNo))), ArrayList::new));
|
|
|
+ for (FeeCenter item : feeCentersSk) {
|
|
|
+ AgentFeeItemsReport agentFeeItemsReport = new AgentFeeItemsReport();
|
|
|
+ agentFeeItemsReport.setContractNo(item.getBillNo());
|
|
|
+ agentFeeItemsReport.setOrderNo(item.getOrderNo());
|
|
|
+ agentFeeItemsReport.setFactoryNumber(item.getFactoryNumber());
|
|
|
+ agentFeeItemsReport.setBillNo(item.getMblno());
|
|
|
+ agentFeeItemsReport.setBoxNo(item.getCntrNo());
|
|
|
+ agentFeeItemsReport.setGoodsName(item.getGoodsName());
|
|
|
+ agentFeeItemsReport.setAmountUsd(item.getAmountLoc());
|
|
|
+ agentFeeItemsReport.setExchangeRate(item.getExrate());
|
|
|
+ agentFeeItemsReport.setAmount(item.getAmount());
|
|
|
+ FeeCenter feeCenter = feeCenterListC.stream().filter(e-> e.getFeeCode().equals(item.getFeeCode()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (feeCenter != null){
|
|
|
+ agentFeeItemsReport.setRealityExchangeRate(feeCenter.getStlExrate());
|
|
|
+ agentFeeItemsReport.setRealityAmount(item.getAmountLoc().multiply(feeCenter.getStlExrate()));
|
|
|
+ }else{
|
|
|
+ agentFeeItemsReport.setRealityExchangeRate(null);
|
|
|
+ agentFeeItemsReport.setRealityAmount(null);
|
|
|
+ }
|
|
|
+ agentFeeItemsReportList.add(agentFeeItemsReport);
|
|
|
}
|
|
|
- agentSKReport.setSumAmount(agentSKReport.getAmount().add(agentSKReport.getPostElectricFee()
|
|
|
- .add(agentSKReport.getServiceCharge()).subtract(ObjectUtils.isNotNull(agentSKReport.getRemainingAmount())
|
|
|
- ? agentSKReport.getRemainingAmount() : new BigDecimal("0.00"))));
|
|
|
- FeeCenter feeCentersC = feeCenterList.stream().filter(e -> "SFK".equals(e.getFeeCode())
|
|
|
- && "C".equals(e.getDc()) && "1".equals(e.getFeeType())).findFirst().orElse(null);
|
|
|
- if (feeCentersC != null) {
|
|
|
- agentSKReport.setRealityExchangeRate(feeCentersC.getStlExrate());
|
|
|
- agentSKReport.setRealityAmount(feeCentersC.getAmount());
|
|
|
- feeCenterList.stream().filter(e -> "YDF".equals(e.getFeeCode())
|
|
|
- && "C".equals(e.getDc()) && "1".equals(e.getFeeType()) && e.getSrcItemId().equals(feeCentersC.getId()))
|
|
|
- .findFirst().ifPresent(feeCentersYDF ->
|
|
|
- agentSKReport.setRealityPostElectricFee(ObjectUtils.isNotNull(feeCentersYDF.getAmount()) ? feeCentersYDF.getAmount()
|
|
|
- : new BigDecimal("0.00")));
|
|
|
- feeCenterList.stream().filter(e -> "SXF".equals(e.getFeeCode())
|
|
|
- && "C".equals(e.getDc()) && "1".equals(e.getFeeType()) && e.getSrcItemId().equals(feeCentersC.getId()))
|
|
|
- .findFirst().ifPresent(feeCentersSXF ->
|
|
|
- agentSKReport.setRealityServiceCharge(ObjectUtils.isNotNull(feeCentersSXF.getAmount()) ? feeCentersSXF.getAmount()
|
|
|
- : new BigDecimal("0.00")));
|
|
|
- if (!agentList.isEmpty()) {
|
|
|
- agentList.stream().filter(e -> e.getId().equals(feeCentersC.getStlPid())).findFirst()
|
|
|
- .ifPresent(detail -> agentSKReport.setRealityTime(dateFormat.format(detail.getBusinessDate())));
|
|
|
+ List<FeeCenter> feeCentersWk = feeCenterList.stream().filter(e -> ObjectUtils.isNotNull(e.getFeeType()) &&
|
|
|
+ "2".equals(e.getFeeType()) && "WK".equals(e.getFeeCode()))
|
|
|
+ .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
|
|
|
+ Comparator.comparing(FeeCenter::getBillNo))), ArrayList::new));
|
|
|
+ for (FeeCenter item : feeCentersWk) {
|
|
|
+ AgentFeeItemsReport agentFeeItemsReport = new AgentFeeItemsReport();
|
|
|
+ agentFeeItemsReport.setContractNo(item.getBillNo());
|
|
|
+ agentFeeItemsReport.setOrderNo(item.getOrderNo());
|
|
|
+ agentFeeItemsReport.setFactoryNumber(item.getFactoryNumber());
|
|
|
+ agentFeeItemsReport.setBillNo(item.getMblno());
|
|
|
+ agentFeeItemsReport.setBoxNo(item.getCntrNo());
|
|
|
+ agentFeeItemsReport.setGoodsName(item.getGoodsName());
|
|
|
+ agentFeeItemsReport.setAmountUsd(item.getAmountLoc());
|
|
|
+ agentFeeItemsReport.setExchangeRate(item.getExrate());
|
|
|
+ agentFeeItemsReport.setAmount(item.getAmount());
|
|
|
+ FeeCenter feeCenter = feeCenterListC.stream().filter(e-> e.getFeeCode().equals(item.getFeeCode()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (feeCenter != null){
|
|
|
+ agentFeeItemsReport.setRealityExchangeRate(feeCenter.getStlExrate());
|
|
|
+ agentFeeItemsReport.setRealityAmount(item.getAmountLoc().multiply(feeCenter.getStlExrate()));
|
|
|
+ }else{
|
|
|
+ agentFeeItemsReport.setRealityExchangeRate(null);
|
|
|
+ agentFeeItemsReport.setRealityAmount(null);
|
|
|
}
|
|
|
- } else {
|
|
|
- agentSKReport.setRealityAmount(new BigDecimal("0.00"));
|
|
|
- agentSKReport.setRealityPostElectricFee(new BigDecimal("0.00"));
|
|
|
- agentSKReport.setRealityServiceCharge(new BigDecimal("0.00"));
|
|
|
+ agentFeeItemsReportList.add(agentFeeItemsReport);
|
|
|
}
|
|
|
- agentSKReport.setRealitySumAmount(agentSKReport.getRealityAmount().add(agentSKReport.getRealityPostElectricFee()
|
|
|
- .add(agentSKReport.getRealityServiceCharge())));
|
|
|
- agentSKReport.setRepairAmount(agentSKReport.getRealitySumAmount().subtract(agentSKReport.getSumAmount())
|
|
|
- .subtract(ObjectUtils.isNotNull(agentSKReport.getRemainingAmount())
|
|
|
- ? agentSKReport.getRemainingAmount() : new BigDecimal("0.00")));
|
|
|
- agentSKReport.setAgentItems(agentItemsList);
|
|
|
- agentSKReport.setDept(dept);
|
|
|
- map.put(MagicValues.DATA, agentSKReport);
|
|
|
+
|
|
|
+ agentFeeReport.setDept(dept);
|
|
|
+ map.put(MagicValues.DATA, agentFeeReport);
|
|
|
} else {
|
|
|
- map.put(MagicValues.DATA, new AgentSKReport());
|
|
|
+ map.put(MagicValues.DATA, new AgentFeeReport());
|
|
|
}
|
|
|
- } else if (MagicValues.BUSINESS.equals(reportCode) && MagicValues.BALANCE_PAYMENT.equals(groupCode) && MagicValues.MYDL.equals(type)) {
|
|
|
+ } else if (MagicValues.BUSINESS.equals(reportCode) && MagicValues.BALANCE_PAYMENT.equals(groupCode) && MagicValues.MYDL_STL.equals(type)) {
|
|
|
Agent agent = baseMapper.selectById(billId);
|
|
|
DateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd");
|
|
|
if (agent != null) {
|
|
|
@@ -3467,7 +3425,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else {
|
|
|
throw new RuntimeException("请先维护尾款费用信息");
|
|
|
}
|
|
|
- AgentSKReport agentSKReport = new AgentSKReport();
|
|
|
+ AgentFeeReport agentFeeReport = new AgentFeeReport();
|
|
|
List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
List<Long> stlPids = feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode())
|
|
|
&& "D".equals(e.getDc())).map(FeeCenter::getStlPid)
|
|
|
@@ -3484,79 +3442,12 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
.add(item.getServiceCharge()).subtract(remainingAmount));
|
|
|
mapList.add(map1);
|
|
|
}
|
|
|
- agentSKReport.setMapList(mapList.isEmpty() ? new ArrayList<>() : mapList);
|
|
|
- }
|
|
|
- agentSKReport.setPaymentMethod(agent.getAdvanceRatio());
|
|
|
- agentSKReport.setContractNo(agent.getContractNo());
|
|
|
- agentSKReport.setPrepaidTime(dateFormat.format(agent.getBusinessDate()));
|
|
|
- agentSKReport.setSkAmountUsd(agent.getPrepaidAmount());
|
|
|
- List<FeeCenter> feeCenters = feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc()) && "2".equals(e.getFeeType())).collect(Collectors.toList());
|
|
|
- if (!feeCenters.isEmpty()) {
|
|
|
- agentSKReport.setExchangeRate(feeCenters.get(0).getExrate());
|
|
|
- agentSKReport.setAmount(feeCenters.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- agentSKReport.setAmountUsd(feeCenters.stream().map(FeeCenter::getAmountLoc).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- List<Long> feeIds = feeCenters.stream().map(FeeCenter::getId).collect(Collectors.toList());
|
|
|
- feeCenterList.stream().filter(e -> "YDF".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc()) && "2".equals(e.getFeeType()) && feeIds.contains(e.getSrcItemId()))
|
|
|
- .findFirst().ifPresent(feeCentersYDF ->
|
|
|
- agentSKReport.setPostElectricFee(ObjectUtils.isNotNull(feeCentersYDF.getAmount()) ? feeCentersYDF.getAmount()
|
|
|
- : new BigDecimal("0.00")));
|
|
|
- feeCenterList.stream().filter(e -> "SXF".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc()) && "2".equals(e.getFeeType()) && feeIds.contains(e.getSrcItemId()))
|
|
|
- .findFirst().ifPresent(feeCentersSXF ->
|
|
|
- agentSKReport.setServiceCharge(ObjectUtils.isNotNull(feeCentersSXF.getAmount()) ? feeCentersSXF.getAmount()
|
|
|
- : new BigDecimal("0.00")));
|
|
|
- feeCenterList.stream().filter(e -> "YFK".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc()) && "2".equals(e.getFeeType()) && feeIds.contains(e.getSrcItemId()))
|
|
|
- .findFirst().ifPresent(feeCentersYFK ->
|
|
|
- agentSKReport.setRemainingAmount(ObjectUtils.isNotNull(feeCentersYFK.getAmount()) ? feeCentersYFK.getAmount()
|
|
|
- : new BigDecimal("0.00")));
|
|
|
- } else {
|
|
|
- agentSKReport.setAmount(new BigDecimal("0.00"));
|
|
|
- agentSKReport.setPostElectricFee(new BigDecimal("0.00"));
|
|
|
- agentSKReport.setServiceCharge(new BigDecimal("0.00"));
|
|
|
- agentSKReport.setRemainingAmount(new BigDecimal("0.00"));
|
|
|
- throw new RuntimeException("未查到应收尾款费用信息");
|
|
|
+ agentFeeReport.setMapList(mapList.isEmpty() ? new ArrayList<>() : mapList);
|
|
|
}
|
|
|
- agentSKReport.setSumAmount(agentSKReport.getAmount().add(agentSKReport.getPostElectricFee()
|
|
|
- .add(agentSKReport.getServiceCharge()).subtract(ObjectUtils.isNotNull(agentSKReport.getRemainingAmount())
|
|
|
- ? agentSKReport.getRemainingAmount() : new BigDecimal("0.00"))));
|
|
|
- List<FeeCenter> feeCentersC = feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode())
|
|
|
- && "C".equals(e.getDc()) && "2".equals(e.getFeeType())).collect(Collectors.toList());
|
|
|
- if (!feeCentersC.isEmpty()) {
|
|
|
- agentSKReport.setRealityExchangeRate(feeCentersC.get(0).getStlExrate());
|
|
|
- agentSKReport.setRealityAmount(feeCentersC.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- List<Long> feeIds = feeCentersC.stream().map(FeeCenter::getId).collect(Collectors.toList());
|
|
|
- feeCenterList.stream().filter(e -> "YDF".equals(e.getFeeCode())
|
|
|
- && "C".equals(e.getDc()) && "2".equals(e.getFeeType()) && feeIds.contains(e.getSrcItemId()))
|
|
|
- .findFirst().ifPresent(feeCentersYDF ->
|
|
|
- agentSKReport.setRealityPostElectricFee(ObjectUtils.isNotNull(feeCentersYDF.getAmount()) ? feeCentersYDF.getAmount()
|
|
|
- : new BigDecimal("0.00")));
|
|
|
- feeCenterList.stream().filter(e -> "SXF".equals(e.getFeeCode())
|
|
|
- && "C".equals(e.getDc()) && "2".equals(e.getFeeType()) && feeIds.contains(e.getSrcItemId()))
|
|
|
- .findFirst().ifPresent(feeCentersSXF ->
|
|
|
- agentSKReport.setRealityServiceCharge(ObjectUtils.isNotNull(feeCentersSXF.getAmount()) ? feeCentersSXF.getAmount()
|
|
|
- : new BigDecimal("0.00")));
|
|
|
- if (!agentList.isEmpty()) {
|
|
|
- agentList.stream().filter(e -> e.getId().equals(feeCentersC.get(0).getStlPid())).findFirst()
|
|
|
- .ifPresent(detail -> agentSKReport.setRealityTime(dateFormat.format(detail.getBusinessDate())));
|
|
|
- }
|
|
|
- } else {
|
|
|
- agentSKReport.setRealityAmount(new BigDecimal("0.00"));
|
|
|
- agentSKReport.setRealityPostElectricFee(new BigDecimal("0.00"));
|
|
|
- agentSKReport.setRealityServiceCharge(new BigDecimal("0.00"));
|
|
|
- }
|
|
|
- agentSKReport.setRealitySumAmount(agentSKReport.getRealityAmount().add(agentSKReport.getRealityPostElectricFee()
|
|
|
- .add(agentSKReport.getRealityServiceCharge())));
|
|
|
- agentSKReport.setRepairAmount(agentSKReport.getRealitySumAmount().subtract(agentSKReport.getSumAmount())
|
|
|
- .subtract(ObjectUtils.isNotNull(agentSKReport.getRemainingAmount())
|
|
|
- ? agentSKReport.getRemainingAmount() : new BigDecimal("0.00")));
|
|
|
- agentSKReport.setAgentItems(agentItemsList);
|
|
|
- agentSKReport.setDept(dept);
|
|
|
- map.put(MagicValues.DATA, agentSKReport);
|
|
|
+ agentFeeReport.setDept(dept);
|
|
|
+ map.put(MagicValues.DATA, agentFeeReport);
|
|
|
} else {
|
|
|
- map.put(MagicValues.DATA, new AgentSKReport());
|
|
|
+ map.put(MagicValues.DATA, new AgentFeeReport());
|
|
|
}
|
|
|
} else if (MagicValues.COST.equals(reportCode) && MagicValues.RECEIVABLE.equals(groupCode) && MagicValues.MYDL.equals(type)) {
|
|
|
Agent agent = baseMapper.selectById(billId);
|
|
|
@@ -4062,7 +3953,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenter.setPid(detail.getId());
|
|
|
feeCenter.setLineNo(lineNo);
|
|
|
feeCenter.setBillNo(detail.getContractNo());
|
|
|
- feeCenter.setMblno(detail.getContractNo());
|
|
|
feeCenter.setBillDate(detail.getBusinessDate());
|
|
|
feeCenter.setCorpId(detail.getDomesticConsigneeId());
|
|
|
feeCenter.setCorpCnName(detail.getDomesticConsigneeCname());
|
|
|
@@ -4093,6 +3983,13 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenter.setElementsCnName(feesSFK.getAccElementName());
|
|
|
feeCenter.setElementsEnName(feesSFK.getElementsEnName());
|
|
|
feeCenter.setUnitNo("JOB");
|
|
|
+ if (ObjectUtils.isNotNull(detail.getAgentItemsList()) && !detail.getAgentItemsList().isEmpty()) {
|
|
|
+ feeCenter.setOrderNo(detail.getAgentItemsList().stream().map(AgentItems::getOrderNo).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ feeCenter.setFactoryNumber(detail.getAgentItemsList().stream().map(AgentItems::getFactoryNumber).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ feeCenter.setGoodsName(detail.getAgentItemsList().stream().map(AgentItems::getLabelProductName).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("请先维护订单明细");
|
|
|
+ }
|
|
|
if ("SFK".equals(type)) {
|
|
|
feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
feeCenter.setAmountLoc(detail.getPrepaidAmount());
|
|
|
@@ -4198,6 +4095,15 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
List<AgentItemsR> agentItemsRList = detail.getAgentItemsRList();
|
|
|
String billNo = agentItemsRList.stream().map(AgentItemsR::getBillNo).collect(Collectors.joining(","));
|
|
|
feeCenter.setMblno(billNo);
|
|
|
+ if (ObjectUtils.isNotNull(detail.getAgentItemsList()) && !detail.getAgentItemsList().isEmpty()) {
|
|
|
+ feeCenter.setEta(detail.getAgentItemsList().get(0).getEstimateReachHarbor());
|
|
|
+ feeCenter.setOrderNo(detail.getAgentItemsList().stream().map(AgentItems::getOrderNo).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ feeCenter.setFactoryNumber(detail.getAgentItemsList().stream().map(AgentItems::getFactoryNumber).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ feeCenter.setGoodsName(detail.getAgentItemsList().stream().map(AgentItems::getLabelProductName).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ feeCenter.setCntrNo(detail.getAgentItemsList().stream().map(AgentItems::getBoxNo).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("请先维护订单明细");
|
|
|
+ }
|
|
|
if ("WK".equals(type)) {
|
|
|
BigDecimal amount = agentItemsRList.stream().map(AgentItemsR::getThisSettlementAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
@@ -4272,7 +4178,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenter.setPid(detail.getId());
|
|
|
feeCenter.setLineNo(lineNo);
|
|
|
feeCenter.setBillNo(detail.getContractNo());
|
|
|
- feeCenter.setMblno(detail.getContractNo());
|
|
|
feeCenter.setBillDate(detail.getBusinessDate());
|
|
|
feeCenter.setCorpId(detail.getDomesticConsigneeId());
|
|
|
feeCenter.setCorpCnName(detail.getDomesticConsigneeCname());
|
|
|
@@ -4303,6 +4208,13 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenter.setElementsCnName(feesSFK.getAccElementName());
|
|
|
feeCenter.setElementsEnName(feesSFK.getElementsEnName());
|
|
|
feeCenter.setUnitNo("JOB");
|
|
|
+ if (ObjectUtils.isNotNull(detail.getAgentItemsList()) && !detail.getAgentItemsList().isEmpty()) {
|
|
|
+ feeCenter.setOrderNo(detail.getAgentItemsList().stream().map(AgentItems::getOrderNo).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ feeCenter.setFactoryNumber(detail.getAgentItemsList().stream().map(AgentItems::getFactoryNumber).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ feeCenter.setGoodsName(detail.getAgentItemsList().stream().map(AgentItems::getLabelProductName).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("请先维护订单明细");
|
|
|
+ }
|
|
|
if ("SFK".equals(type)) {
|
|
|
feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
feeCenter.setAmountLoc(detail.getPrepaidAmount());
|
|
|
@@ -4408,6 +4320,15 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
List<AgentItemsR> agentItemsRList = detail.getAgentItemsRList();
|
|
|
String billNo = agentItemsRList.stream().map(AgentItemsR::getBillNo).collect(Collectors.joining(","));
|
|
|
feeCenter.setMblno(billNo);
|
|
|
+ if (ObjectUtils.isNotNull(detail.getAgentItemsList()) && !detail.getAgentItemsList().isEmpty()) {
|
|
|
+ feeCenter.setEta(detail.getAgentItemsList().get(0).getEstimateReachHarbor());
|
|
|
+ feeCenter.setOrderNo(detail.getAgentItemsList().stream().map(AgentItems::getOrderNo).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ feeCenter.setFactoryNumber(detail.getAgentItemsList().stream().map(AgentItems::getFactoryNumber).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ feeCenter.setGoodsName(detail.getAgentItemsList().stream().map(AgentItems::getLabelProductName).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ feeCenter.setCntrNo(detail.getAgentItemsList().stream().map(AgentItems::getBoxNo).filter(Objects::nonNull).collect(Collectors.joining(",")));
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("请先维护订单明细");
|
|
|
+ }
|
|
|
if ("WK".equals(type)) {
|
|
|
BigDecimal amount = agentItemsRList.stream().map(AgentItemsR::getThisSettlementAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
feeCenter.setQuantity(new BigDecimal("1"));
|