|
|
@@ -181,7 +181,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else {
|
|
|
detail.setFeeCenterListC(new ArrayList<>());
|
|
|
}
|
|
|
- if (!ids.isEmpty()){
|
|
|
+ if (!ids.isEmpty()) {
|
|
|
List<Agent> agentList = baseMapper.selectList(new LambdaQueryWrapper<Agent>()
|
|
|
.eq(Agent::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Agent::getIsDeleted, 0)
|
|
|
@@ -484,6 +484,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
String billNo = agent.getFeeCenterListC().stream().map(FeeCenter::getMblno).filter(Objects::nonNull)
|
|
|
.distinct().collect(Collectors.joining(","));
|
|
|
agent.setBillNoJoin(billNo);
|
|
|
+ String contractNo = agent.getFeeCenterListC().stream().map(FeeCenter::getBillNo).filter(Objects::nonNull)
|
|
|
+ .distinct().collect(Collectors.joining(","));
|
|
|
+ agent.setContractNo(contractNo);
|
|
|
agent.setPaymentInUsd(agent.getFeeCenterListC().stream().filter(e -> "SFK,WK".contains(e.getFeeCode()))
|
|
|
.map(FeeCenter::getAmountLoc).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agent.setActualAmount(agent.getExchangeRate().multiply(agent.getPaymentInUsd()));
|
|
|
@@ -493,7 +496,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
for (FeeCenter item : agent.getFeeCenterListC()) {
|
|
|
if (!"MYDL-STL".equals(agent.getBusinessType())) {
|
|
|
item.setBusinessType(agent.getBusinessType());
|
|
|
- item.setBillNo(agent.getBusinessNo());
|
|
|
+ item.setBillNo(agent.getContractNo());
|
|
|
item.setBillDate(agent.getBusinessDate());
|
|
|
item.setCorpId(agent.getAbroadConsignorId());
|
|
|
item.setCorpCnName(agent.getAbroadConsignorCname());
|
|
|
@@ -559,6 +562,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else {
|
|
|
agent.setBillNoJoin(agent.getBillNoJoin() + "," + billNo);
|
|
|
}
|
|
|
+ String contractNo = agent.getFeeCenterListD().stream().map(FeeCenter::getBillNo).filter(Objects::nonNull)
|
|
|
+ .distinct().collect(Collectors.joining(","));
|
|
|
+ agent.setContractNo(contractNo);
|
|
|
agent.setPaymentInUsd(agent.getFeeCenterListD().stream().filter(e -> "SFK,WK".contains(e.getFeeCode()))
|
|
|
.map(FeeCenter::getAmountLoc).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agent.setActualAmount(agent.getExchangeRate().multiply(agent.getPaymentInUsd()));
|
|
|
@@ -568,7 +574,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
for (FeeCenter item : agent.getFeeCenterListD()) {
|
|
|
if (!"MYDL-STL".equals(agent.getBusinessType())) {
|
|
|
item.setBusinessType(agent.getBusinessType());
|
|
|
- item.setBillNo(agent.getBusinessNo());
|
|
|
+ item.setBillNo(agent.getContractNo());
|
|
|
item.setBillDate(agent.getBusinessDate());
|
|
|
item.setCorpId(agent.getDomesticConsigneeId());
|
|
|
item.setCorpCnName(agent.getDomesticConsigneeCname());
|
|
|
@@ -918,6 +924,28 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
agentNew.setOrderStatus(null);
|
|
|
agentNew.setBillNoFormat("MYDL");
|
|
|
agentNew.setBusinessTypeCode("MYDL");
|
|
|
+ agentNew.setGoodsValueStl(new BigDecimal("0.00"));
|
|
|
+ agentNew.setPrepaidAmountStl(new BigDecimal("0.00"));
|
|
|
+ agentNew.setFirstAccountsReceivable(new BigDecimal("0.00"));
|
|
|
+ agentNew.setFirstPaymentPayable(new BigDecimal("0.00"));
|
|
|
+ agentNew.setFirstPaidInPayment(new BigDecimal("0.00"));
|
|
|
+ agentNew.setFirstPaidInPaymentDate(null);
|
|
|
+ agentNew.setFirstActualPayment(new BigDecimal("0.00"));
|
|
|
+ agentNew.setFirstActualPaymentDate(null);
|
|
|
+ agentNew.setFinalPaymentPayable(new BigDecimal("0.00"));
|
|
|
+ agentNew.setFinalPaymentReceived(new BigDecimal("0.00"));
|
|
|
+ agentNew.setFinalPaymentReceivedDate(null);
|
|
|
+ agentNew.setFinalPaymentInFull(new BigDecimal("0.00"));
|
|
|
+ agentNew.setFinalPaymentInFullDate(null);
|
|
|
+ agentNew.setBusinessStatus("录入");
|
|
|
+ agentNew.setOrderStatus("录入");
|
|
|
+ agentNew.setReviewStatus("草稿");
|
|
|
+ agentNew.setFirstStatus("0");
|
|
|
+ agentNew.setFinalStatus("0");
|
|
|
+ agentNew.setDownPayment("0");
|
|
|
+ agentNew.setApplyForPayment("0");
|
|
|
+ agentNew.setWhetherReceivedDownPayments("未收货款");
|
|
|
+ agentNew.setWhetherReceivedBalancePayment("未付汇");
|
|
|
return agentNew;
|
|
|
}
|
|
|
|
|
|
@@ -1015,7 +1043,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else {
|
|
|
throw new RuntimeException("请选择明细");
|
|
|
}
|
|
|
- detail.setBalancePayment("1");
|
|
|
detail.setOrderStatus("尾款账单已生成");
|
|
|
detail.setExchangeRate(agent.getExchangeRate());
|
|
|
List<BFees> feesList = bFeesService.list(new LambdaQueryWrapper<BFees>()
|
|
|
@@ -1115,6 +1142,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
List<Agent> agentList = baseMapper.selectList(new LambdaQueryWrapper<Agent>()
|
|
|
.eq(Agent::getTenantId, AuthUtil.getTenantId())
|
|
|
.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()) {
|
|
|
@@ -1588,7 +1616,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
deptName = res.getData().getDeptName();
|
|
|
}
|
|
|
}
|
|
|
- agent.setOrderStatus("已结算");
|
|
|
BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
|
|
|
.eq(BusinessType::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(BusinessType::getIsDeleted, 0)
|
|
|
@@ -1605,8 +1632,21 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
throw new RuntimeException("未找到费用明细");
|
|
|
}
|
|
|
List<Long> pids = feeCentersList.stream().map(FeeCenter::getPid).distinct().collect(Collectors.toList());
|
|
|
+ List<FeeCenter> feeCentersWK = feeCentersList.stream().filter(e -> "WK".equals(e.getFeeCode())).collect(Collectors.toList());
|
|
|
+ List<FeeCenter> feeCentersSK = feeCentersList.stream().filter(e -> "SFK".equals(e.getFeeCode())).collect(Collectors.toList());
|
|
|
+ String type = "";
|
|
|
+ if (!feeCentersWK.isEmpty() && !feeCentersSK.isEmpty()) {
|
|
|
+ throw new RuntimeException("首款与尾款不能同时付费");
|
|
|
+ }
|
|
|
+ if (!feeCentersWK.isEmpty()) {
|
|
|
+ type = "WK";
|
|
|
+ }
|
|
|
+ if (!feeCentersSK.isEmpty()) {
|
|
|
+ type = "SFK";
|
|
|
+ }
|
|
|
List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
.in(FeeCenter::getPid, pids)
|
|
|
+ .apply("find_in_set(fee_code,'SXF,YDF,YFK," + type + "')")
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FeeCenter::getIsDeleted, 0));
|
|
|
List<FeeCenter> feeCenterListD = feeCenters.stream().filter(e -> "D".equals(e.getDc())).collect(Collectors.toList());
|
|
|
@@ -1618,6 +1658,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
List<Agent> agentList = baseMapper.selectList(new LambdaQueryWrapper<Agent>()
|
|
|
.eq(Agent::getTenantId, AuthUtil.getTenantId())
|
|
|
.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()) {
|
|
|
@@ -1626,7 +1667,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
List<Long> agentIdList = agentList.stream().map(Agent::getId).distinct().collect(Collectors.toList());
|
|
|
BigDecimal amountD = feeCenterListD.stream().map(FeeCenter::getStlTtlAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
BigDecimal amount = feeCenterListD.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> "C".equals(e.getDc())).collect(Collectors.toList());
|
|
|
+ List<FeeCenter> feeCenterList = feeCenters.stream().filter(e -> "C".equals(e.getDc()) && 0 == e.getStlStatus()).collect(Collectors.toList());
|
|
|
if (feeCenterList.isEmpty()) {
|
|
|
throw new RuntimeException("未找到应付费用明细");
|
|
|
}
|
|
|
@@ -1701,9 +1742,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
BFees feesSFK = bFeesService.getOne(new LambdaQueryWrapper<BFees>()
|
|
|
.eq(BFees::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(BFees::getIsDeleted, 0)
|
|
|
- .eq(BFees::getCode, "YFK"));
|
|
|
+ .eq(BFees::getCode, "DSK"));
|
|
|
if (feesSFK == null) {
|
|
|
- throw new RuntimeException("请先维护预付款费用信息");
|
|
|
+ throw new RuntimeException("请先维护待收款费用信息");
|
|
|
}
|
|
|
feeCenter.setFeeId(feesSFK.getId());
|
|
|
feeCenter.setFeeCode(feesSFK.getCode());
|
|
|
@@ -1748,7 +1789,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if (new BigDecimal("0").compareTo(finalPaymentInFull) != 0) {
|
|
|
BigDecimal amountWk = feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode()) && item.getContractNo().equals(e.getBillNo()))
|
|
|
.map(FeeCenter::getAmountLoc).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- if (item.getFinalPaymentInFull().add(amountWk).compareTo(item.getFinalPaymentPayable()) > 0) {
|
|
|
+ if (item.getFinalPaymentInFull().add(amountWk).compareTo(item.getGoodsValue().subtract(item.getPrepaidAmount())) > 0) {
|
|
|
throw new RuntimeException("实付金额大于应付金额");
|
|
|
}
|
|
|
item.setFinalPaymentInFull(item.getFinalPaymentInFull().add(amountWk));
|
|
|
@@ -2039,8 +2080,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if (!finAccBills.isEmpty()) {
|
|
|
finAccBillsService.saveOrUpdateBatch(finAccBills);
|
|
|
}
|
|
|
- updateById(agent);
|
|
|
this.updateBatchById(agentList);
|
|
|
+ agent.setOrderStatus("已结算");
|
|
|
+ updateById(agent);
|
|
|
return agent;
|
|
|
}
|
|
|
|
|
|
@@ -2585,64 +2627,108 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if (agent.getId() == null) {
|
|
|
throw new RuntimeException("缺少必要参数");
|
|
|
}
|
|
|
+ Long deptId = 0L;
|
|
|
+ String deptName = "";
|
|
|
+ //获取部门ids对应中文名
|
|
|
+ if (ObjectUtils.isNotNull(deptUtils.getDeptPid())) {
|
|
|
+ deptId = deptUtils.getDeptPid();
|
|
|
+ R<Dept> res = sysClient.getDept(deptUtils.getDeptPid());
|
|
|
+ if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
|
|
|
+ deptName = res.getData().getDeptName();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<BFees> feesList = bFeesService.list(new LambdaQueryWrapper<BFees>()
|
|
|
+ .eq(BFees::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BFees::getIsDeleted, 0)
|
|
|
+ .apply("find_in_set(code,'SFK,YDF,SXF,YFK,WK')")
|
|
|
+ );
|
|
|
+ if (feesList.isEmpty()) {
|
|
|
+ throw new RuntimeException("请先维护费用信息");
|
|
|
+ }
|
|
|
Agent declare = baseMapper.selectById(agent.getId());
|
|
|
- String feeType = "";
|
|
|
if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
declare.setApplyForPayment("1");
|
|
|
declare.setOrderStatus("已生成应付首付款");
|
|
|
- feeType = "1";
|
|
|
} else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setApplyForPaymentBalance("1");
|
|
|
+ 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("已生成应付尾款");
|
|
|
- feeType = "2";
|
|
|
}
|
|
|
- List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getPid, agent.getId())
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .eq(FeeCenter::getDc, "D")
|
|
|
- .eq(FeeCenter::getFeeType, feeType));
|
|
|
if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setFirstPaymentPayable(feeCenters.stream().filter(e -> "SFK".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ if (feeCenterService.count(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0)
|
|
|
+ .eq(FeeCenter::getPid, agent.getId())
|
|
|
+ .eq(FeeCenter::getDc, "C")
|
|
|
+ .eq(FeeCenter::getFeeCode, "SFK")) > 0) {
|
|
|
+ throw new RuntimeException("首付款已生成,生成失败");
|
|
|
+ }
|
|
|
+ List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
+ FeeCenter feeCenterSFK = cAssemblyDataSK("MYDL", declare, "SFK", 1L, 1, deptId, deptName, feesList);
|
|
|
+ if (feeCenterSFK != null) {
|
|
|
+ declare.setFirstPaymentPayable(feeCenterSFK.getAmountLoc());
|
|
|
+ feeCenterList.add(feeCenterSFK);
|
|
|
+ }
|
|
|
+ FeeCenter feeCenterYDF = cAssemblyDataSK("MYDL", declare, "YDF", 2L, 2, deptId, deptName, feesList);
|
|
|
+ if (feeCenterYDF != null) {
|
|
|
+ feeCenterList.add(feeCenterYDF);
|
|
|
+ }
|
|
|
+ FeeCenter feeCenterSXF = cAssemblyDataSK("MYDL", declare, "SXF", 3L, 3, deptId, deptName, feesList);
|
|
|
+ if (feeCenterSXF != null) {
|
|
|
+ feeCenterList.add(feeCenterSXF);
|
|
|
+ }
|
|
|
+ if (!feeCenterList.isEmpty()) {
|
|
|
+ feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
|
+ }
|
|
|
} else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
- declare.setFinalPaymentPayable(feeCenters.stream().filter(e -> "WK".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc)
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
- for (FeeCenter item : feeCenters) {
|
|
|
- FeeCenter feeCenter = new FeeCenter();
|
|
|
- BeanUtil.copyProperties(item, feeCenter);
|
|
|
- feeCenter.setDc("C");
|
|
|
- feeCenter.setId(null);
|
|
|
- feeCenter.setCorpId(declare.getAbroadConsignorId());
|
|
|
- feeCenter.setCorpCnName(declare.getAbroadConsignorCname());
|
|
|
- feeCenter.setCreateTime(new Date());
|
|
|
- feeCenter.setCreateUser(AuthUtil.getUserId());
|
|
|
- feeCenter.setCreateUserName(AuthUtil.getUserName());
|
|
|
- feeCenter.setFeeType(feeType);
|
|
|
- feeCenter.setAccBillId(null);
|
|
|
- feeCenter.setAccBillNo(null);
|
|
|
- feeCenter.setAccDate(null);
|
|
|
- feeCenter.setAccAmount(new BigDecimal("0"));
|
|
|
- feeCenter.setAccStatus(0);
|
|
|
- feeCenter.setAccById(null);
|
|
|
- feeCenter.setAccByName(null);
|
|
|
- feeCenter.setUnsettledAmount(item.getAmount());
|
|
|
- feeCenter.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
- feeCenter.setStlOrgAmount(new BigDecimal("0.00"));
|
|
|
- feeCenter.setStlCurCode(null);
|
|
|
- feeCenter.setStlAmount(new BigDecimal("0.00"));
|
|
|
- feeCenter.setStlAmountLoc(new BigDecimal("0.00"));
|
|
|
- feeCenter.setStlStatus(0);
|
|
|
- feeCenter.setStlById(null);
|
|
|
- feeCenter.setStlByName(null);
|
|
|
- feeCenter.setUnsettledAmount(new BigDecimal("0.00"));
|
|
|
- feeCenter.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
- feeCenterList.add(feeCenter);
|
|
|
- }
|
|
|
- if (!feeCenterList.isEmpty()) {
|
|
|
- feeCenterService.saveBatch(feeCenterList);
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ FeeCenter feeCenterSXF = cAssemblyDataWK("MYDL", declare, "SXF", 3L, 3, deptId, deptName, feesList);
|
|
|
+ if (feeCenterSXF != null) {
|
|
|
+ feeCenterList.add(feeCenterSXF);
|
|
|
+ }
|
|
|
+ if (!feeCenterList.isEmpty()) {
|
|
|
+ feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
|
+ }
|
|
|
}
|
|
|
baseMapper.updateById(declare);
|
|
|
return declare;
|
|
|
@@ -2867,7 +2953,10 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if (agent != null) {
|
|
|
agentReport.setContractNo(agent.getContractNo());
|
|
|
// todo 发票
|
|
|
- agentReport.setAgentFpReportList(new ArrayList<>());
|
|
|
+ List<AgentFpReport> agentFpReportList = new ArrayList<>();
|
|
|
+ AgentFpReport agentFpReport = new AgentFpReport();
|
|
|
+ agentFpReportList.add(agentFpReport);
|
|
|
+ agentReport.setAgentFpReportList(agentFpReportList);
|
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
.eq(FeeCenter::getPid, agent.getId())
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
@@ -2926,9 +3015,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
agentCReport.setExchangeRate(stlAgent.getExchangeRate());
|
|
|
agentCReport.setActualAmount(agentCReport.getPaymentInUsd().multiply(agentCReport.getExchangeRate()));
|
|
|
agentCReport.setPostElectricFee(feeCenters.stream().filter(e -> "YDF".equals(e.getFeeCode()))
|
|
|
- .map(FeeCenter::getAmountLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agentCReport.setServiceCharge(feeCenters.stream().filter(e -> "SXF".equals(e.getFeeCode()))
|
|
|
- .map(FeeCenter::getAmountLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agentCReportList.add(agentCReport);
|
|
|
}
|
|
|
}
|
|
|
@@ -2964,9 +3053,22 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
agentReport.setAgentBillReportList(agentBillReportList);
|
|
|
// todo 增值税
|
|
|
- agentReport.setAgentZzsReportList(new ArrayList<>());
|
|
|
+ List<AgentZzsReport> agentZzsReportList = new ArrayList<>();
|
|
|
+ AgentZzsReport agentZzsReport = new AgentZzsReport();
|
|
|
+ agentZzsReportList.add(agentZzsReport);
|
|
|
+ agentReport.setAgentZzsReportList(agentZzsReportList);
|
|
|
}
|
|
|
agentReport.setDept(dept);
|
|
|
+ agentReport.setAgentDReportList(ObjectUtils.isNull(agentReport.getAgentDReportList()) ? new ArrayList<>() : agentReport.getAgentDReportList());
|
|
|
+ agentReport.setAgentCReportList(ObjectUtils.isNull(agentReport.getAgentCReportList()) ? new ArrayList<>() : agentReport.getAgentCReportList());
|
|
|
+ agentReport.setAgentFpReportList(ObjectUtils.isNull(agentReport.getAgentFpReportList()) ? new ArrayList<>() : agentReport.getAgentFpReportList());
|
|
|
+ agentReport.setAgentBillReportList(ObjectUtils.isNull(agentReport.getAgentBillReportList()) ? new ArrayList<>() : agentReport.getAgentBillReportList());
|
|
|
+ agentReport.setAgentZzsReportList(ObjectUtils.isNull(agentReport.getAgentZzsReportList()) ? new ArrayList<>() : agentReport.getAgentZzsReportList());
|
|
|
+ map.put("agentDReportList", new ArrayList<>());
|
|
|
+ map.put("agentCReportList", new ArrayList<>());
|
|
|
+ map.put("agentFpReportList", new ArrayList<>());
|
|
|
+ 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)) {
|
|
|
Agent agent = baseMapper.selectById(billId);
|
|
|
@@ -3007,45 +3109,45 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
agentSKReport.setBillNo(item);
|
|
|
agentSKReport.setPrepaidTime(dateFormat.format(agent.getBusinessDate()));
|
|
|
agentSKReport.setSkAmountUsd(sumAmount.subtract(amount));
|
|
|
- List<FeeCenter> feeCenters = feeCenterList.stream().filter(e-> "SK".equals(e.getFeeCode())
|
|
|
+ List<FeeCenter> feeCenters = feeCenterList.stream().filter(e -> "SK".equals(e.getFeeCode())
|
|
|
&& "D".equals(e.getDc())).collect(Collectors.toList());
|
|
|
- if (!feeCenters.isEmpty()){
|
|
|
+ if (!feeCenters.isEmpty()) {
|
|
|
agentSKReport.setExchangeRate(feeCenters.get(0).getExrate());
|
|
|
}
|
|
|
- agentSKReport.setSkAmount(feeCenterList.stream().filter(e-> "SK".equals(e.getFeeCode())&& "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- agentSKReport.setPostElectricFee(feeCenterList.stream().filter(e-> "YDF".equals(e.getFeeCode())&& "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- agentSKReport.setServiceCharge(feeCenterList.stream().filter(e-> "SXF".equals(e.getFeeCode())&& "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- agentSKReport.setRemainingAmount(feeCenterList.stream().filter(e-> "YFK".equals(e.getFeeCode())&& "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ agentSKReport.setSkAmount(feeCenterList.stream().filter(e -> "SK".equals(e.getFeeCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ agentSKReport.setPostElectricFee(feeCenterList.stream().filter(e -> "YDF".equals(e.getFeeCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ agentSKReport.setServiceCharge(feeCenterList.stream().filter(e -> "SXF".equals(e.getFeeCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ agentSKReport.setRemainingAmount(feeCenterList.stream().filter(e -> "YFK".equals(e.getFeeCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agentSKReport.setSumAmount(agentSKReport.getSkAmount().add(agentSKReport.getPostElectricFee()
|
|
|
.add(agentSKReport.getServiceCharge()).subtract(agentSKReport.getRemainingAmount())));
|
|
|
- List<FeeCenter> feeCentersC = feeCenterList.stream().filter(e-> "SK".equals(e.getFeeCode())
|
|
|
+ List<FeeCenter> feeCentersC = feeCenterList.stream().filter(e -> "SK".equals(e.getFeeCode())
|
|
|
&& "C".equals(e.getDc())).collect(Collectors.toList());
|
|
|
- if (!feeCentersC.isEmpty()){
|
|
|
+ if (!feeCentersC.isEmpty()) {
|
|
|
agentSKReport.setRealityExchangeRate(feeCentersC.get(0).getStlExrate());
|
|
|
}
|
|
|
- agentSKReport.setRealitySkAmount(feeCenterList.stream().filter(e-> "SK".equals(e.getFeeCode())&& "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- agentSKReport.setRealityPostElectricFee(feeCenterList.stream().filter(e-> "YDF".equals(e.getFeeCode())&& "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- agentSKReport.setRealityServiceCharge(feeCenterList.stream().filter(e-> "SXF".equals(e.getFeeCode())&& "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ agentSKReport.setRealitySkAmount(feeCenterList.stream().filter(e -> "SK".equals(e.getFeeCode()) && "C".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ agentSKReport.setRealityPostElectricFee(feeCenterList.stream().filter(e -> "YDF".equals(e.getFeeCode()) && "C".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ agentSKReport.setRealityServiceCharge(feeCenterList.stream().filter(e -> "SXF".equals(e.getFeeCode()) && "C".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agentSKReport.setRealitySumAmount(agentSKReport.getRealitySkAmount().add(agentSKReport.getRealityPostElectricFee()
|
|
|
.add(agentSKReport.getRealityServiceCharge())));
|
|
|
agentSKReport.setRepairAmount(agentSKReport.getRealitySumAmount().subtract(agentSKReport.getSumAmount())
|
|
|
.subtract(agentSKReport.getRemainingAmount()));
|
|
|
- if (!agentList.isEmpty()){
|
|
|
- if (!feeCentersC.isEmpty()){
|
|
|
- Agent detail = agentList.stream().filter(e-> e.getId().equals(feeCentersC.get(0).getStlPid())).findFirst().orElse(null);
|
|
|
- if (detail != null){
|
|
|
+ if (!agentList.isEmpty()) {
|
|
|
+ if (!feeCentersC.isEmpty()) {
|
|
|
+ Agent detail = agentList.stream().filter(e -> e.getId().equals(feeCentersC.get(0).getStlPid())).findFirst().orElse(null);
|
|
|
+ if (detail != null) {
|
|
|
agentSKReport.setRealityTime(dateFormat.format(detail.getBusinessDate()));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- agentSKReport.setAgentItems(agentItemsList.stream().filter(e-> e.getBillNo().equals(item)).collect(Collectors.toList()));
|
|
|
+ agentSKReport.setAgentItems(agentItemsList.stream().filter(e -> e.getBillNo().equals(item)).collect(Collectors.toList()));
|
|
|
agentSKReportList.add(agentSKReport);
|
|
|
}
|
|
|
}
|
|
|
@@ -3092,45 +3194,45 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
agentWKReport.setPrepaidAmount(amount);
|
|
|
agentWKReport.setPrepaidTime(dateFormat.format(agent.getBusinessDate()));
|
|
|
agentWKReport.setWkAmountUsd(sumAmount.subtract(amount));
|
|
|
- List<FeeCenter> feeCenters = feeCenterList.stream().filter(e-> "WK".equals(e.getFeeCode())
|
|
|
- && "D".equals(e.getDc())).collect(Collectors.toList());
|
|
|
- if (!feeCenters.isEmpty()){
|
|
|
+ List<FeeCenter> feeCenters = feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode())
|
|
|
+ && "D".equals(e.getDc())).collect(Collectors.toList());
|
|
|
+ if (!feeCenters.isEmpty()) {
|
|
|
agentWKReport.setExchangeRate(feeCenters.get(0).getExrate());
|
|
|
}
|
|
|
- agentWKReport.setWkAmount(feeCenterList.stream().filter(e-> "WK".equals(e.getFeeCode())&& "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- agentWKReport.setPostElectricFee(feeCenterList.stream().filter(e-> "YDF".equals(e.getFeeCode())&& "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- agentWKReport.setServiceCharge(feeCenterList.stream().filter(e-> "SXF".equals(e.getFeeCode())&& "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- agentWKReport.setRemainingAmount(feeCenterList.stream().filter(e-> "YFK".equals(e.getFeeCode())&& "D".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ agentWKReport.setWkAmount(feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ agentWKReport.setPostElectricFee(feeCenterList.stream().filter(e -> "YDF".equals(e.getFeeCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ agentWKReport.setServiceCharge(feeCenterList.stream().filter(e -> "SXF".equals(e.getFeeCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ agentWKReport.setRemainingAmount(feeCenterList.stream().filter(e -> "YFK".equals(e.getFeeCode()) && "D".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agentWKReport.setSumAmount(agentWKReport.getWkAmount().add(agentWKReport.getPostElectricFee()
|
|
|
.add(agentWKReport.getServiceCharge()).subtract(agentWKReport.getRemainingAmount())));
|
|
|
- List<FeeCenter> feeCentersC = feeCenterList.stream().filter(e-> "WK".equals(e.getFeeCode())
|
|
|
+ List<FeeCenter> feeCentersC = feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode())
|
|
|
&& "C".equals(e.getDc())).collect(Collectors.toList());
|
|
|
- if (!feeCentersC.isEmpty()){
|
|
|
+ if (!feeCentersC.isEmpty()) {
|
|
|
agentWKReport.setRealityExchangeRate(feeCentersC.get(0).getStlExrate());
|
|
|
}
|
|
|
- agentWKReport.setRealityWkAmount(feeCenterList.stream().filter(e-> "WK".equals(e.getFeeCode())&& "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- agentWKReport.setRealityPostElectricFee(feeCenterList.stream().filter(e-> "YDF".equals(e.getFeeCode())&& "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
- agentWKReport.setRealityServiceCharge(feeCenterList.stream().filter(e-> "SXF".equals(e.getFeeCode())&& "C".equals(e.getDc()))
|
|
|
- .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
|
|
|
+ agentWKReport.setRealityWkAmount(feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode()) && "C".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ agentWKReport.setRealityPostElectricFee(feeCenterList.stream().filter(e -> "YDF".equals(e.getFeeCode()) && "C".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ agentWKReport.setRealityServiceCharge(feeCenterList.stream().filter(e -> "SXF".equals(e.getFeeCode()) && "C".equals(e.getDc()))
|
|
|
+ .map(FeeCenter::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
agentWKReport.setRealitySumAmount(agentWKReport.getRealityWkAmount().add(agentWKReport.getRealityPostElectricFee()
|
|
|
.add(agentWKReport.getRealityServiceCharge())));
|
|
|
agentWKReport.setRepairAmount(agentWKReport.getRealitySumAmount().subtract(agentWKReport.getSumAmount())
|
|
|
.subtract(agentWKReport.getRemainingAmount()));
|
|
|
- if (!agentList.isEmpty()){
|
|
|
- if (!feeCentersC.isEmpty()){
|
|
|
- Agent detail = agentList.stream().filter(e-> e.getId().equals(feeCentersC.get(0).getStlPid())).findFirst().orElse(null);
|
|
|
- if (detail != null){
|
|
|
+ if (!agentList.isEmpty()) {
|
|
|
+ if (!feeCentersC.isEmpty()) {
|
|
|
+ Agent detail = agentList.stream().filter(e -> e.getId().equals(feeCentersC.get(0).getStlPid())).findFirst().orElse(null);
|
|
|
+ if (detail != null) {
|
|
|
agentWKReport.setRealityTime(dateFormat.format(detail.getBusinessDate()));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- agentWKReport.setAgentItems(agentItemsList.stream().filter(e-> e.getBillNo().equals(item)).collect(Collectors.toList()));
|
|
|
+ agentWKReport.setAgentItems(agentItemsList.stream().filter(e -> e.getBillNo().equals(item)).collect(Collectors.toList()));
|
|
|
agentWKReportList.add(agentWKReport);
|
|
|
}
|
|
|
}
|
|
|
@@ -3343,4 +3445,205 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private FeeCenter cAssemblyDataSK(String businessType, Agent detail, String type, long lineNo, int sort, long deptId, String deptName, List<BFees> feesList) {
|
|
|
+ FeeCenter feeCenter = new FeeCenter();
|
|
|
+ feeCenter.setFeeType("1");
|
|
|
+ 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(businessType);
|
|
|
+ feeCenter.setPid(detail.getId());
|
|
|
+ feeCenter.setLineNo(lineNo);
|
|
|
+ feeCenter.setBillNo(detail.getContractNo());
|
|
|
+ feeCenter.setBillDate(detail.getBusinessDate());
|
|
|
+ feeCenter.setCorpId(detail.getDomesticConsigneeId());
|
|
|
+ feeCenter.setCorpCnName(detail.getDomesticConsigneeCname());
|
|
|
+ feeCenter.setBillCorpId(detail.getCorpId());
|
|
|
+ feeCenter.setBillCorpCnName(detail.getCorpName());
|
|
|
+ feeCenter.setPolId(detail.getPolId());
|
|
|
+ feeCenter.setPolCode(detail.getPolCode());
|
|
|
+ feeCenter.setPolCnName(detail.getPolCnName());
|
|
|
+ feeCenter.setPolEnName(detail.getPolEnName());
|
|
|
+ feeCenter.setPodId(detail.getPodId());
|
|
|
+ feeCenter.setPodCode(detail.getPodCode());
|
|
|
+ feeCenter.setPodCnName(detail.getPodCnName());
|
|
|
+ feeCenter.setPodEnName(detail.getPodEnName());
|
|
|
+ BFees feesSFK = feesList.stream().filter(e -> type.equals(e.getCode()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (feesSFK == null) {
|
|
|
+ throw new RuntimeException("请先维护" + type + "费用信息");
|
|
|
+ }
|
|
|
+ feeCenter.setFeeId(feesSFK.getId());
|
|
|
+ feeCenter.setFeeCode(feesSFK.getCode());
|
|
|
+ feeCenter.setFeeCnName(feesSFK.getCnName());
|
|
|
+ feeCenter.setFeeEnName(feesSFK.getEnName());
|
|
|
+ feeCenter.setDc("C");
|
|
|
+ feeCenter.setCurCode(feesSFK.getCurNo());
|
|
|
+ feeCenter.setSort(sort);
|
|
|
+ feeCenter.setElementsId(feesSFK.getAccElementId());
|
|
|
+ feeCenter.setElementsCode(feesSFK.getElementsCode());
|
|
|
+ feeCenter.setElementsCnName(feesSFK.getAccElementName());
|
|
|
+ feeCenter.setElementsEnName(feesSFK.getElementsEnName());
|
|
|
+ feeCenter.setUnitNo("JOB");
|
|
|
+ if ("SFK".equals(type)) {
|
|
|
+ feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
+ feeCenter.setAmountLoc(detail.getPrepaidAmount());
|
|
|
+ if (ObjectUtils.isNotNull(detail.getExchangeRate())) {
|
|
|
+ feeCenter.setExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setPrice(detail.getPrepaidAmount().multiply(detail.getExchangeRate()));
|
|
|
+ feeCenter.setAmount(detail.getPrepaidAmount().multiply(detail.getExchangeRate()));
|
|
|
+ }
|
|
|
+ return feeCenter;
|
|
|
+ } else if ("YDF".equals(type)) {
|
|
|
+ feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
+ String postElectricFee = sysClient.getParamServiceByDept("post.electric.fee", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
+ if (ObjectUtils.isNotNull(postElectricFee)) {
|
|
|
+ BigDecimal postElectricFeeAmount = new BigDecimal(postElectricFee);
|
|
|
+ feeCenter.setPrice(postElectricFeeAmount);
|
|
|
+ feeCenter.setAmount(postElectricFeeAmount);
|
|
|
+ } else {
|
|
|
+ feeCenter.setPrice(new BigDecimal("150"));
|
|
|
+ feeCenter.setAmount(new BigDecimal("150"));
|
|
|
+ }
|
|
|
+ return feeCenter;
|
|
|
+ } else if ("SXF".equals(type)) {
|
|
|
+ feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
+ BigDecimal prepaidAmount = detail.getPrepaidAmount().multiply(detail.getExchangeRate());
|
|
|
+ String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
+ if (ObjectUtils.isNotNull(serviceCharge)) {
|
|
|
+ BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
|
|
|
+ feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
|
|
|
+ feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
|
|
|
+ } else {
|
|
|
+ BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal("1000"), serviceCharge.length(), RoundingMode.HALF_UP);
|
|
|
+ feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
|
|
|
+ feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
|
|
|
+ }
|
|
|
+ return feeCenter;
|
|
|
+ } else if ("YFK".equals(type)) {
|
|
|
+ feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
+ AdvanceCharge advanceCharge = advanceChargeService.getOne(new LambdaQueryWrapper<AdvanceCharge>()
|
|
|
+ .eq(AdvanceCharge::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AdvanceCharge::getIsDeleted, 0)
|
|
|
+ .eq(AdvanceCharge::getCorpId, detail.getDomesticConsigneeId()));
|
|
|
+ if (advanceCharge != null) {
|
|
|
+ feeCenter.setPrice(new BigDecimal("0").subtract(advanceCharge.getAdvancePaymentBalance()));
|
|
|
+ feeCenter.setAmount(new BigDecimal("0").subtract(advanceCharge.getAdvancePaymentBalance()));
|
|
|
+ return feeCenter;
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private FeeCenter cAssemblyDataWK(String businessType, Agent detail, String type, long lineNo, int sort, long deptId, String deptName, List<BFees> feesList) {
|
|
|
+ FeeCenter feeCenter = new FeeCenter();
|
|
|
+ feeCenter.setFeeType("2");
|
|
|
+ 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(businessType);
|
|
|
+ feeCenter.setPid(detail.getId());
|
|
|
+ feeCenter.setLineNo(lineNo);
|
|
|
+ feeCenter.setBillNo(detail.getContractNo());
|
|
|
+ feeCenter.setBillDate(detail.getBusinessDate());
|
|
|
+ feeCenter.setCorpId(detail.getDomesticConsigneeId());
|
|
|
+ feeCenter.setCorpCnName(detail.getDomesticConsigneeCname());
|
|
|
+ feeCenter.setBillCorpId(detail.getCorpId());
|
|
|
+ feeCenter.setBillCorpCnName(detail.getCorpName());
|
|
|
+ feeCenter.setPolId(detail.getPolId());
|
|
|
+ feeCenter.setPolCode(detail.getPolCode());
|
|
|
+ feeCenter.setPolCnName(detail.getPolCnName());
|
|
|
+ feeCenter.setPolEnName(detail.getPolEnName());
|
|
|
+ feeCenter.setPodId(detail.getPodId());
|
|
|
+ feeCenter.setPodCode(detail.getPodCode());
|
|
|
+ feeCenter.setPodCnName(detail.getPodCnName());
|
|
|
+ feeCenter.setPodEnName(detail.getPodEnName());
|
|
|
+ BFees feesSFK = feesList.stream().filter(e -> type.equals(e.getCode()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (feesSFK == null) {
|
|
|
+ throw new RuntimeException("请先维护" + type + "费用信息");
|
|
|
+ }
|
|
|
+ feeCenter.setFeeId(feesSFK.getId());
|
|
|
+ feeCenter.setFeeCode(feesSFK.getCode());
|
|
|
+ feeCenter.setFeeCnName(feesSFK.getCnName());
|
|
|
+ feeCenter.setFeeEnName(feesSFK.getEnName());
|
|
|
+ feeCenter.setDc("C");
|
|
|
+ feeCenter.setCurCode(feesSFK.getCurNo());
|
|
|
+ feeCenter.setSort(sort);
|
|
|
+ feeCenter.setElementsId(feesSFK.getAccElementId());
|
|
|
+ feeCenter.setElementsCode(feesSFK.getElementsCode());
|
|
|
+ feeCenter.setElementsCnName(feesSFK.getAccElementName());
|
|
|
+ feeCenter.setElementsEnName(feesSFK.getElementsEnName());
|
|
|
+ feeCenter.setUnitNo("JOB");
|
|
|
+ List<AgentItemsR> agentItemsRList = detail.getAgentItemsRList();
|
|
|
+ String billNo = agentItemsRList.stream().map(AgentItemsR::getBillNo).collect(Collectors.joining(","));
|
|
|
+ feeCenter.setMblno(billNo);
|
|
|
+ if ("WK".equals(type)) {
|
|
|
+ BigDecimal amount = agentItemsRList.stream().map(AgentItemsR::getThisSettlementAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
+ feeCenter.setAmountLoc(amount);
|
|
|
+ if (ObjectUtils.isNotNull(detail.getExchangeRate())) {
|
|
|
+ feeCenter.setExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setPrice(feeCenter.getAmountLoc().multiply(detail.getExchangeRate()));
|
|
|
+ feeCenter.setAmount(feeCenter.getAmountLoc().multiply(detail.getExchangeRate()));
|
|
|
+ }
|
|
|
+ return feeCenter;
|
|
|
+ } else if ("YDF".equals(type)) {
|
|
|
+ feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
+ String postElectricFee = sysClient.getParamServiceByDept("post.electric.fee", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
+ if (ObjectUtils.isNotNull(postElectricFee)) {
|
|
|
+ BigDecimal postElectricFeeAmount = new BigDecimal(postElectricFee);
|
|
|
+ feeCenter.setPrice(postElectricFeeAmount);
|
|
|
+ feeCenter.setAmount(postElectricFeeAmount);
|
|
|
+ } else {
|
|
|
+ feeCenter.setPrice(new BigDecimal("150"));
|
|
|
+ feeCenter.setAmount(new BigDecimal("150"));
|
|
|
+ }
|
|
|
+ return feeCenter;
|
|
|
+ } else if ("SXF".equals(type)) {
|
|
|
+ feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
+ BigDecimal amount = agentItemsRList.stream().map(AgentItemsR::getThisSettlementAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal prepaidAmount = amount.multiply(detail.getExchangeRate());
|
|
|
+ String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
+ if (ObjectUtils.isNotNull(serviceCharge)) {
|
|
|
+ BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
|
|
|
+ feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
|
|
|
+ feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
|
|
|
+ } else {
|
|
|
+ BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal("1000"), serviceCharge.length(), RoundingMode.HALF_UP);
|
|
|
+ feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
|
|
|
+ feeCenter.setAmount(prepaidAmount.multiply(serviceChargeAmount));
|
|
|
+ }
|
|
|
+ return feeCenter;
|
|
|
+ } else if ("YFK".equals(type)) {
|
|
|
+ feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
+ AdvanceCharge advanceCharge = advanceChargeService.getOne(new LambdaQueryWrapper<AdvanceCharge>()
|
|
|
+ .eq(AdvanceCharge::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AdvanceCharge::getIsDeleted, 0)
|
|
|
+ .eq(AdvanceCharge::getCorpId, detail.getDomesticConsigneeId()));
|
|
|
+ if (advanceCharge != null) {
|
|
|
+ feeCenter.setPrice(new BigDecimal("0").subtract(advanceCharge.getAdvancePaymentBalance()));
|
|
|
+ feeCenter.setAmount(new BigDecimal("0").subtract(advanceCharge.getAdvancePaymentBalance()));
|
|
|
+ return feeCenter;
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|