|
|
@@ -17,10 +17,13 @@
|
|
|
package org.springblade.box.tube.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
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.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
@@ -39,9 +42,11 @@ import org.springblade.client.feign.ICorpsDescClient;
|
|
|
import org.springblade.client.feign.IFeesDescClient;
|
|
|
import org.springblade.client.feign.IMessageClient;
|
|
|
import org.springblade.client.feign.ISerialClient;
|
|
|
+import org.springblade.core.mp.support.Condition;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
+import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.finance.dto.ApplyDTO;
|
|
|
import org.springblade.finance.feign.IFinanceClient;
|
|
|
@@ -59,10 +64,7 @@ import java.math.BigDecimal;
|
|
|
import java.math.MathContext;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -280,7 +282,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
|
|
|
//获取订单生效、失效日期
|
|
|
Transport transport = baseMapper.selectById(transportId);
|
|
|
if (ObjectUtils.isNull(transport) || ObjectUtils.isNull(transport.getEffectiveDate()) || ObjectUtils.isNull(transport.getExpiryDate())) {
|
|
|
- throw new RuntimeException("数据不全,操作失败");
|
|
|
+ throw new RuntimeException("操作失败,合同生效日期或合同失效日期不能为空");
|
|
|
}
|
|
|
|
|
|
//最新时间
|
|
|
@@ -319,25 +321,42 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
|
|
|
//计算超期金额 并增加一条费用明细
|
|
|
BigDecimal amount = transportItem.getPrice().multiply(new BigDecimal(days), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
transportItem.setOverdueAmount(amount);
|
|
|
+ LambdaUpdateWrapper<TransportItemFees> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ lambdaUpdateWrapper.eq(TransportItemFees::getCode,transportItem.getCode())
|
|
|
+ .eq(TransportItemFees::getPid,transport.getId())
|
|
|
+ .eq(TransportItemFees::getIsDeleted,0)
|
|
|
+ .eq(TransportItemFees::getTenantId,AuthUtil.getTenantId());
|
|
|
R<FeesDesc> feesDescR = feesDescClient.getFeesByName("超期费");
|
|
|
if (feesDescR.isSuccess() && ObjectUtils.isNotNull(feesDescR.getData())) {
|
|
|
- TransportItemFees transportItemFees = new TransportItemFees();
|
|
|
- transportItemFees.setCreateUser(AuthUtil.getUserId());
|
|
|
- transportItemFees.setCreateTime(new Date());
|
|
|
- transportItemFees.setTenantId(AuthUtil.getTenantId());
|
|
|
- transportItemFees.setPid(transport.getId());
|
|
|
- transportItemFees.setFeesType(1);
|
|
|
- transportItemFees.setCode(transportItem.getCode());
|
|
|
- transportItemFees.setSort(1);
|
|
|
- transportItemFees.setItemId(feesDescR.getData().getId());
|
|
|
- transportItemFees.setCorpId(transport.getCorpId());
|
|
|
- transportItemFees.setQuantity(new BigDecimal(days));
|
|
|
- transportItemFees.setPrice(transportItem.getPrice());
|
|
|
- transportItemFees.setAmount(amount);
|
|
|
- transportItemFees.setCurrency("CNY");
|
|
|
- transportItemFees.setAutoGenerate("0");
|
|
|
- transportItemFees.setUnit(transportItem.getBoxType());
|
|
|
- transportItemFeesMapper.insert(transportItemFees);
|
|
|
+ lambdaUpdateWrapper.eq(TransportItemFees::getItemId,feesDescR.getData().getId());
|
|
|
+ TransportItemFees selectTransportItemFees = transportItemFeesMapper.selectOne(lambdaUpdateWrapper);
|
|
|
+ if (ObjectUtils.isNotNull(selectTransportItemFees)){
|
|
|
+ selectTransportItemFees.setAmount(amount);
|
|
|
+ transportItemFeesMapper.updateById(selectTransportItemFees);
|
|
|
+ }else{
|
|
|
+ TransportItemFees transportItemFees = new TransportItemFees();
|
|
|
+ transportItemFees.setCreateUser(AuthUtil.getUserId());
|
|
|
+ transportItemFees.setCreateTime(new Date());
|
|
|
+ transportItemFees.setTenantId(AuthUtil.getTenantId());
|
|
|
+ transportItemFees.setPid(transport.getId());
|
|
|
+ transportItemFees.setFeesType(1);
|
|
|
+ transportItemFees.setCode(transportItem.getCode());
|
|
|
+ transportItemFees.setSort(1);
|
|
|
+ transportItemFees.setItemId(feesDescR.getData().getId());
|
|
|
+ if (ObjectUtils.isNotNull(transport.getCorpId())){
|
|
|
+ transportItemFees.setCorpId(transport.getCorpId());
|
|
|
+ }else{
|
|
|
+ transportItemFees.setCorpId(transport.getShippingCompanyId());
|
|
|
+ }
|
|
|
+ transportItemFees.setQuantity(new BigDecimal(days));
|
|
|
+ transportItemFees.setPrice(transportItem.getPrice());
|
|
|
+ transportItemFees.setAmount(amount);
|
|
|
+ transportItemFees.setCurrency("CNY");
|
|
|
+ transportItemFees.setAutoGenerate("0");
|
|
|
+ transportItemFees.setUnit(transportItem.getBoxType());
|
|
|
+ transportItemFees.setExchangeRate(new BigDecimal("1"));
|
|
|
+ transportItemFeesMapper.insert(transportItemFees);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -362,6 +381,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
|
|
|
archivesTrajectory.setCreateUser(AuthUtil.getUserId());
|
|
|
archivesTrajectory.setCreateUserName(AuthUtil.getUserName());
|
|
|
archivesTrajectory.setTenantId(AuthUtil.getTenantId());
|
|
|
+ archivesTrajectory.setContractNo(transport.getContractNo());
|
|
|
archivesTrajectoryMapper.insert(archivesTrajectory);
|
|
|
|
|
|
transportItemList.add(transportItem);
|
|
|
@@ -465,6 +485,9 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
|
|
|
BigDecimal payAmount = new BigDecimal("0.00");
|
|
|
if (ObjectUtils.isNotNull(receivableOrderFeesList)) {
|
|
|
for (TransportItemFees transportItemFees : receivableOrderFeesList) {
|
|
|
+ if (ObjectUtils.isNull(transportItemFees.getExchangeRate())) {
|
|
|
+ throw new RuntimeException("箱号:" + transportItemFees.getCode() + ",汇率不能为空");
|
|
|
+ }
|
|
|
payAmount = payAmount.add(transportItemFees.getPrice().multiply(transportItemFees.getExchangeRate(), MathContext.DECIMAL32));
|
|
|
}
|
|
|
}
|
|
|
@@ -479,6 +502,9 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
|
|
|
BigDecimal receivableAmount = new BigDecimal("0.00");
|
|
|
if (ObjectUtils.isNotNull(payOrderFeesList)) {
|
|
|
for (TransportItemFees transportItemFees : payOrderFeesList) {
|
|
|
+ if (ObjectUtils.isNull(transportItemFees.getExchangeRate())) {
|
|
|
+ throw new RuntimeException("箱号:" + transportItemFees.getCode() + ",汇率不能为空");
|
|
|
+ }
|
|
|
receivableAmount = receivableAmount.add(transportItemFees.getPrice().multiply(transportItemFees.getExchangeRate(), MathContext.DECIMAL32));
|
|
|
}
|
|
|
}
|