|
|
@@ -32,10 +32,13 @@ import org.springblade.los.Util.IDeptUtils;
|
|
|
import org.springblade.los.Util.MagicValues;
|
|
|
import org.springblade.los.basic.business.entity.BusinessType;
|
|
|
import org.springblade.los.basic.business.service.IBusinessTypeService;
|
|
|
+import org.springblade.los.basic.corps.entity.BCorps;
|
|
|
import org.springblade.los.basic.corps.entity.BCorpsBank;
|
|
|
import org.springblade.los.basic.corps.service.IBCorpsBankService;
|
|
|
+import org.springblade.los.basic.corps.service.IBCorpsService;
|
|
|
import org.springblade.los.basic.cur.entity.BCurExrate;
|
|
|
import org.springblade.los.basic.cur.mapper.CurExrateMapper;
|
|
|
+import org.springblade.los.basic.cur.service.IBCurrencyService;
|
|
|
import org.springblade.los.basic.fees.entity.BFees;
|
|
|
import org.springblade.los.basic.fees.service.IBFeesService;
|
|
|
import org.springblade.los.billno.entity.BusinessBillNo;
|
|
|
@@ -52,6 +55,7 @@ import org.springblade.los.check.entity.LosAuditPathsLevels;
|
|
|
import org.springblade.los.check.service.IAuditPathsActsService;
|
|
|
import org.springblade.los.check.service.IAuditPathsLevelsService;
|
|
|
import org.springblade.los.check.service.IAuditProecessService;
|
|
|
+import org.springblade.los.finance.fee.dto.FeeCenterReports;
|
|
|
import org.springblade.los.finance.fee.entity.FeeCenter;
|
|
|
import org.springblade.los.finance.fee.entity.FinAccBills;
|
|
|
import org.springblade.los.finance.fee.service.IFeeCenterService;
|
|
|
@@ -148,6 +152,10 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
|
|
|
private final CurExrateMapper curExrateMapper;
|
|
|
|
|
|
+ private final IBCorpsService bCorpsService;
|
|
|
+
|
|
|
+ private final IBCurrencyService ibCurrencyService;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<AgentVO> selectAgentPage(IPage<AgentVO> page, AgentVO agent) {
|
|
|
return page.setRecords(baseMapper.selectAgentPage(page, agent));
|
|
|
@@ -474,10 +482,16 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if ("MYDL-STL".equals(agent.getBusinessType())) {
|
|
|
String billNo = agent.getFeeCenterListC().stream().map(FeeCenter::getMblno).filter(Objects::nonNull)
|
|
|
.distinct().collect(Collectors.joining(","));
|
|
|
- agent.setBillNoJoin(billNo);
|
|
|
+ if (ObjectUtils.isNotNull(billNo)) {
|
|
|
+ List<String> billNoList = Arrays.stream(billNo.split(",")).collect(Collectors.toList());
|
|
|
+ agent.setBillNoJoin(billNoList.stream().distinct().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
String contractNo = agent.getFeeCenterListC().stream().map(FeeCenter::getBillNo).filter(Objects::nonNull)
|
|
|
.distinct().collect(Collectors.joining(","));
|
|
|
- agent.setContractNo(contractNo);
|
|
|
+ if (ObjectUtils.isNotNull(contractNo)) {
|
|
|
+ List<String> contractNoList = Arrays.stream(contractNo.split(",")).collect(Collectors.toList());
|
|
|
+ agent.setContractNo(contractNoList.stream().distinct().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
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 +507,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setCorpCnName(agent.getAbroadConsignorCname());
|
|
|
item.setBillCorpId(agent.getCorpId());
|
|
|
item.setBillCorpCnName(agent.getCorpName());
|
|
|
- item.setMblno(agent.getContractNo());
|
|
|
item.setPolId(agent.getPolId());
|
|
|
item.setPolCode(agent.getPolCode());
|
|
|
item.setPolCnName(agent.getPolCnName());
|
|
|
@@ -505,6 +518,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setPid(agent.getId());
|
|
|
} else {
|
|
|
item.setStlPid(agent.getId());
|
|
|
+ item.setStlExrate(agent.getExchangeRate());
|
|
|
if ("YDF".equals(item.getFeeCode())) {
|
|
|
item.setAmount(agent.getPostElectricFee().divide(new BigDecimal(ydfCount), 2, RoundingMode.HALF_UP));
|
|
|
item.setPrice(item.getAmount());
|
|
|
@@ -564,14 +578,20 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
if ("MYDL-STL".equals(agent.getBusinessType())) {
|
|
|
String billNo = agent.getFeeCenterListD().stream().map(FeeCenter::getMblno).filter(Objects::nonNull)
|
|
|
.distinct().collect(Collectors.joining(","));
|
|
|
- if (ObjectUtils.isNull(agent.getBillNoJoin())) {
|
|
|
- agent.setBillNoJoin(billNo);
|
|
|
- } else {
|
|
|
- agent.setBillNoJoin(agent.getBillNoJoin() + "," + billNo);
|
|
|
+ if (ObjectUtils.isNotNull(billNo)) {
|
|
|
+ List<String> billNoList = Arrays.stream(billNo.split(",")).collect(Collectors.toList());
|
|
|
+ if (ObjectUtils.isNull(agent.getBillNoJoin())) {
|
|
|
+ agent.setBillNoJoin(billNoList.stream().distinct().collect(Collectors.joining(",")));
|
|
|
+ } else {
|
|
|
+ agent.setBillNoJoin(agent.getBillNoJoin() + "," + billNoList.stream().distinct().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
}
|
|
|
String contractNo = agent.getFeeCenterListD().stream().map(FeeCenter::getBillNo).filter(Objects::nonNull)
|
|
|
.distinct().collect(Collectors.joining(","));
|
|
|
- agent.setContractNo(contractNo);
|
|
|
+ if (ObjectUtils.isNotNull(contractNo)) {
|
|
|
+ List<String> contractNoList = Arrays.stream(contractNo.split(",")).collect(Collectors.toList());
|
|
|
+ agent.setContractNo(contractNoList.stream().distinct().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
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()));
|
|
|
@@ -587,7 +607,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setCorpCnName(agent.getDomesticConsigneeCname());
|
|
|
item.setBillCorpId(agent.getCorpId());
|
|
|
item.setBillCorpCnName(agent.getCorpName());
|
|
|
- item.setMblno(agent.getContractNo());
|
|
|
item.setPolId(agent.getPolId());
|
|
|
item.setPolCode(agent.getPolCode());
|
|
|
item.setPolCnName(agent.getPolCnName());
|
|
|
@@ -598,6 +617,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setPid(agent.getId());
|
|
|
} else {
|
|
|
item.setStlPid(agent.getId());
|
|
|
+ item.setStlExrate(agent.getExchangeRate());
|
|
|
if ("YDF".equals(item.getFeeCode())) {
|
|
|
item.setAmount(agent.getPostElectricFee().divide(new BigDecimal(ydfCount), 2, RoundingMode.HALF_UP));
|
|
|
item.setPrice(item.getAmount());
|
|
|
@@ -934,6 +954,13 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setWhetherComplete(null);
|
|
|
}
|
|
|
agentNew.setAgentItemsList(!agentItemsList.isEmpty() ? agentItemsList : new ArrayList<>());
|
|
|
+ agentNew.setFilesCenterList(new ArrayList<>());
|
|
|
+ agentNew.setFeeCenterListD(new ArrayList<>());
|
|
|
+ agentNew.setFeeCenterListC(new ArrayList<>());
|
|
|
+ agentNew.setRecordListD(new ArrayList<>());
|
|
|
+ agentNew.setRecordListC(new ArrayList<>());
|
|
|
+ agentNew.setRecordInvoiceList(new ArrayList<>());
|
|
|
+ agentNew.setRecordRateList(new ArrayList<>());
|
|
|
agentNew.setId(null);
|
|
|
agentNew.setBusinessNo("");
|
|
|
agentNew.setBusinessStatus("录入");
|
|
|
@@ -2111,7 +2138,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
finAccBillsService.saveOrUpdateBatch(finAccBills);
|
|
|
}
|
|
|
this.updateBatchById(agentList);
|
|
|
- agent.setOrderStatus("已结算");
|
|
|
+ agent.setOrderStatus("已确认");
|
|
|
updateById(agent);
|
|
|
return agent;
|
|
|
}
|
|
|
@@ -2484,6 +2511,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
throw new SecurityException("审核已通过,撤销失败");
|
|
|
}
|
|
|
declare.setFirstStatus("录入");
|
|
|
+ declare.setOrderStatus("录入");
|
|
|
String status = sysClient.getParamServiceByDept("whether.apply.for.payment", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
if (ObjectUtils.isNotNull(status) && !"0".equals(status)) {
|
|
|
R financeProcess = auditProecessService.deteleByBillIdAndType(agent.getId(), agent.getPaidApplication());
|
|
|
@@ -2879,6 +2907,16 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
stlAgent.setAbroadBank(agent.getAbroadBank());
|
|
|
stlAgent.setAbroadCurrency(agent.getAbroadCurrency());
|
|
|
}
|
|
|
+ String billNo = feeCenterList.stream().map(FeeCenter::getMblno).filter(Objects::nonNull).collect(Collectors.joining(","));
|
|
|
+ if (ObjectUtils.isNotNull(billNo)) {
|
|
|
+ List<String> billNoList = Arrays.stream(billNo.split(",")).collect(Collectors.toList());
|
|
|
+ stlAgent.setBillNoJoin(billNoList.stream().distinct().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
+ String contractNo = feeCenterList.stream().map(FeeCenter::getBillNo).filter(Objects::nonNull).collect(Collectors.joining(","));
|
|
|
+ if (ObjectUtils.isNotNull(contractNo)) {
|
|
|
+ List<String> contractNoList = Arrays.stream(contractNo.split(",")).collect(Collectors.toList());
|
|
|
+ stlAgent.setContractNo(contractNoList.stream().distinct().collect(Collectors.joining(",")));
|
|
|
+ }
|
|
|
stlAgent.setGoodsValue(feeCenterList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
stlAgent.setPaymentInUsd(feeCenterList.stream().filter(e -> "SFK,WK".contains(e.getFeeCode()))
|
|
|
.map(FeeCenter::getAmountLoc).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
@@ -3098,13 +3136,22 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
detail.setFeeCenterListD(new ArrayList<>());
|
|
|
detail.setFeeCenterListC(new ArrayList<>());
|
|
|
}
|
|
|
+ List<FilesCenter> filesCenterList = filesCenterService.list(new LambdaQueryWrapper<FilesCenter>()
|
|
|
+ .eq(FilesCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FilesCenter::getIsDeleted, 0)
|
|
|
+ .eq(FilesCenter::getBusinessType, "MYDL")
|
|
|
+ .eq(FilesCenter::getPid, agent.getId()));
|
|
|
+ detail.setFilesCenterList(!filesCenterList.isEmpty() ? filesCenterList : new ArrayList<>());
|
|
|
}
|
|
|
return detail;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public R getReportDataTrade(String billId, String reportCode, String groupCode, String itemIds, String type) {
|
|
|
+ public R getReportDataTrade(String billId, String reportCode, String groupCode, String corpIds, String itemIds, String type) {
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
+ List<BCorps> bCorpsLists = bCorpsService.list(new LambdaQueryWrapper<BCorps>()
|
|
|
+ .eq(BCorps::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BCorps::getIsDeleted, 0));
|
|
|
if (MagicValues.BUSINESS.equals(reportCode) && MagicValues.ORDER_ALLOCATION.equals(groupCode) && MagicValues.MYDL.equals(type)) {
|
|
|
Agent agent = baseMapper.selectById(billId);
|
|
|
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
|
|
|
@@ -3272,6 +3319,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
List<Agent> agentList = new ArrayList<>();
|
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
.eq(FeeCenter::getPid, agent.getId())
|
|
|
+ .eq(FeeCenter::getFeeType, "1")
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FeeCenter::getIsDeleted, 0));
|
|
|
if (!feeCenterList.isEmpty()) {
|
|
|
@@ -3285,28 +3333,27 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
.in(Agent::getId, stlPids));
|
|
|
}
|
|
|
} else {
|
|
|
- throw new RuntimeException("请先维护首款,尾款费用信息");
|
|
|
- }
|
|
|
- if (agentList.isEmpty()) {
|
|
|
- throw new RuntimeException("请先确认首款,尾款收费");
|
|
|
+ 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());
|
|
|
- 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);
|
|
|
+ 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);
|
|
|
+ }
|
|
|
agentSKReport.setPaymentMethod(agent.getAdvanceRatio());
|
|
|
agentSKReport.setContractNo(agent.getContractNo());
|
|
|
agentSKReport.setPrepaidTime(dateFormat.format(agent.getBusinessDate()));
|
|
|
@@ -3365,7 +3412,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
agentSKReport.setRealityAmount(new BigDecimal("0.00"));
|
|
|
agentSKReport.setRealityPostElectricFee(new BigDecimal("0.00"));
|
|
|
agentSKReport.setRealityServiceCharge(new BigDecimal("0.00"));
|
|
|
- throw new RuntimeException("未查到应付首款费用信息");
|
|
|
}
|
|
|
agentSKReport.setRealitySumAmount(agentSKReport.getRealityAmount().add(agentSKReport.getRealityPostElectricFee()
|
|
|
.add(agentSKReport.getRealityServiceCharge())));
|
|
|
@@ -3405,6 +3451,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
List<Agent> agentList = new ArrayList<>();
|
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
.eq(FeeCenter::getPid, agent.getId())
|
|
|
+ .eq(FeeCenter::getFeeType, "2")
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(FeeCenter::getIsDeleted, 0));
|
|
|
if (!feeCenterList.isEmpty()) {
|
|
|
@@ -3417,29 +3464,28 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
.eq(Agent::getBusinessType, "MYDL-STL")
|
|
|
.in(Agent::getId, stlPids));
|
|
|
}
|
|
|
- }else {
|
|
|
- throw new RuntimeException("请先维护首款,尾款费用信息");
|
|
|
- }
|
|
|
- if (agentList.isEmpty()) {
|
|
|
- throw new RuntimeException("请先确认首款,尾款收费");
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("请先维护尾款费用信息");
|
|
|
}
|
|
|
AgentSKReport agentSKReport = new AgentSKReport();
|
|
|
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)
|
|
|
.filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
- 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()) && "2".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);
|
|
|
+ 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()) && "2".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);
|
|
|
+ }
|
|
|
agentSKReport.setPaymentMethod(agent.getAdvanceRatio());
|
|
|
agentSKReport.setContractNo(agent.getContractNo());
|
|
|
agentSKReport.setPrepaidTime(dateFormat.format(agent.getBusinessDate()));
|
|
|
@@ -3500,7 +3546,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
agentSKReport.setRealityAmount(new BigDecimal("0.00"));
|
|
|
agentSKReport.setRealityPostElectricFee(new BigDecimal("0.00"));
|
|
|
agentSKReport.setRealityServiceCharge(new BigDecimal("0.00"));
|
|
|
- throw new RuntimeException("未查到应付尾款费用信息");
|
|
|
}
|
|
|
agentSKReport.setRealitySumAmount(agentSKReport.getRealityAmount().add(agentSKReport.getRealityPostElectricFee()
|
|
|
.add(agentSKReport.getRealityServiceCharge())));
|
|
|
@@ -3513,10 +3558,287 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else {
|
|
|
map.put(MagicValues.DATA, new AgentSKReport());
|
|
|
}
|
|
|
+ } else if (MagicValues.COST.equals(reportCode) && MagicValues.RECEIVABLE.equals(groupCode) && MagicValues.MYDL.equals(type)) {
|
|
|
+ Agent agent = baseMapper.selectById(billId);
|
|
|
+ if (agent != null) {
|
|
|
+ R<Dept> res = sysClient.getDept(agent.getAffiliatedCompanyId());
|
|
|
+ Dept dept;
|
|
|
+ if (res.isSuccess() && res.getData() != null) {
|
|
|
+ dept = res.getData();
|
|
|
+ String status = sysClient.getParamServiceNew("is.update.default");
|
|
|
+ if ("1".equals(status)) {
|
|
|
+ R<User> resUser = userClient.userInfoById(AuthUtil.getUserId());
|
|
|
+ if (resUser.isSuccess() && resUser.getData() != null) {
|
|
|
+ dept.setEmail(resUser.getData().getEmail());
|
|
|
+ dept.setTel(resUser.getData().getPhone());
|
|
|
+ dept.setContacts(resUser.getData().getRealName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("获取报表表头数据失败");
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getDc, MagicValues.D)
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0);
|
|
|
+ lambdaQueryWrapper.eq(FeeCenter::getPid, billId);
|
|
|
+ if (ObjectUtils.isNotNull(corpIds)) {
|
|
|
+ lambdaQueryWrapper.eq(FeeCenter::getCorpId, corpIds);
|
|
|
+ } else {
|
|
|
+ if (ObjectUtils.isNotNull(itemIds)) {
|
|
|
+ lambdaQueryWrapper.apply("find_in_set(id,'" + itemIds + "')");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(lambdaQueryWrapper);
|
|
|
+ BigDecimal amountDr = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountDrUsd = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountDrLoc = new BigDecimal(MagicValues.ZERO);
|
|
|
+ List<FeeCenterReports> feeCenterReportsList = new ArrayList<>();
|
|
|
+ for (FeeCenter item : feeCenterList) {
|
|
|
+ BCorps bCorps = bCorpsLists.stream().filter(e -> e.getId().equals(item.getCorpId())).findFirst().orElse(null);
|
|
|
+ if (bCorps != null) {
|
|
|
+ item.setCorpCnName(bCorps.getShortName());
|
|
|
+ }
|
|
|
+ if (MagicValues.D.equals(item.getDc())) {
|
|
|
+ if (MagicValues.USD.equals(item.getCurCode())) {
|
|
|
+ amountDrUsd = amountDrUsd.add(item.getAmountLoc());
|
|
|
+ } else if (MagicValues.CNY.equals(item.getCurCode())) {
|
|
|
+ amountDr = amountDr.add(item.getAmount());
|
|
|
+ } else {
|
|
|
+ BigDecimal usd = ibCurrencyService.converter(item.getCurCode(), item.getAmount(), item.getDc(), "1");
|
|
|
+ amountDrUsd = amountDrUsd.add(usd);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
+ feeCenterReports.setRemarks(item.getRemarks());
|
|
|
+ feeCenterReports.setPid(item.getPid());
|
|
|
+ feeCenterReports.setCorpCnName(item.getCorpCnName());
|
|
|
+ feeCenterReports.setFeeCnName(item.getFeeCnName());
|
|
|
+ feeCenterReports.setAmountD(item.getAmount());
|
|
|
+ feeCenterReports.setAmountUsdD(item.getAmountLoc());
|
|
|
+ feeCenterReports.setHblno(item.getMblno());
|
|
|
+ feeCenterReports.setAmount(item.getQuantity() + "*" + item.getPrice());
|
|
|
+ feeCenterReportsList.add(feeCenterReports);
|
|
|
+ }
|
|
|
+ agent.setFeeCenterReportsList(feeCenterReportsList);
|
|
|
+ amountDrLoc = amountDrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountDrUsd, MagicValues.D, "1")).add(amountDr);
|
|
|
+ agent.setAmount(amountDr);
|
|
|
+ agent.setAmountUsd(amountDrUsd);
|
|
|
+ agent.setAmountLoc(amountDrLoc);
|
|
|
+ List<BCorpsBank> bCorpsBanks = bCorpsBankService.list(new LambdaQueryWrapper<BCorpsBank>()
|
|
|
+ .eq(BCorpsBank::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BCorpsBank::getIsDeleted, 0)
|
|
|
+ .eq(BCorpsBank::getPid, agent.getDomesticConsigneeId()));
|
|
|
+ if (!bCorpsBanks.isEmpty()) {
|
|
|
+ agent.setAccountBank(bCorpsBanks.get(0).getAccountBank());
|
|
|
+ agent.setAccountNo(bCorpsBanks.get(0).getAccountNo());
|
|
|
+ agent.setAddress(bCorpsBanks.get(0).getAddress());
|
|
|
+ agent.setSwiftCode(bCorpsBanks.get(0).getSwiftCode());
|
|
|
+ }
|
|
|
+ agent.setDept(dept);
|
|
|
+ map.put(MagicValues.DATA, agent);
|
|
|
+ } else {
|
|
|
+ map.put(MagicValues.DATA, null);
|
|
|
+ }
|
|
|
+ } else if (MagicValues.COST.equals(reportCode) && MagicValues.MEET.equals(groupCode) && MagicValues.MYDL.equals(type)) {
|
|
|
+ Agent agent = baseMapper.selectById(billId);
|
|
|
+ if (agent != null) {
|
|
|
+ R<Dept> res = sysClient.getDept(agent.getAffiliatedCompanyId());
|
|
|
+ Dept dept;
|
|
|
+ if (res.isSuccess() && res.getData() != null) {
|
|
|
+ dept = res.getData();
|
|
|
+ String status = sysClient.getParamServiceNew("is.update.default");
|
|
|
+ if ("1".equals(status)) {
|
|
|
+ R<User> resUser = userClient.userInfoById(AuthUtil.getUserId());
|
|
|
+ if (resUser.isSuccess() && resUser.getData() != null) {
|
|
|
+ dept.setEmail(resUser.getData().getEmail());
|
|
|
+ dept.setTel(resUser.getData().getPhone());
|
|
|
+ dept.setContacts(resUser.getData().getRealName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("获取报表表头数据失败");
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<FeeCenter> lambdaQueryWrapper = new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getDc, MagicValues.C)
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0);
|
|
|
+ lambdaQueryWrapper.eq(FeeCenter::getPid, billId);
|
|
|
+ if (ObjectUtils.isNotNull(corpIds)) {
|
|
|
+ lambdaQueryWrapper.eq(FeeCenter::getCorpId, corpIds);
|
|
|
+ } else {
|
|
|
+ if (ObjectUtils.isNotNull(itemIds)) {
|
|
|
+ lambdaQueryWrapper.apply("find_in_set(id,'" + itemIds + "')");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(lambdaQueryWrapper);
|
|
|
+ BigDecimal amountCr = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountCrUsd = new BigDecimal(MagicValues.ZERO);
|
|
|
+ BigDecimal amountCrLoc = new BigDecimal(MagicValues.ZERO);
|
|
|
+ List<FeeCenterReports> feeCenterReportsList = new ArrayList<>();
|
|
|
+ for (FeeCenter item : feeCenterList) {
|
|
|
+ BCorps bCorps = bCorpsLists.stream().filter(e -> e.getId().equals(item.getCorpId())).findFirst().orElse(null);
|
|
|
+ if (bCorps != null) {
|
|
|
+ item.setCorpCnName(bCorps.getShortName());
|
|
|
+ }
|
|
|
+ if (MagicValues.C.equals(item.getDc())) {
|
|
|
+ if (MagicValues.USD.equals(item.getCurCode())) {
|
|
|
+ amountCrUsd = amountCrUsd.add(item.getAmountLoc());
|
|
|
+ } else if (MagicValues.CNY.equals(item.getCurCode())) {
|
|
|
+ amountCr = amountCr.add(item.getAmount());
|
|
|
+ } else {
|
|
|
+ BigDecimal usd = ibCurrencyService.converter(item.getCurCode(), item.getAmount(), item.getDc(), "1");
|
|
|
+ amountCrUsd = amountCrUsd.add(usd);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ FeeCenterReports feeCenterReports = new FeeCenterReports();
|
|
|
+ feeCenterReports.setRemarks(item.getRemarks());
|
|
|
+ feeCenterReports.setPid(item.getPid());
|
|
|
+ feeCenterReports.setCorpCnName(item.getCorpCnName());
|
|
|
+ feeCenterReports.setFeeCnName(item.getFeeCnName());
|
|
|
+ feeCenterReports.setAmountC(item.getAmount());
|
|
|
+ feeCenterReports.setAmountUsdC(item.getAmountLoc());
|
|
|
+ feeCenterReports.setHblno(item.getMblno());
|
|
|
+ feeCenterReports.setAmount(item.getQuantity() + "*" + item.getPrice());
|
|
|
+ feeCenterReportsList.add(feeCenterReports);
|
|
|
+ }
|
|
|
+ agent.setFeeCenterReportsList(feeCenterReportsList);
|
|
|
+ amountCrLoc = amountCrLoc.add(ibCurrencyService.converterCny(MagicValues.USD, amountCrUsd, MagicValues.C, "1")).add(amountCr);
|
|
|
+ agent.setAmount(amountCr);
|
|
|
+ agent.setAmountUsd(amountCrUsd);
|
|
|
+ agent.setAmountLoc(amountCrLoc);
|
|
|
+ agent.setDept(dept);
|
|
|
+ map.put(MagicValues.DATA, agent);
|
|
|
+ } else {
|
|
|
+ map.put(MagicValues.DATA, null);
|
|
|
+ }
|
|
|
}
|
|
|
return R.data(map);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
+ public Agent revokeCollectionOfPayments(Agent agent) {
|
|
|
+ if (agent.getId() == null) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ agent.setOrderStatus("录入");
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getStlPid, agent.getId())
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0)
|
|
|
+ .eq(FeeCenter::getDc, "D"));
|
|
|
+ if (feeCenterList.isEmpty()) {
|
|
|
+ throw new RuntimeException("未找到费用明细");
|
|
|
+ }
|
|
|
+ String billNo = feeCenterList.stream().map(FeeCenter::getBillNo).filter(Objects::nonNull).distinct().collect(Collectors.joining(","));
|
|
|
+ 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 + "')"));
|
|
|
+ if (agentList.isEmpty()) {
|
|
|
+ throw new RuntimeException("未查到贸易代理单据信息");
|
|
|
+ }
|
|
|
+ List<Long> agentIdList = agentList.stream().map(Agent::getId).distinct().collect(Collectors.toList());
|
|
|
+ BigDecimal firstPaidInPayment = feeCenterList.stream().filter(e -> "SFK".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal finalPaymentReceived = feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ for (Agent item : agentList) {
|
|
|
+ if (new BigDecimal("0").compareTo(firstPaidInPayment) != 0) {
|
|
|
+ item.setFirstPaidInPayment(new BigDecimal("0.00"));
|
|
|
+ item.setFirstPaidInPaymentDate(null);
|
|
|
+ item.setOrderStatus("未收货款");
|
|
|
+ item.setWhetherReceivedDownPayments("未收货款");
|
|
|
+ }
|
|
|
+ if (new BigDecimal("0").compareTo(finalPaymentReceived) != 0) {
|
|
|
+ BigDecimal amount = feeCenterList.stream().filter(e -> "WK".equals(e.getFeeCode()) && item.getContractNo().equals(e.getBillNo()))
|
|
|
+ .map(FeeCenter::getAmountLoc).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ item.setFinalPaymentReceived(item.getFinalPaymentReceived().add(amount));
|
|
|
+ item.setFinalPaymentReceivedDate(null);
|
|
|
+ item.setOrderStatus("部分货款");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
+ .eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgentItems::getIsDeleted, 0)
|
|
|
+ .in(AgentItems::getPid, agentIdList));
|
|
|
+ if (!agentItemsList.isEmpty()) {
|
|
|
+ for (AgentItems items : agentItemsList) {
|
|
|
+ if (ObjectUtils.isNull(items.getPaymentRecord())) {
|
|
|
+ items.setPaymentRecord("应收首付款/应收尾款/应付首付款/应付尾款");
|
|
|
+ }
|
|
|
+ /*if (new BigDecimal("0").compareTo(firstPaidInPayment) != 0) {
|
|
|
+ String msg = "应收首付款/已收款/时间:" + formattedDate;
|
|
|
+ items.setPaymentRecord(items.getPaymentRecord().replaceAll("应收首付款", msg));
|
|
|
+ } else if (new BigDecimal("0").compareTo(finalPaymentReceived) != 0) {
|
|
|
+ String msg = "应收尾款/已收款/时间:" + formattedDate;
|
|
|
+ items.setPaymentRecord(items.getPaymentRecord().replaceAll("应收尾款", msg));
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+ agentItemsService.updateBatchById(agentItemsList);
|
|
|
+ }
|
|
|
+ BigDecimal advanceChargeAmount = feeCenterList.stream().filter(e -> "YFK".equals(e.getFeeCode())).map(FeeCenter::getAmountLoc)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if (new BigDecimal("0").compareTo(advanceChargeAmount) != 0) {
|
|
|
+ AdvanceCharge advanceCharge = advanceChargeService.getOne(new LambdaQueryWrapper<AdvanceCharge>()
|
|
|
+ .eq(AdvanceCharge::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AdvanceCharge::getIsDeleted, 0)
|
|
|
+ .eq(AdvanceCharge::getCorpId, agentList.get(0).getDomesticConsigneeId()));
|
|
|
+ if (advanceCharge != null) {
|
|
|
+ advanceCharge.setAdvancePaymentBalance(advanceCharge.getAdvancePaymentBalance().add(advanceChargeAmount));
|
|
|
+ advanceCharge.setOutOverpaymen(advanceCharge.getOutOverpaymen().add(advanceChargeAmount));
|
|
|
+ advanceChargeService.updateById(advanceCharge);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<FeeCenter> feeCenters = new ArrayList<>();
|
|
|
+ for (FeeCenter item : feeCenterList) {
|
|
|
+ if (0 == item.getStlStatus()) {
|
|
|
+ throw new RuntimeException("费用:" + item.getFeeCnName() + "已撤销");
|
|
|
+ }
|
|
|
+ //费用明细
|
|
|
+ item.setAccBillId(0L);
|
|
|
+ item.setAccBillNo("");
|
|
|
+ item.setAccDate(null);
|
|
|
+ item.setAccAmount(item.getAmount());
|
|
|
+ item.setAccStatus(1);
|
|
|
+ item.setAccById(0L);
|
|
|
+ item.setAccByName("");
|
|
|
+ item.setStlOrgAmount(new BigDecimal("0.00"));
|
|
|
+ item.setStlCurCode("");
|
|
|
+ item.setStlAmount(new BigDecimal("0.00"));
|
|
|
+ item.setStlAmountLoc(new BigDecimal("0.00"));
|
|
|
+ item.setStlStatus(0);
|
|
|
+ item.setStlDate(null);
|
|
|
+ item.setStlById(0L);
|
|
|
+ item.setStlByName("");
|
|
|
+ item.setUnsettledAmount(item.getAmount());
|
|
|
+ item.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
+ item.setStlBillId(0L);
|
|
|
+ item.setStlBillNo("");
|
|
|
+ feeCenters.add(item);
|
|
|
+ }
|
|
|
+ feeCenterService.updateBatchById(feeCenters);
|
|
|
+ List<Long> accBillId = feeCenterList.stream().map(FeeCenter::getAccBillId).collect(Collectors.toList());
|
|
|
+ if (!accBillId.isEmpty()){
|
|
|
+ List<FinStlBillsItems> stlBillsItemsList = finStlBillsItemsService.list(new LambdaQueryWrapper<FinStlBillsItems>()
|
|
|
+ .eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FinStlBillsItems::getIsDeleted, 0)
|
|
|
+ .in(FinStlBillsItems::getAccBillId, accBillId));
|
|
|
+ if (!stlBillsItemsList.isEmpty()){
|
|
|
+ List<Long> stlPid = stlBillsItemsList.stream().map(FinStlBillsItems::getPid).collect(Collectors.toList());
|
|
|
+ finStlBillsService.removeByIds(stlPid);
|
|
|
+ finStlBillsItemsService.removeByIds(stlBillsItemsList.stream().map(FinStlBillsItems::getId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ finAccBillsService.removeByIds(accBillId);
|
|
|
+ }
|
|
|
+ updateById(agent);
|
|
|
+ this.updateBatchById(agentList);
|
|
|
+ return agent;
|
|
|
+ }
|
|
|
+
|
|
|
private FeeCenter assemblyDataSK(String businessType, Agent detail, String type, long lineNo, int sort, long deptId, String deptName, List<BFees> feesList) {
|
|
|
FeeCenter feeCenter = new FeeCenter();
|
|
|
feeCenter.setFeeType("1");
|
|
|
@@ -3532,6 +3854,7 @@ 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());
|
|
|
@@ -3567,6 +3890,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenter.setAmountLoc(detail.getPrepaidAmount());
|
|
|
if (ObjectUtils.isNotNull(detail.getExchangeRate())) {
|
|
|
feeCenter.setExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setStlExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setDiscountExrate(detail.getExchangeRate());
|
|
|
feeCenter.setPrice(detail.getPrepaidAmount().multiply(detail.getExchangeRate()));
|
|
|
feeCenter.setAmount(detail.getPrepaidAmount().multiply(detail.getExchangeRate()));
|
|
|
}
|
|
|
@@ -3585,6 +3910,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
return feeCenter;
|
|
|
} else if ("SXF".equals(type)) {
|
|
|
feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
+ feeCenter.setStlExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setDiscountExrate(detail.getExchangeRate());
|
|
|
BigDecimal prepaidAmount = detail.getPrepaidAmount().multiply(detail.getExchangeRate());
|
|
|
String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
if (ObjectUtils.isNotNull(serviceCharge)) {
|
|
|
@@ -3669,6 +3996,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenter.setAmountLoc(amount);
|
|
|
if (ObjectUtils.isNotNull(detail.getExchangeRate())) {
|
|
|
feeCenter.setExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setStlExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setDiscountExrate(detail.getExchangeRate());
|
|
|
feeCenter.setPrice(feeCenter.getAmountLoc().multiply(detail.getExchangeRate()));
|
|
|
feeCenter.setAmount(feeCenter.getAmountLoc().multiply(detail.getExchangeRate()));
|
|
|
}
|
|
|
@@ -3689,6 +4018,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
BigDecimal amount = agentItemsRList.stream().map(AgentItemsR::getThisSettlementAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
BigDecimal prepaidAmount = amount.multiply(detail.getExchangeRate());
|
|
|
+ feeCenter.setStlExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setDiscountExrate(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);
|
|
|
@@ -3733,6 +4064,7 @@ 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());
|
|
|
@@ -3768,6 +4100,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenter.setAmountLoc(detail.getPrepaidAmount());
|
|
|
if (ObjectUtils.isNotNull(detail.getExchangeRate())) {
|
|
|
feeCenter.setExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setStlExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setDiscountExrate(detail.getExchangeRate());
|
|
|
feeCenter.setPrice(detail.getPrepaidAmount().multiply(detail.getExchangeRate()));
|
|
|
feeCenter.setAmount(detail.getPrepaidAmount().multiply(detail.getExchangeRate()));
|
|
|
}
|
|
|
@@ -3787,6 +4121,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else if ("SXF".equals(type)) {
|
|
|
feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
BigDecimal prepaidAmount = detail.getPrepaidAmount().multiply(detail.getExchangeRate());
|
|
|
+ feeCenter.setStlExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setDiscountExrate(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);
|
|
|
@@ -3870,6 +4206,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenter.setAmountLoc(amount);
|
|
|
if (ObjectUtils.isNotNull(detail.getExchangeRate())) {
|
|
|
feeCenter.setExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setStlExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setDiscountExrate(detail.getExchangeRate());
|
|
|
feeCenter.setPrice(feeCenter.getAmountLoc().multiply(detail.getExchangeRate()));
|
|
|
feeCenter.setAmount(feeCenter.getAmountLoc().multiply(detail.getExchangeRate()));
|
|
|
}
|
|
|
@@ -3890,6 +4228,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
BigDecimal amount = agentItemsRList.stream().map(AgentItemsR::getThisSettlementAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
BigDecimal prepaidAmount = amount.multiply(detail.getExchangeRate());
|
|
|
+ feeCenter.setStlExrate(detail.getExchangeRate());
|
|
|
+ feeCenter.setDiscountExrate(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);
|