|
|
@@ -22,14 +22,12 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springblade.client.entity.Message;
|
|
|
import org.springblade.client.feign.IMessageClient;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.BeanUtil;
|
|
|
-import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.los.Util.IDeptUtils;
|
|
|
import org.springblade.los.Util.MagicValues;
|
|
|
import org.springblade.los.basic.business.entity.BusinessType;
|
|
|
@@ -524,9 +522,18 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
if ("MYDL-STL".equals(agent.getBusinessType())) {
|
|
|
+ if ("D".equals(agent.getDc())) {
|
|
|
+ if (ObjectUtils.isNotNull(agent.getFeeCenterListD()) && !agent.getFeeCenterListD().isEmpty()) {
|
|
|
+ agent.setGoodsValue(agent.getFeeCenterListD().stream().filter(e -> "SFK,WK".contains(e.getFeeCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (ObjectUtils.isNotNull(agent.getFeeCenterListC()) && !agent.getFeeCenterListC().isEmpty()) {
|
|
|
+ agent.setGoodsValue(agent.getFeeCenterListC().stream().filter(e -> "SFK,WK".contains(e.getFeeCode())).map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }
|
|
|
+ }
|
|
|
if (ObjectUtils.isNotNull(serviceCharge)) {
|
|
|
BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
|
|
|
- BigDecimal amount = serviceChargeAmount.multiply(agent.getActualAmount()).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal amount = serviceChargeAmount.multiply(agent.getGoodsValue()).setScale(2, RoundingMode.HALF_UP);
|
|
|
if (amount.compareTo(new BigDecimal("1000")) > 0) {
|
|
|
agent.setServiceCharge(new BigDecimal("1000"));
|
|
|
} else if (amount.compareTo(new BigDecimal("50")) < 0) {
|
|
|
@@ -537,6 +544,17 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else {
|
|
|
agent.setServiceCharge(new BigDecimal("0.00"));
|
|
|
}
|
|
|
+ if ("D".equals(agent.getDc())) {
|
|
|
+ if (ObjectUtils.isNotNull(agent.getFeeCenterListD()) && !agent.getFeeCenterListD().isEmpty()) {
|
|
|
+ agent.setActualAmount(agent.getGoodsValue().add(agent.getPostElectricFee()).add(agent.getServiceCharge())
|
|
|
+ .subtract(agent.getFeeCenterListD().stream().filter(e -> "YFK".contains(e.getFeeCode()))
|
|
|
+ .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ } else {
|
|
|
+ agent.setActualAmount(agent.getGoodsValue().add(agent.getPostElectricFee()).add(agent.getServiceCharge()));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ agent.setActualAmount(agent.getGoodsValue().add(agent.getPostElectricFee()).add(agent.getServiceCharge()));
|
|
|
+ }
|
|
|
}
|
|
|
List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(agent.getFeeCenterListC()) && !agent.getFeeCenterListC().isEmpty()) {
|
|
|
@@ -557,7 +575,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
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()));
|
|
|
ydfCount = agent.getFeeCenterListC().stream().filter(e -> "YDF".equals(e.getFeeCode())).count();
|
|
|
sxfCount = agent.getFeeCenterListC().stream().filter(e -> "SXF".equals(e.getFeeCode())).count();
|
|
|
}
|
|
|
@@ -666,10 +683,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
}
|
|
|
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()));
|
|
|
- agent.setActualAmount(agent.getExchangeRate().multiply(agent.getPaymentInUsd())
|
|
|
- .subtract(agent.getFeeCenterListD().stream().filter(e -> "YFK".contains(e.getFeeCode()))
|
|
|
- .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
ydfCount = agent.getFeeCenterListD().stream().filter(e -> "YDF".equals(e.getFeeCode())).count();
|
|
|
sxfCount = agent.getFeeCenterListD().stream().filter(e -> "SXF".equals(e.getFeeCode())).count();
|
|
|
}
|
|
|
@@ -1374,8 +1387,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
advanceChargeItem.setCreateDeptName(deptName);
|
|
|
advanceChargeItem.setSrcId(agent.getId());
|
|
|
advanceChargeItem.setSrcPid(agent.getId());
|
|
|
- advanceChargeItem.setOrderNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setOrderNo(agent.getContractNo());
|
|
|
advanceChargeItem.setOverpayment(advanceChargeAmount);
|
|
|
+ advanceChargeItem.setAmountD(advanceChargeAmount);
|
|
|
advanceChargeItem.setOverpaymentType(1);
|
|
|
advanceChargeItem.setSrcOrderNo(agent.getOrderNoJoin());
|
|
|
advanceChargeItem.setBillNo(agent.getBillNoJoin());
|
|
|
@@ -1800,10 +1814,10 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
auditProecessDTO.setCorpId(declare.getCorpId());
|
|
|
auditProecessDTO.setSalesCompanyId(deptUtils.getDeptPid());
|
|
|
auditProecessDTO.setSalesCompanyName(declare.getCreateDeptName());
|
|
|
- if ("D".equals(declare.getDc())){
|
|
|
- auditProecessDTO.setReceivableAmount(declare.getActualAmount());
|
|
|
- }else{
|
|
|
- auditProecessDTO.setPayAmount(declare.getActualAmount());
|
|
|
+ if ("D".equals(declare.getDc())) {
|
|
|
+ auditProecessDTO.setReceivableAmount(feeCentersList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ } else {
|
|
|
+ auditProecessDTO.setPayAmount(feeCentersList.stream().map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
auditProecessDTO.setGrossProfit(declare.getProfit());
|
|
|
R financeProcess = auditProecessService.createFinanceProcess(auditProecessDTO);
|
|
|
@@ -1925,12 +1939,14 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
advanceChargeItem.setCreateDeptName(deptName);
|
|
|
advanceChargeItem.setSrcId(agent.getId());
|
|
|
advanceChargeItem.setSrcPid(agent.getId());
|
|
|
- advanceChargeItem.setOrderNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setOrderNo(agent.getContractNo());
|
|
|
advanceChargeItem.setOverpayment(amountSub);
|
|
|
advanceChargeItem.setOverpaymentType(0);
|
|
|
advanceChargeItem.setSrcOrderNo(agent.getBusinessNo());
|
|
|
- advanceChargeItem.setBillNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setBillNo(agent.getBillNoJoin());
|
|
|
advanceChargeItem.setIdentifier(0);
|
|
|
+ advanceChargeItem.setAmountC(amountC);
|
|
|
+ advanceChargeItem.setAmountD(amountD);
|
|
|
if (amountSub.compareTo(new BigDecimal("0")) > 0) {
|
|
|
advanceCharge.setAdvancePaymentBalance(advanceCharge.getAdvancePaymentBalance().add(amountSub));
|
|
|
advanceCharge.setInOverpayment(advanceCharge.getInOverpayment().add(amountSub));
|
|
|
@@ -2345,6 +2361,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
item.setUpdateTime(new Date());
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ item.setOperatorId(agent.getOperatorId());
|
|
|
+ item.setOperatorName(agent.getOperatorName());
|
|
|
if (ObjectUtils.isNotNull(item.getBillNo())) {
|
|
|
if (!count.isEmpty()) {
|
|
|
throw new RuntimeException("提单号不允许重复:" + item.getBillNo());
|
|
|
@@ -2396,6 +2414,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
bills.setSrcCnName(agent.getSalesmanName());
|
|
|
bills.setMblno(item.getBillNo());
|
|
|
bills.setMshipperCntyName(agent.getTradeMode());
|
|
|
+ bills.setOperatorId(agent.getOperatorId());
|
|
|
+ bills.setOperatorName(agent.getOperatorName());
|
|
|
List<AgentItems> itemsList = agentItemsList.stream().filter(e -> e.getBillNo().equals(item.getBillNo())).collect(Collectors.toList());
|
|
|
if (!itemsList.isEmpty()) {
|
|
|
bills.setQuantity(agentItemsList.stream().map(AgentItems::getQuantity).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
@@ -2860,6 +2880,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
throw new RuntimeException("请先维护费用信息");
|
|
|
}
|
|
|
Agent declare = baseMapper.selectById(agent.getId());
|
|
|
+ declare.setExchangeRate(agent.getExchangeRate());
|
|
|
List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
if ("FFSQ-SK".equals(agent.getPaidApplication())) {
|
|
|
declare.setApplyForPayment("1");
|
|
|
@@ -3080,7 +3101,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
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.setGoodsValue(feeCenterList.stream().filter(e -> "SFK,WK".contains(e.getFeeCode())).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));
|
|
|
if (ObjectUtils.isNull(stlAgent.getExchangeRate())) {
|
|
|
@@ -3109,14 +3130,6 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
stlAgent.setExchangeRate(bCurExrate.getExratePayment());
|
|
|
}
|
|
|
}
|
|
|
- if ("D".equals(stlAgent.getDc())) {
|
|
|
- stlAgent.setActualAmount(stlAgent.getExchangeRate().multiply(stlAgent.getPaymentInUsd())
|
|
|
- .subtract(feeCenterList.stream().filter(e -> "YFK".contains(e.getFeeCode()))
|
|
|
- .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
- } else {
|
|
|
- stlAgent.setActualAmount(stlAgent.getExchangeRate().multiply(stlAgent.getPaymentInUsd()));
|
|
|
- }
|
|
|
-
|
|
|
String postElectricFee = sysClient.getParamServiceByDept("post.electric.fee", AuthUtil.getTenantId(), AuthUtil.getDeptId());
|
|
|
if (ObjectUtils.isNotNull(postElectricFee)) {
|
|
|
BigDecimal postElectricFeeAmount = new BigDecimal(postElectricFee);
|
|
|
@@ -3127,7 +3140,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
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(stlAgent.getActualAmount());
|
|
|
+ BigDecimal amount = serviceChargeAmount.multiply(stlAgent.getGoodsValue());
|
|
|
if (amount.compareTo(new BigDecimal("1000")) > 0) {
|
|
|
stlAgent.setServiceCharge(new BigDecimal("1000"));
|
|
|
} else if (amount.compareTo(new BigDecimal("50")) < 0) {
|
|
|
@@ -3138,7 +3151,13 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
} else {
|
|
|
stlAgent.setServiceCharge(new BigDecimal("0.00"));
|
|
|
}
|
|
|
-
|
|
|
+ if ("D".equals(stlAgent.getDc())) {
|
|
|
+ stlAgent.setActualAmount(stlAgent.getGoodsValue().add(stlAgent.getPostElectricFee()).add(stlAgent.getServiceCharge())
|
|
|
+ .subtract(feeCenterList.stream().filter(e -> "YFK".contains(e.getFeeCode()))
|
|
|
+ .map(FeeCenter::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
|
|
+ } else {
|
|
|
+ stlAgent.setActualAmount(stlAgent.getGoodsValue().add(stlAgent.getPostElectricFee()).add(stlAgent.getServiceCharge()));
|
|
|
+ }
|
|
|
BusinessBillNo businessBillNo = new BusinessBillNo();
|
|
|
businessBillNo.setBusinessTypeId(businessType.getId());
|
|
|
businessBillNo.setCode("MYDL-STL");
|
|
|
@@ -3420,8 +3439,18 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
agentReport.setContractNo(agent.getContractNo());
|
|
|
// todo 发票
|
|
|
List<AgentFpReport> agentFpReportList = new ArrayList<>();
|
|
|
- AgentFpReport agentFpReport = new AgentFpReport();
|
|
|
- agentFpReportList.add(agentFpReport);
|
|
|
+ List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
|
|
|
+ .eq(AgentItems::getIsDeleted, 0)
|
|
|
+ .eq(AgentItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(AgentItems::getPid, billId));
|
|
|
+ for (AgentItems item :agentItemsList){
|
|
|
+ AgentFpReport agentFpReport = new AgentFpReport();
|
|
|
+ agentFpReport.setInvoiceNumber(item.getInvoiceNo());
|
|
|
+ agentFpReport.setProduct(item.getLabelProductName());
|
|
|
+ agentFpReport.setQuantity(item.getNetWeight());
|
|
|
+ agentFpReport.setMoney(item.getAmount());
|
|
|
+ agentFpReportList.add(agentFpReport);
|
|
|
+ }
|
|
|
agentReport.setAgentFpReportList(agentFpReportList);
|
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
.eq(FeeCenter::getPid, agent.getId())
|
|
|
@@ -3760,7 +3789,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
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(discountAmount);
|
|
|
+ BigDecimal amount = serviceChargeAmount.multiply(discountAmount).setScale(2,RoundingMode.HALF_UP);
|
|
|
if (amount.compareTo(new BigDecimal("1000")) > 0) {
|
|
|
agentFeeReport.setReportServiceCharge(new BigDecimal("1000"));
|
|
|
} else if (amount.compareTo(new BigDecimal("50")) < 0) {
|
|
|
@@ -3869,6 +3898,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenterReports.setHblno(item.getMblno());
|
|
|
feeCenterReports.setAmount(item.getQuantity() + "*" + item.getPrice());
|
|
|
feeCenterReports.setCntrNo(item.getCntrNo());
|
|
|
+ feeCenterReports.setExrate(item.getStlExrate());
|
|
|
feeCenterReportsList.add(feeCenterReports);
|
|
|
}
|
|
|
agent.setFeeCenterReportsList(feeCenterReportsList);
|
|
|
@@ -3952,6 +3982,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
feeCenterReports.setHblno(item.getMblno());
|
|
|
feeCenterReports.setAmount(item.getQuantity() + "*" + item.getPrice());
|
|
|
feeCenterReports.setCntrNo(item.getCntrNo());
|
|
|
+ feeCenterReports.setExrate(item.getStlExrate());
|
|
|
feeCenterReportsList.add(feeCenterReports);
|
|
|
}
|
|
|
agent.setFeeCenterReportsList(feeCenterReportsList);
|
|
|
@@ -4055,11 +4086,12 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
advanceChargeItem.setUpdateTime(new Date());
|
|
|
advanceChargeItem.setSrcId(agent.getId());
|
|
|
advanceChargeItem.setSrcPid(agent.getId());
|
|
|
- advanceChargeItem.setOrderNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setOrderNo(agent.getContractNo());
|
|
|
advanceChargeItem.setOverpayment(advanceChargeAmount);
|
|
|
+ advanceChargeItem.setAmountD(advanceChargeAmount);
|
|
|
advanceChargeItem.setOverpaymentType(0);
|
|
|
advanceChargeItem.setSrcOrderNo(agent.getBusinessNo());
|
|
|
- advanceChargeItem.setBillNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setBillNo(agent.getBillNoJoin());
|
|
|
advanceChargeItem.setIdentifier(0);
|
|
|
advanceChargeItem.setPid(advanceCharge.getId());
|
|
|
advanceChargeItemService.save(advanceChargeItem);
|
|
|
@@ -4202,12 +4234,14 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
|
|
|
advanceChargeItem.setPid(advanceCharge.getId());
|
|
|
advanceChargeItem.setSrcId(agent.getId());
|
|
|
advanceChargeItem.setSrcPid(agent.getId());
|
|
|
- advanceChargeItem.setOrderNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setOrderNo(agent.getContractNo());
|
|
|
advanceChargeItem.setOverpayment(amountSub);
|
|
|
advanceChargeItem.setOverpaymentType(1);
|
|
|
advanceChargeItem.setSrcOrderNo(agent.getBusinessNo());
|
|
|
- advanceChargeItem.setBillNo(agent.getBusinessNo());
|
|
|
+ advanceChargeItem.setBillNo(agent.getBillNoJoin());
|
|
|
advanceChargeItem.setIdentifier(0);
|
|
|
+ advanceChargeItem.setAmountC(amountC);
|
|
|
+ advanceChargeItem.setAmountD(amountD);
|
|
|
advanceChargeItemService.save(advanceChargeItem);
|
|
|
} else if (amountSub.compareTo(new BigDecimal("0")) < 0) {
|
|
|
FeeCenter feeCenter = feeCenterService.getOne(new LambdaQueryWrapper<FeeCenter>()
|