|
@@ -476,6 +476,20 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
agent.setPostElectricFee(new BigDecimal("0"));
|
|
agent.setPostElectricFee(new BigDecimal("0"));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
|
|
+ if ("MYDL-STL".equals(agent.getBusinessType())) {
|
|
|
|
|
+ if (ObjectUtils.isNotNull(serviceCharge)) {
|
|
|
|
|
+ BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
|
|
|
|
|
+ BigDecimal amount = serviceChargeAmount.multiply(agent.getActualAmount());
|
|
|
|
|
+ if (amount.compareTo(new BigDecimal("1000")) > 0) {
|
|
|
|
|
+ agent.setServiceCharge(new BigDecimal("1000"));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ agent.setServiceCharge(amount);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ agent.setServiceCharge(new BigDecimal("0.00"));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(agent.getFeeCenterListC()) && !agent.getFeeCenterListC().isEmpty()) {
|
|
if (ObjectUtils.isNotNull(agent.getFeeCenterListC()) && !agent.getFeeCenterListC().isEmpty()) {
|
|
|
long ydfCount = 0L;
|
|
long ydfCount = 0L;
|
|
@@ -538,16 +552,32 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
feeCenterList.addAll(agent.getFeeCenterListC());
|
|
feeCenterList.addAll(agent.getFeeCenterListC());
|
|
|
- List<FeeCenter> feeCenters = agent.getFeeCenterListC().stream().filter(e -> "SFK,WK".contains(e.getFeeCode()))
|
|
|
|
|
|
|
+ List<FeeCenter> feeCenters = agent.getFeeCenterListC().stream().filter(e -> "SFK,WK,SXF".contains(e.getFeeCode()))
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
BigDecimal profit = new BigDecimal("0.00");
|
|
BigDecimal profit = new BigDecimal("0.00");
|
|
|
for (FeeCenter item : feeCenters) {
|
|
for (FeeCenter item : feeCenters) {
|
|
|
if (ObjectUtils.isNull(item.getDiscountExrate())) {
|
|
if (ObjectUtils.isNull(item.getDiscountExrate())) {
|
|
|
- throw new RuntimeException("首款、尾款优惠汇率不能为空");
|
|
|
|
|
|
|
+ throw new RuntimeException("首款、尾款,手续费优惠汇率不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!"SXF".equals(item.getFeeCode())) {
|
|
|
|
|
+ BigDecimal amount = item.getAmountLoc().multiply(item.getDiscountExrate());
|
|
|
|
|
+ item.setProfit(item.getAmount().subtract(amount));
|
|
|
|
|
+ profit = profit.add(item.getAmount().subtract(amount));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ FeeCenter feeCenter = feeCenters.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
|
|
|
|
|
+ if (feeCenter != null) {
|
|
|
|
|
+ BigDecimal serviceChargeAmount = new BigDecimal("0.00");
|
|
|
|
|
+ if (ObjectUtils.isNotNull(serviceCharge)) {
|
|
|
|
|
+ serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal("1000"), serviceCharge.length(), RoundingMode.HALF_UP);
|
|
|
|
|
+ }
|
|
|
|
|
+ BigDecimal amount = feeCenter.getAmountLoc().multiply(item.getDiscountExrate()).multiply(serviceChargeAmount);
|
|
|
|
|
+ BigDecimal amountSum = item.getAmount().subtract(amount);
|
|
|
|
|
+ item.setProfit(amountSum);
|
|
|
|
|
+ profit = profit.add(amountSum);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- BigDecimal amount = item.getAmountLoc().multiply(item.getDiscountExrate());
|
|
|
|
|
- item.setProfit(item.getAmount().subtract(amount));
|
|
|
|
|
- profit = profit.add(item.getAmount().subtract(amount));
|
|
|
|
|
}
|
|
}
|
|
|
agent.setProfit(profit);
|
|
agent.setProfit(profit);
|
|
|
}
|
|
}
|
|
@@ -619,20 +649,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if (!feeCenterList.isEmpty()) {
|
|
if (!feeCenterList.isEmpty()) {
|
|
|
feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
|
}
|
|
}
|
|
|
- if ("MYDL-STL".equals(agent.getBusinessType())) {
|
|
|
|
|
- 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);
|
|
|
|
|
- BigDecimal amount = serviceChargeAmount.multiply(agent.getActualAmount());
|
|
|
|
|
- if (amount.compareTo(new BigDecimal("1000")) > 0) {
|
|
|
|
|
- agent.setServiceCharge(new BigDecimal("1000"));
|
|
|
|
|
- } else {
|
|
|
|
|
- agent.setServiceCharge(amount);
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- agent.setServiceCharge(new BigDecimal("0.00"));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
this.saveOrUpdate(agent);
|
|
this.saveOrUpdate(agent);
|
|
|
return R.data(agent);
|
|
return R.data(agent);
|
|
|
}
|
|
}
|
|
@@ -1005,7 +1021,15 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenterList.add(feeCenterYFK);
|
|
feeCenterList.add(feeCenterYFK);
|
|
|
}
|
|
}
|
|
|
if (!feeCenterList.isEmpty()) {
|
|
if (!feeCenterList.isEmpty()) {
|
|
|
- feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
|
|
|
|
|
+ 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);
|
|
|
}
|
|
}
|
|
|
baseMapper.updateById(detail);
|
|
baseMapper.updateById(detail);
|
|
|
return detail;
|
|
return detail;
|
|
@@ -1092,7 +1116,15 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenterList.add(feeCenterYFK);
|
|
feeCenterList.add(feeCenterYFK);
|
|
|
}
|
|
}
|
|
|
if (!feeCenterList.isEmpty()) {
|
|
if (!feeCenterList.isEmpty()) {
|
|
|
- feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
|
|
|
|
|
+ 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);
|
|
|
}
|
|
}
|
|
|
baseMapper.updateById(detail);
|
|
baseMapper.updateById(detail);
|
|
|
return detail;
|
|
return detail;
|
|
@@ -1399,6 +1431,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setStlAmount(data.getAmountDr());
|
|
item.setStlAmount(data.getAmountDr());
|
|
|
item.setStlAmountLoc(data.getAmountDr());
|
|
item.setStlAmountLoc(data.getAmountDr());
|
|
|
item.setStlStatus(1);
|
|
item.setStlStatus(1);
|
|
|
|
|
+ item.setStlDate(agent.getBusinessDate());
|
|
|
item.setStlById(AuthUtil.getUserId());
|
|
item.setStlById(AuthUtil.getUserId());
|
|
|
item.setStlByName(AuthUtil.getUserName());
|
|
item.setStlByName(AuthUtil.getUserName());
|
|
|
item.setUnsettledAmount(new BigDecimal("0.00"));
|
|
item.setUnsettledAmount(new BigDecimal("0.00"));
|
|
@@ -2003,6 +2036,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setStlAmount(data.getAmountDr());
|
|
item.setStlAmount(data.getAmountDr());
|
|
|
item.setStlAmountLoc(data.getAmountDr());
|
|
item.setStlAmountLoc(data.getAmountDr());
|
|
|
item.setStlStatus(1);
|
|
item.setStlStatus(1);
|
|
|
|
|
+ item.setStlDate(agent.getBusinessDate());
|
|
|
item.setStlById(AuthUtil.getUserId());
|
|
item.setStlById(AuthUtil.getUserId());
|
|
|
item.setStlByName(AuthUtil.getUserName());
|
|
item.setStlByName(AuthUtil.getUserName());
|
|
|
item.setUnsettledAmount(new BigDecimal("0.00"));
|
|
item.setUnsettledAmount(new BigDecimal("0.00"));
|
|
@@ -2690,7 +2724,15 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenterList.add(feeCenterSXF);
|
|
feeCenterList.add(feeCenterSXF);
|
|
|
}
|
|
}
|
|
|
if (!feeCenterList.isEmpty()) {
|
|
if (!feeCenterList.isEmpty()) {
|
|
|
- feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
|
|
|
|
|
+ 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())) {
|
|
} else if ("FFSQ-WK".equals(agent.getPaidApplication())) {
|
|
|
List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
@@ -2727,7 +2769,15 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenterList.add(feeCenterSXF);
|
|
feeCenterList.add(feeCenterSXF);
|
|
|
}
|
|
}
|
|
|
if (!feeCenterList.isEmpty()) {
|
|
if (!feeCenterList.isEmpty()) {
|
|
|
- feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
|
|
|
|
|
+ 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);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
baseMapper.updateById(declare);
|
|
baseMapper.updateById(declare);
|
|
@@ -2767,10 +2817,18 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
.eq(Agent::getTenantId, AuthUtil.getTenantId())
|
|
.eq(Agent::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Agent::getIsDeleted, 0)
|
|
.eq(Agent::getIsDeleted, 0)
|
|
|
.apply("find_in_set(id,'" + ids + "')"));
|
|
.apply("find_in_set(id,'" + ids + "')"));
|
|
|
- List<Long> corpIdList = agentList.stream().map(Agent::getCorpId).distinct().collect(Collectors.toList());
|
|
|
|
|
- if (!corpIdList.isEmpty() && corpIdList.size() != 1) {
|
|
|
|
|
- throw new RuntimeException("请选择单个客户申请费用");
|
|
|
|
|
|
|
+ if ("D".equals(dc)) {
|
|
|
|
|
+ List<Long> domesticConsigneeId = agentList.stream().map(Agent::getDomesticConsigneeId).distinct().collect(Collectors.toList());
|
|
|
|
|
+ if (!domesticConsigneeId.isEmpty() && domesticConsigneeId.size() != 1) {
|
|
|
|
|
+ throw new RuntimeException("请选择单个国内收货人生成收款");
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ List<Long> abroadConsignorId = agentList.stream().map(Agent::getAbroadConsignorId).distinct().collect(Collectors.toList());
|
|
|
|
|
+ if (!abroadConsignorId.isEmpty() && abroadConsignorId.size() != 1) {
|
|
|
|
|
+ throw new RuntimeException("请选择单个国外发货人生成付款");
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
List<Long> idList = agentList.stream().map(Agent::getId).distinct().collect(Collectors.toList());
|
|
List<Long> idList = agentList.stream().map(Agent::getId).distinct().collect(Collectors.toList());
|
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
.eq(FeeCenter::getIsDeleted, 0)
|
|
.eq(FeeCenter::getIsDeleted, 0)
|
|
@@ -2895,10 +2953,118 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setStlPid(stlAgent.getId());
|
|
item.setStlPid(stlAgent.getId());
|
|
|
}
|
|
}
|
|
|
feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
feeCenterService.saveOrUpdateBatch(feeCenterList);
|
|
|
|
|
+ Integer actId = null;
|
|
|
|
|
+ String processType = "";
|
|
|
|
|
+ String checkType = "";
|
|
|
if ("D".equals(stlAgent.getDc())) {
|
|
if ("D".equals(stlAgent.getDc())) {
|
|
|
stlAgent.setFeeCenterListD(feeCenterList);
|
|
stlAgent.setFeeCenterListD(feeCenterList);
|
|
|
|
|
+ actId = 1125;
|
|
|
|
|
+ processType = "贸易代理货款收费确认";
|
|
|
|
|
+ checkType = "YSQR-D";
|
|
|
} else {
|
|
} else {
|
|
|
stlAgent.setFeeCenterListC(feeCenterList);
|
|
stlAgent.setFeeCenterListC(feeCenterList);
|
|
|
|
|
+ actId = 1126;
|
|
|
|
|
+ processType = "贸易代理货款付费确认";
|
|
|
|
|
+ checkType = "YSQR-C";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //获取审批级次
|
|
|
|
|
+ List<LosAuditPathsLevels> auditPathsLevels;
|
|
|
|
|
+ // 判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
|
|
|
|
|
+ LosAuditPathsActs pathsActs;
|
|
|
|
|
+ //是否开启流程
|
|
|
|
|
+ LambdaQueryWrapper<LosAuditPathsActs> auditPathsActsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ auditPathsActsLambdaQueryWrapper
|
|
|
|
|
+ .eq(LosAuditPathsActs::getIsEnable, 1)
|
|
|
|
|
+ .eq(LosAuditPathsActs::getFidStatus, "status")
|
|
|
|
|
+ .eq(LosAuditPathsActs::getTenantId, AuthUtil.getTenantId())
|
|
|
|
|
+ .eq(LosAuditPathsActs::getSalesCompanyId, deptUtils.getDeptPid())
|
|
|
|
|
+ .eq(LosAuditPathsActs::getActId, actId);
|
|
|
|
|
+ pathsActs = auditPathsActsService.getOne(auditPathsActsLambdaQueryWrapper);
|
|
|
|
|
+ //获取审批信息
|
|
|
|
|
+ LosAuditPathsActs losAuditPathsActs = auditPathsActsService.getOne(new LambdaQueryWrapper<LosAuditPathsActs>()
|
|
|
|
|
+ .eq(LosAuditPathsActs::getActId, actId)
|
|
|
|
|
+ .eq(LosAuditPathsActs::getFidStatus, "status")
|
|
|
|
|
+ .eq(LosAuditPathsActs::getSalesCompanyId, deptUtils.getDeptPid())
|
|
|
|
|
+ .eq(LosAuditPathsActs::getTenantId, AuthUtil.getTenantId()));
|
|
|
|
|
+ Long pathId = losAuditPathsActs.getPathId();
|
|
|
|
|
+ auditPathsLevels = auditPathsLevelsService.list(new LambdaQueryWrapper<LosAuditPathsLevels>()
|
|
|
|
|
+ .eq(LosAuditPathsLevels::getTenantId, AuthUtil.getTenantId()).eq(LosAuditPathsLevels::getPathId, pathId));
|
|
|
|
|
+ String status = sysClient.getParamServiceByDept("whether.apply.for.payment", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
|
|
+ if (ObjectUtils.isNull() || "0".equals(status)) {
|
|
|
|
|
+ String toUserId = "";
|
|
|
|
|
+ if (!auditPathsLevels.isEmpty()) {
|
|
|
|
|
+ toUserId = auditPathsLevels.stream().map(LosAuditPathsLevels::getAuditUserId).collect(Collectors.joining(","));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (ObjectUtils.isNotNull(toUserId)) {
|
|
|
|
|
+ List<User> userList = userClient.selectUserList(toUserId);
|
|
|
|
|
+ List<Message> messageList = new ArrayList<>();
|
|
|
|
|
+ for (User item : userList) {
|
|
|
|
|
+ Message sendMessage = new Message();
|
|
|
|
|
+ sendMessage.setParameter(String.valueOf(agent.getId()));
|
|
|
|
|
+ sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
|
|
+ sendMessage.setUserId(AuthUtil.getUserId());
|
|
|
|
|
+ sendMessage.setToUserId(item.getId());
|
|
|
|
|
+ sendMessage.setToUserName(item.getRealName());
|
|
|
|
|
+ sendMessage.setMessageType(1);
|
|
|
|
|
+ sendMessage.setTenantId(AuthUtil.getTenantId());
|
|
|
|
|
+ sendMessage.setCreateUser(AuthUtil.getUserId());
|
|
|
|
|
+ sendMessage.setCreateTime(new Date());
|
|
|
|
|
+ sendMessage.setUrl(agent.getUrl());
|
|
|
|
|
+ sendMessage.setPageLabel(agent.getPageLabel());
|
|
|
|
|
+ sendMessage.setPageStatus(agent.getPageStatus());
|
|
|
|
|
+ if ("YSQR-SK".equals(agent.getPaidApplication())) {
|
|
|
|
|
+ sendMessage.setMessageBody("您有新的贸易代理货款收费确认" + ",业务单号:" + stlAgent.getBusinessNo());
|
|
|
|
|
+ } else if ("YSQR-WK".equals(agent.getPaidApplication())) {
|
|
|
|
|
+ sendMessage.setMessageBody("您有新的贸易代理货款付费确认" + ",业务单号:" + stlAgent.getBusinessNo());
|
|
|
|
|
+ }
|
|
|
|
|
+ messageList.add(sendMessage);
|
|
|
|
|
+ }
|
|
|
|
|
+ R save = messageClient.saveList(messageList);
|
|
|
|
|
+ if (!save.isSuccess()) {
|
|
|
|
|
+ throw new SecurityException("发送消息失败");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ //审批数据
|
|
|
|
|
+ LosAuditProecessDTO auditProecessDTO = new LosAuditProecessDTO();
|
|
|
|
|
+ auditProecessDTO.setTimes(1);
|
|
|
|
|
+ auditProecessDTO.setProcessType(processType);
|
|
|
|
|
+ // 没开启审批流直接走 通过流程
|
|
|
|
|
+ if (pathsActs == null || pathsActs.getIsEnable() == 2) {
|
|
|
|
|
+ throw new SecurityException("当前租户未查询到审批流配置");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (CollectionUtils.isEmpty(auditPathsLevels)) {
|
|
|
|
|
+ throw new SecurityException("开启审批失败:未查询到审批信息");
|
|
|
|
|
+ }
|
|
|
|
|
+ // 绑定审核类型
|
|
|
|
|
+ auditProecessDTO.setCheckType(checkType);
|
|
|
|
|
+ auditProecessDTO.setPaidApplication(agent.getPaidApplication());
|
|
|
|
|
+ // 追加跳转路由url
|
|
|
|
|
+ auditProecessDTO.setUrl(agent.getUrl());
|
|
|
|
|
+ auditProecessDTO.setPageStatus(agent.getPageStatus());
|
|
|
|
|
+ auditProecessDTO.setPageLabel(agent.getPageLabel());
|
|
|
|
|
+ auditProecessDTO.setOrderRemark(stlAgent.getRemarks());
|
|
|
|
|
+ auditProecessDTO.setPathsLevelsList(auditPathsLevels);
|
|
|
|
|
+ auditProecessDTO.setActId(1);
|
|
|
|
|
+ auditProecessDTO.setSrcBillId(stlAgent.getId());
|
|
|
|
|
+ auditProecessDTO.setBillId(stlAgent.getId());
|
|
|
|
|
+ auditProecessDTO.setBillNo(stlAgent.getBusinessNo());
|
|
|
|
|
+ auditProecessDTO.setSendUserId(AuthUtil.getUserId());
|
|
|
|
|
+ auditProecessDTO.setSendName(AuthUtil.getUserName());
|
|
|
|
|
+ auditProecessDTO.setSendTime(new Date());
|
|
|
|
|
+ auditProecessDTO.setBillTime(stlAgent.getCreateTime());
|
|
|
|
|
+ auditProecessDTO.setTenantId(AuthUtil.getTenantId());
|
|
|
|
|
+ auditProecessDTO.setCorpId(stlAgent.getCorpId());
|
|
|
|
|
+ auditProecessDTO.setSalesCompanyId(deptUtils.getDeptPid());
|
|
|
|
|
+ auditProecessDTO.setSalesCompanyName(stlAgent.getCreateDeptName());
|
|
|
|
|
+ auditProecessDTO.setPayAmount(stlAgent.getSumAmount());
|
|
|
|
|
+ auditProecessDTO.setReceivableAmount(stlAgent.getSumAmount());
|
|
|
|
|
+ R financeProcess = auditProecessService.createFinanceProcess(auditProecessDTO);
|
|
|
|
|
+ if (!financeProcess.isSuccess()) {
|
|
|
|
|
+ throw new SecurityException("操作失败,请联系管理员");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
return R.data(stlAgent);
|
|
return R.data(stlAgent);
|
|
|
}
|
|
}
|
|
@@ -3073,174 +3239,191 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} 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.equals(type)) {
|
|
|
Agent agent = baseMapper.selectById(billId);
|
|
Agent agent = baseMapper.selectById(billId);
|
|
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- List<AgentSKReport> agentSKReportList = new ArrayList<>();
|
|
|
|
|
if (agent != null) {
|
|
if (agent != null) {
|
|
|
List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
.eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
.eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(AgentItems::getIsDeleted, 0)
|
|
.eq(AgentItems::getIsDeleted, 0)
|
|
|
- .eq(AgentItems::getPid, agent.getId())
|
|
|
|
|
- .apply("find_in_set(id,'" + itemIds + "')"));
|
|
|
|
|
- if (!agentItemsList.isEmpty()) {
|
|
|
|
|
- List<Agent> agentList = new ArrayList<>();
|
|
|
|
|
- List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
|
|
- .eq(FeeCenter::getPid, agent.getId())
|
|
|
|
|
- .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));
|
|
|
|
|
- if (!agentList.isEmpty()) {
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .eq(AgentItems::getPid, agent.getId()));
|
|
|
|
|
+ List<Agent> agentList = new ArrayList<>();
|
|
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
|
|
+ .eq(FeeCenter::getPid, agent.getId())
|
|
|
|
|
+ .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));
|
|
|
}
|
|
}
|
|
|
- List<String> billNos = agentItemsList.stream().map(AgentItems::getBillNo).filter(Objects::nonNull)
|
|
|
|
|
- .distinct().collect(Collectors.toList());
|
|
|
|
|
- BigDecimal amount = agent.getPrepaidAmount();
|
|
|
|
|
- BigDecimal sumAmount = agent.getGoodsValue();
|
|
|
|
|
- for (String item : billNos) {
|
|
|
|
|
- AgentSKReport agentSKReport = new AgentSKReport();
|
|
|
|
|
- agentSKReport.setContractNo(agent.getContractNo());
|
|
|
|
|
- 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())
|
|
|
|
|
- && "D".equals(e.getDc())).collect(Collectors.toList());
|
|
|
|
|
- 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.setSumAmount(agentSKReport.getSkAmount().add(agentSKReport.getPostElectricFee()
|
|
|
|
|
- .add(agentSKReport.getServiceCharge()).subtract(agentSKReport.getRemainingAmount())));
|
|
|
|
|
- List<FeeCenter> feeCentersC = feeCenterList.stream().filter(e -> "SK".equals(e.getFeeCode())
|
|
|
|
|
- && "C".equals(e.getDc())).collect(Collectors.toList());
|
|
|
|
|
- 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.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) {
|
|
|
|
|
- agentSKReport.setRealityTime(dateFormat.format(detail.getBusinessDate()));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- agentSKReport.setAgentItems(agentItemsList.stream().filter(e -> e.getBillNo().equals(item)).collect(Collectors.toList()));
|
|
|
|
|
- agentSKReportList.add(agentSKReport);
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ AgentSKReport agentSKReport = new AgentSKReport();
|
|
|
|
|
+ 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"));
|
|
|
|
|
+ }
|
|
|
|
|
+ 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())));
|
|
|
}
|
|
}
|
|
|
|
|
+ }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);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ map.put(MagicValues.DATA, new AgentSKReport());
|
|
|
}
|
|
}
|
|
|
- map.put(MagicValues.DATA, agentSKReportList);
|
|
|
|
|
- map.put("dept", dept);
|
|
|
|
|
} 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.equals(type)) {
|
|
|
Agent agent = baseMapper.selectById(billId);
|
|
Agent agent = baseMapper.selectById(billId);
|
|
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
- List<AgentWKReport> agentWKReportList = new ArrayList<>();
|
|
|
|
|
if (agent != null) {
|
|
if (agent != null) {
|
|
|
List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
.eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
.eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(AgentItems::getIsDeleted, 0)
|
|
.eq(AgentItems::getIsDeleted, 0)
|
|
|
- .eq(AgentItems::getPid, agent.getId())
|
|
|
|
|
- .apply("find_in_set(id,'" + itemIds + "')"));
|
|
|
|
|
- if (!agentItemsList.isEmpty()) {
|
|
|
|
|
- List<Agent> agentList = new ArrayList<>();
|
|
|
|
|
- List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
|
|
- .eq(FeeCenter::getPid, agent.getId())
|
|
|
|
|
- .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));
|
|
|
|
|
- if (!agentList.isEmpty()) {
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .eq(AgentItems::getPid, agent.getId()));
|
|
|
|
|
+ List<Agent> agentList = new ArrayList<>();
|
|
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
|
|
+ .eq(FeeCenter::getPid, agent.getId())
|
|
|
|
|
+ .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));
|
|
|
}
|
|
}
|
|
|
- List<String> billNos = agentItemsList.stream().map(AgentItems::getBillNo).filter(Objects::nonNull)
|
|
|
|
|
- .distinct().collect(Collectors.toList());
|
|
|
|
|
- BigDecimal amount = agent.getPrepaidAmount();
|
|
|
|
|
- BigDecimal sumAmount = agent.getGoodsValue();
|
|
|
|
|
- for (String item : billNos) {
|
|
|
|
|
- AgentWKReport agentWKReport = new AgentWKReport();
|
|
|
|
|
- agentWKReport.setContractNo(agent.getContractNo());
|
|
|
|
|
- agentWKReport.setBillNo(item);
|
|
|
|
|
- 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()) {
|
|
|
|
|
- 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.setSumAmount(agentWKReport.getWkAmount().add(agentWKReport.getPostElectricFee()
|
|
|
|
|
- .add(agentWKReport.getServiceCharge()).subtract(agentWKReport.getRemainingAmount())));
|
|
|
|
|
- List<FeeCenter> feeCentersC = feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode())
|
|
|
|
|
- && "C".equals(e.getDc())).collect(Collectors.toList());
|
|
|
|
|
- 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.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) {
|
|
|
|
|
- agentWKReport.setRealityTime(dateFormat.format(detail.getBusinessDate()));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- agentWKReport.setAgentItems(agentItemsList.stream().filter(e -> e.getBillNo().equals(item)).collect(Collectors.toList()));
|
|
|
|
|
- agentWKReportList.add(agentWKReport);
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ AgentSKReport agentSKReport = new AgentSKReport();
|
|
|
|
|
+ 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"));
|
|
|
|
|
+ }
|
|
|
|
|
+ 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);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ map.put(MagicValues.DATA, new AgentSKReport());
|
|
|
}
|
|
}
|
|
|
- map.put(MagicValues.DATA, agentWKReportList);
|
|
|
|
|
- map.put("dept", dept);
|
|
|
|
|
- } else {
|
|
|
|
|
- map.put(MagicValues.DATA, null);
|
|
|
|
|
}
|
|
}
|
|
|
return R.data(map);
|
|
return R.data(map);
|
|
|
}
|
|
}
|