提交 f128b64e authored 作者: huyufan's avatar huyufan

Merge remote-tracking branch 'origin/v6.5_transport_open_20231115' into test

...@@ -222,12 +222,12 @@ public class TransportSyncServiceImpl implements TransportSyncService { ...@@ -222,12 +222,12 @@ public class TransportSyncServiceImpl implements TransportSyncService {
// 挂车 // 挂车
if (Objects.equals(truckInfoFeignVo.getTruckType(), 1)) { if (Objects.equals(truckInfoFeignVo.getTruckType(), 1)) {
truckInfoDTO.setTruckNo2(truckInfoFeignVo.getTruckNo2()); truckInfoDTO.setTruckNo2(truckInfoFeignVo.getTruckNo2());
truckInfoDTO.setLicenceImgMain2(StringUtils.isBlank(truckInfoFeignVo.getLicenceImgMain2())? null : documentFeign.getHost() + truckInfoFeignVo.getLicenceImgMain2()); truckInfoDTO.setLicenceImgMain2(StringUtils.isBlank(truckInfoFeignVo.getLicenceImgMain2())? null : documentFeign.getHost().getData() + truckInfoFeignVo.getLicenceImgMain2());
truckInfoDTO.setLicenceImgSecond2(StringUtils.isBlank(truckInfoFeignVo.getLicenceImgSecond2())? null : documentFeign.getHost() + truckInfoFeignVo.getLicenceImgSecond2()); truckInfoDTO.setLicenceImgSecond2(StringUtils.isBlank(truckInfoFeignVo.getLicenceImgSecond2())? null : documentFeign.getHost().getData() + truckInfoFeignVo.getLicenceImgSecond2());
truckInfoDTO.setLicenceImgSecond2Back(StringUtils.isBlank(truckInfoFeignVo.getLicenceImgSecond2Back())? null : documentFeign.getHost() + truckInfoFeignVo.getLicenceImgSecond2Back()); truckInfoDTO.setLicenceImgSecond2Back(StringUtils.isBlank(truckInfoFeignVo.getLicenceImgSecond2Back())? null : documentFeign.getHost().getData() + truckInfoFeignVo.getLicenceImgSecond2Back());
truckInfoDTO.setLicenceImgMain2EndTime(truckInfoFeignVo.getLicenceImgMain2EndTime()==null? null : DateUtils.formatDateTime(truckInfoFeignVo.getLicenceImgMain2EndTime()).get()); truckInfoDTO.setLicenceImgMain2EndTime(truckInfoFeignVo.getLicenceImgMain2EndTime()==null? null : DateUtils.formatDateTime(truckInfoFeignVo.getLicenceImgMain2EndTime()).get());
truckInfoDTO.setRoadTransportCertificateNo2(truckInfoFeignVo.getRoadTransportCertificateNo2()); truckInfoDTO.setRoadTransportCertificateNo2(truckInfoFeignVo.getRoadTransportCertificateNo2());
truckInfoDTO.setTransportLicenceImg2(StringUtils.isBlank(truckInfoFeignVo.getTransportLicenceImg2())? null : documentFeign.getHost() + truckInfoFeignVo.getTransportLicenceImg2()); truckInfoDTO.setTransportLicenceImg2(StringUtils.isBlank(truckInfoFeignVo.getTransportLicenceImg2())? null : documentFeign.getHost().getData() + truckInfoFeignVo.getTransportLicenceImg2());
} }
param.setTruckInfoDTO(truckInfoDTO); param.setTruckInfoDTO(truckInfoDTO);
......
...@@ -90,7 +90,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS ...@@ -90,7 +90,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
if (ans.compareTo(BigDecimal.ZERO) <= 0) { if (ans.compareTo(BigDecimal.ZERO) <= 0) {
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO); settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
} else { } else {
List<OwnerRunningWaterRecord> runningWaterRecordList = ownerRunningWaterRecordDao.getOwnerRunningWaterRecord(orderChild.getOrderNo()); /*List<OwnerRunningWaterRecord> runningWaterRecordList = ownerRunningWaterRecordDao.getOwnerRunningWaterRecord(orderChild.getOrderNo());
BigDecimal frozen = runningWaterRecordList.stream().filter(item -> { BigDecimal frozen = runningWaterRecordList.stream().filter(item -> {
return item.getRunningWaterType().equals(OwnerAccountEnum.RunningWaterStatus.FROZEN.getCode()); return item.getRunningWaterType().equals(OwnerAccountEnum.RunningWaterStatus.FROZEN.getCode());
}).map(OwnerRunningWaterRecord::getAlterationBalance).reduce(BigDecimal.ZERO, BigDecimal::add); }).map(OwnerRunningWaterRecord::getAlterationBalance).reduce(BigDecimal.ZERO, BigDecimal::add);
...@@ -129,7 +129,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS ...@@ -129,7 +129,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
ownerRunningWaterRecordDao.saveEntity(runningWaterRecord); ownerRunningWaterRecordDao.saveEntity(runningWaterRecord);
} else { } else {
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO); settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
} }*/
} }
// 开票金额 // 开票金额
......
package com.clx.performance.service.impl.settle; package com.clx.performance.service.impl.settle;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.clx.performance.component.IdGenerateSnowFlake;
import com.clx.performance.component.ThirdComponent; import com.clx.performance.component.ThirdComponent;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.OwnerAccountDao;
import com.clx.performance.dao.OwnerRunningWaterRecordDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao; import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.OrderChildSyncDTO; import com.clx.performance.dto.OrderChildSyncDTO;
import com.clx.performance.enums.IdTypeEnum;
import com.clx.performance.enums.OwnerAccountEnum;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum; import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.feign.TransportFeignService; import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.OwnerAccount;
import com.clx.performance.model.OwnerRunningWaterRecord;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.feign.transport.ThirdOrderChildBrokerParam; import com.clx.performance.param.feign.transport.ThirdOrderChildBrokerParam;
...@@ -28,6 +35,7 @@ import org.springframework.stereotype.Service; ...@@ -28,6 +35,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
import java.util.Objects; import java.util.Objects;
@Slf4j @Slf4j
...@@ -47,10 +55,17 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -47,10 +55,17 @@ public class SettlementServiceImpl implements SettlementService {
private TransportSyncService transportSyncService; private TransportSyncService transportSyncService;
@Autowired @Autowired
private OrderGoodsDao orderGoodsDao; private OrderGoodsDao orderGoodsDao;
@Autowired
private OwnerRunningWaterRecordDao ownerRunningWaterRecordDao;
@Autowired
private IdGenerateSnowFlake idGenerateSnowFlake;
@Autowired @Autowired
private TransportFeignService transportFeignService; private TransportFeignService transportFeignService;
@Autowired
private OwnerAccountDao ownerAccountDao;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -81,9 +96,50 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -81,9 +96,50 @@ public class SettlementServiceImpl implements SettlementService {
log.info("OrderChildSyncDTO信息为:{}", JSONUtil.parse(bean)); log.info("OrderChildSyncDTO信息为:{}", JSONUtil.parse(bean));
if (bean.getCode() == 0) { if (bean.getCode() == 0) {
Integer status = bean.getData().getStatus(); Integer status = bean.getData().getStatus();
BigDecimal ans = settlementOwnerDetail.getFreight().subtract(settlementOwnerDetail.getLossFreight());
if (status == 1) { if (status == 1) {
//通过风控 //通过风控
invoiceType = SettlementOwnerEnum.InvoiceType.ONLINE.getCode(); invoiceType = SettlementOwnerEnum.InvoiceType.ONLINE.getCode();
List<OwnerRunningWaterRecord> runningWaterRecordList = ownerRunningWaterRecordDao.getOwnerRunningWaterRecord(orderChild.getOrderNo());
BigDecimal frozen = runningWaterRecordList.stream().filter(item -> {
return item.getRunningWaterType().equals(OwnerAccountEnum.RunningWaterStatus.FROZEN.getCode());
}).map(OwnerRunningWaterRecord::getAlterationBalance).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal takeOut = runningWaterRecordList.stream().filter(item -> {
return item.getRunningWaterType().equals(OwnerAccountEnum.RunningWaterStatus.TAKE_OUT.getCode());
}).map(OwnerRunningWaterRecord::getAlterationBalance).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal subtract = frozen.subtract(takeOut);
if (subtract.compareTo(BigDecimal.ZERO) <= 0) {
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
}
if (subtract.subtract(ans).compareTo(BigDecimal.ZERO) >= 0) {
OwnerAccount account = ownerAccountDao.getAccountByOwnerUserNoAndAccountType(orderChild.getOwnerUserNo(),
OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode());
settlementOwnerDetail.setPrepayFreight(ans);
//生成扣除流水
OwnerRunningWaterRecord runningWaterRecord = new OwnerRunningWaterRecord();
runningWaterRecord.setOwnerUserName(orderChild.getOwnerName());
runningWaterRecord.setMobile(orderChild.getDriverMobile());
runningWaterRecord.setCreateBy("系统");
runningWaterRecord.setOrderId(orderChild.getId());
runningWaterRecord.setOrderNo(orderChild.getOrderNo());
runningWaterRecord.setRelationId(null);
runningWaterRecord.setAlterationBalance(ans);
runningWaterRecord.setFrozenBalance(ans);
runningWaterRecord.setUsableBalance(account.getUsableBalance());
runningWaterRecord.setTakeOutBalance(BigDecimal.ZERO);
runningWaterRecord.setAccountBalance(account.getAccountBalance());
runningWaterRecord.setOwnerUserNo(account.getOwnerUserNo());
runningWaterRecord.setAccountType(OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode());
runningWaterRecord.setRunningWaterType(OwnerAccountEnum.RunningWaterStatus.TAKE_OUT.getCode());
runningWaterRecord.setRunningWaterNo(idGenerateSnowFlake.nextId(IdTypeEnum.Type.TAKE_OUT.getCode()));
ownerRunningWaterRecordDao.saveEntity(runningWaterRecord);
} else {
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
}
} else { } else {
invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode(); invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode();
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论