|
@@ -153,6 +153,9 @@ public class KwtConsignOrderService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
public KwtTransportCommonService transportCommonService;
|
|
public KwtTransportCommonService transportCommonService;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ KwtLogisticsOrderGoodsService logisticsOrderGoodsService;
|
|
|
|
|
+
|
|
|
@Autowired
|
|
@Autowired
|
|
|
KwtWaybillOrderService waybillOrderService;
|
|
KwtWaybillOrderService waybillOrderService;
|
|
|
|
|
|
|
@@ -212,24 +215,24 @@ public class KwtConsignOrderService {
|
|
|
/**.eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId())*/);
|
|
/**.eq(KwtWaybillOrder::getEntId, LoginUserHolder.getEntId())*/);
|
|
|
JSONObject statistics = new JSONObject();
|
|
JSONObject statistics = new JSONObject();
|
|
|
//合理损耗
|
|
//合理损耗
|
|
|
- BigDecimal loss = order.getLoss() == null ? new BigDecimal("0.00") : order.getLoss();
|
|
|
|
|
|
|
+ BigDecimal loss = order.getLoss() == null ? NumberConstant.ZERO_TWO : order.getLoss();
|
|
|
//派车量
|
|
//派车量
|
|
|
- BigDecimal sendCarWeighNumber = new BigDecimal("0.00");
|
|
|
|
|
|
|
+ BigDecimal sendCarWeighNumber = NumberConstant.ZERO_TWO;
|
|
|
//装货量
|
|
//装货量
|
|
|
- BigDecimal loadAmountNumber = new BigDecimal("0.00");
|
|
|
|
|
|
|
+ BigDecimal loadAmountNumber = NumberConstant.ZERO_TWO;
|
|
|
//卸货量
|
|
//卸货量
|
|
|
- BigDecimal unloadAmountNumber = new BigDecimal("0.00");
|
|
|
|
|
|
|
+ BigDecimal unloadAmountNumber = NumberConstant.ZERO_TWO;
|
|
|
/**亏吨量/吨->装货量-卸货量
|
|
/**亏吨量/吨->装货量-卸货量
|
|
|
* 合理损耗值=已委托量*合理损耗
|
|
* 合理损耗值=已委托量*合理损耗
|
|
|
扣亏量/吨->亏吨量-合理损耗值 扣亏量/吨->亏吨量-合理损耗值(分配量(委托量)*合理损耗)*/
|
|
扣亏量/吨->亏吨量-合理损耗值 扣亏量/吨->亏吨量-合理损耗值(分配量(委托量)*合理损耗)*/
|
|
|
//亏吨量
|
|
//亏吨量
|
|
|
- BigDecimal defectiveWeighNumber = new BigDecimal("0.00");
|
|
|
|
|
|
|
+ BigDecimal defectiveWeighNumber = NumberConstant.ZERO_TWO;
|
|
|
//扣亏量/吨
|
|
//扣亏量/吨
|
|
|
- BigDecimal deductWeighNumber = new BigDecimal("0.00");
|
|
|
|
|
|
|
+ BigDecimal deductWeighNumber = NumberConstant.ZERO_TWO;
|
|
|
if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
|
|
if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
|
|
|
for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
|
|
for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
|
|
|
//派车量
|
|
//派车量
|
|
|
- BigDecimal sendCarWeigh = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
|
|
|
|
|
|
|
+ BigDecimal sendCarWeigh = kwtWaybillOrder.getEntrustAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getEntrustAmount();
|
|
|
/**亏吨量/吨->装货量-卸货量
|
|
/**亏吨量/吨->装货量-卸货量
|
|
|
* 合理损耗值=装货量*合理损耗
|
|
* 合理损耗值=装货量*合理损耗
|
|
|
扣亏量/吨->亏吨量-合理损耗值
|
|
扣亏量/吨->亏吨量-合理损耗值
|
|
@@ -240,13 +243,13 @@ public class KwtConsignOrderService {
|
|
|
按照趟次=运输运价
|
|
按照趟次=运输运价
|
|
|
*/
|
|
*/
|
|
|
//已委托量
|
|
//已委托量
|
|
|
- BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
|
|
|
|
|
|
|
+ BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getEntrustAmount();
|
|
|
//合理损耗值
|
|
//合理损耗值
|
|
|
BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
|
|
BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
|
|
|
//亏吨量
|
|
//亏吨量
|
|
|
- BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
|
|
|
|
|
|
|
+ BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getDeficitAmount();
|
|
|
//扣亏量/吨
|
|
//扣亏量/吨
|
|
|
- BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
|
|
|
|
|
|
|
+ BigDecimal deduct = defectiveWeigh.compareTo(NumberConstant.ZERO_TWO) == 0 ? NumberConstant.ZERO_TWO : defectiveWeigh.subtract(multiply);
|
|
|
sendCarWeighNumber = sendCarWeighNumber.add(sendCarWeigh);
|
|
sendCarWeighNumber = sendCarWeighNumber.add(sendCarWeigh);
|
|
|
if (kwtWaybillOrder.getLoadAmount() != null) {
|
|
if (kwtWaybillOrder.getLoadAmount() != null) {
|
|
|
loadAmountNumber = loadAmountNumber.add(kwtWaybillOrder.getLoadAmount());
|
|
loadAmountNumber = loadAmountNumber.add(kwtWaybillOrder.getLoadAmount());
|
|
@@ -302,19 +305,19 @@ public class KwtConsignOrderService {
|
|
|
if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
|
|
if (CollectionUtils.isNotEmpty(kwtWaybillOrders)) {
|
|
|
for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
|
|
for (KwtWaybillOrder kwtWaybillOrder : kwtWaybillOrders) {
|
|
|
//派车量
|
|
//派车量
|
|
|
- BigDecimal sendCarWeigh = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
|
|
|
|
|
|
|
+ BigDecimal sendCarWeigh = kwtWaybillOrder.getEntrustAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getEntrustAmount();
|
|
|
/**亏吨量/吨->装货量-卸货量
|
|
/**亏吨量/吨->装货量-卸货量
|
|
|
* 合理损耗值=装货量*合理损耗
|
|
* 合理损耗值=装货量*合理损耗
|
|
|
扣亏量/吨->亏吨量-合理损耗值
|
|
扣亏量/吨->亏吨量-合理损耗值
|
|
|
*/
|
|
*/
|
|
|
//已委托量
|
|
//已委托量
|
|
|
- BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
|
|
|
|
|
|
|
+ BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getEntrustAmount();
|
|
|
//合理损耗值
|
|
//合理损耗值
|
|
|
BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
|
|
BigDecimal multiply = entrustAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
|
|
|
//亏吨量
|
|
//亏吨量
|
|
|
- BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
|
|
|
|
|
|
|
+ BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getDeficitAmount();
|
|
|
//扣亏量/吨
|
|
//扣亏量/吨
|
|
|
- BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
|
|
|
|
|
|
|
+ BigDecimal deduct = defectiveWeigh.compareTo(NumberConstant.ZERO_TWO) == 0 ? NumberConstant.ZERO_TWO : defectiveWeigh.subtract(multiply);
|
|
|
sendCarWeighNumber = sendCarWeighNumber.add(sendCarWeigh);
|
|
sendCarWeighNumber = sendCarWeighNumber.add(sendCarWeigh);
|
|
|
if (kwtWaybillOrder.getLoadAmount() != null) {
|
|
if (kwtWaybillOrder.getLoadAmount() != null) {
|
|
|
loadAmountNumber = loadAmountNumber.add(kwtWaybillOrder.getLoadAmount());
|
|
loadAmountNumber = loadAmountNumber.add(kwtWaybillOrder.getLoadAmount());
|
|
@@ -371,20 +374,20 @@ public class KwtConsignOrderService {
|
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
|
|
|
.eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
|
|
.eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
|
|
|
//合理损耗
|
|
//合理损耗
|
|
|
- BigDecimal loss = order.getLoss() == null ? new BigDecimal("0.00") : order.getLoss();
|
|
|
|
|
|
|
+ BigDecimal loss = order.getLoss() == null ? NumberConstant.ZERO_TWO : order.getLoss();
|
|
|
/**亏吨量/吨->装货量-卸货量
|
|
/**亏吨量/吨->装货量-卸货量
|
|
|
* 合理损耗值=装货量*合理损耗
|
|
* 合理损耗值=装货量*合理损耗
|
|
|
扣亏量/吨->亏吨量-合理损耗值
|
|
扣亏量/吨->亏吨量-合理损耗值
|
|
|
*/
|
|
*/
|
|
|
- BigDecimal loadAmount = kwtWaybillOrder.getLoadAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getLoadAmount();
|
|
|
|
|
|
|
+ BigDecimal loadAmount = kwtWaybillOrder.getLoadAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getLoadAmount();
|
|
|
//已委托量
|
|
//已委托量
|
|
|
- BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
|
|
|
|
|
|
|
+ BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getEntrustAmount();
|
|
|
//合理损耗值
|
|
//合理损耗值
|
|
|
BigDecimal multiply = loadAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
|
|
BigDecimal multiply = loadAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
|
|
|
//亏吨量
|
|
//亏吨量
|
|
|
- BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
|
|
|
|
|
|
|
+ BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getDeficitAmount();
|
|
|
//扣亏量/吨
|
|
//扣亏量/吨
|
|
|
-// BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
|
|
|
|
|
|
|
+// BigDecimal deduct = defectiveWeigh.compareTo(NumberConstant.ZERO_TWO) == 0 ? NumberConstant.ZERO_TWO : defectiveWeigh.subtract(multiply);
|
|
|
BigDecimal deduct = commonService.deficitLossAmount(loadAmount, defectiveWeigh, loss, order.getLossUnit());
|
|
BigDecimal deduct = commonService.deficitLossAmount(loadAmount, defectiveWeigh, loss, order.getLossUnit());
|
|
|
carWaybillVo.setLOrderId(String.valueOf(kwtWaybillOrder.getLOrderId()));
|
|
carWaybillVo.setLOrderId(String.valueOf(kwtWaybillOrder.getLOrderId()));
|
|
|
carWaybillVo.setLOrderNo(order.getLOrderNo());
|
|
carWaybillVo.setLOrderNo(order.getLOrderNo());
|
|
@@ -648,20 +651,20 @@ public class KwtConsignOrderService {
|
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
|
|
.eq(StringUtils.isNotBlank(kwtWaybillOrder.getId()), KwtWaybillOrderTicket::getWOrderId, kwtWaybillOrder.getId())
|
|
|
.eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
|
|
.eq(KwtWaybillOrderTicket::getType, NumberConstant.TWO));
|
|
|
//合理损耗
|
|
//合理损耗
|
|
|
- BigDecimal loss = order.getLoss() == null ? new BigDecimal("0.00") : order.getLoss();
|
|
|
|
|
|
|
+ BigDecimal loss = order.getLoss() == null ? NumberConstant.ZERO_TWO : order.getLoss();
|
|
|
/**亏吨量/吨->装货量-卸货量
|
|
/**亏吨量/吨->装货量-卸货量
|
|
|
* 合理损耗值=装货量*合理损耗
|
|
* 合理损耗值=装货量*合理损耗
|
|
|
扣亏量/吨->亏吨量-合理损耗值
|
|
扣亏量/吨->亏吨量-合理损耗值
|
|
|
*/
|
|
*/
|
|
|
- BigDecimal loadAmount = kwtWaybillOrder.getLoadAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getLoadAmount();
|
|
|
|
|
|
|
+ BigDecimal loadAmount = kwtWaybillOrder.getLoadAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getLoadAmount();
|
|
|
//已委托量
|
|
//已委托量
|
|
|
- BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getEntrustAmount();
|
|
|
|
|
|
|
+ BigDecimal entrustAmount = kwtWaybillOrder.getEntrustAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getEntrustAmount();
|
|
|
//合理损耗值
|
|
//合理损耗值
|
|
|
BigDecimal multiply = loadAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
|
|
BigDecimal multiply = loadAmount.multiply(loss.divide(BigDecimal.valueOf(1000L)));
|
|
|
//亏吨量
|
|
//亏吨量
|
|
|
- BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
|
|
|
|
|
|
|
+ BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? NumberConstant.ZERO_TWO : kwtWaybillOrder.getDeficitAmount();
|
|
|
//扣亏量/吨
|
|
//扣亏量/吨
|
|
|
-// BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
|
|
|
|
|
|
|
+// BigDecimal deduct = defectiveWeigh.compareTo(NumberConstant.ZERO_TWO) == 0 ? NumberConstant.ZERO_TWO : defectiveWeigh.subtract(multiply);
|
|
|
// BigDecimal decimal = commonService.deficitAmount();
|
|
// BigDecimal decimal = commonService.deficitAmount();
|
|
|
BigDecimal deduct = commonService.deficitLossAmount(loadAmount, defectiveWeigh, loss, order.getLossUnit());
|
|
BigDecimal deduct = commonService.deficitLossAmount(loadAmount, defectiveWeigh, loss, order.getLossUnit());
|
|
|
carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
|
|
carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
|
|
@@ -771,7 +774,7 @@ public class KwtConsignOrderService {
|
|
|
carWaybillVo.setUnloadDateTime(null);
|
|
carWaybillVo.setUnloadDateTime(null);
|
|
|
}
|
|
}
|
|
|
carWaybillVo.setDefectiveWeigh("0.00");
|
|
carWaybillVo.setDefectiveWeigh("0.00");
|
|
|
- carWaybillVo.setDeduct(new BigDecimal("0.00"));
|
|
|
|
|
|
|
+ carWaybillVo.setDeduct(NumberConstant.ZERO_TWO);
|
|
|
carWaybillVo.setLoss(order.getLoss());
|
|
carWaybillVo.setLoss(order.getLoss());
|
|
|
SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TAX_RATE_TYPE.getType(), order.getLossUnit());
|
|
SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.TAX_RATE_TYPE.getType(), order.getLossUnit());
|
|
|
carWaybillVo.setLossLabel(sysDictResDto == null ? null : sysDictResDto.getLabel());
|
|
carWaybillVo.setLossLabel(sysDictResDto == null ? null : sysDictResDto.getLabel());
|
|
@@ -863,23 +866,22 @@ public class KwtConsignOrderService {
|
|
|
String key = String.format(RedisConstant.LOGISTICS_ORDER_FINISH_KEY, orderFinishDTO.getId());
|
|
String key = String.format(RedisConstant.LOGISTICS_ORDER_FINISH_KEY, orderFinishDTO.getId());
|
|
|
if (redisLockUtil.tryLock(key)) {
|
|
if (redisLockUtil.tryLock(key)) {
|
|
|
try {
|
|
try {
|
|
|
- KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
|
|
|
- .eq(KwtLogisticsOrder::getId, id));
|
|
|
|
|
|
|
+ KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderMapper.selectById(id);
|
|
|
if (logisticsOrder == null) {
|
|
if (logisticsOrder == null) {
|
|
|
throw new BusinessException("采购订单-完结订单-物流单据不存在!");
|
|
throw new BusinessException("采购订单-完结订单-物流单据不存在!");
|
|
|
}
|
|
}
|
|
|
-// BigDecimal totalLoadAmount = logisticsOrder.getTotalLoadAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getTotalLoadAmount();
|
|
|
|
|
-// if (totalLoadAmount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
|
|
|
|
|
-// throw new BusinessException("完结订单,实装量不能大于分配量");
|
|
|
|
|
-// }
|
|
|
|
|
|
|
+ /*BigDecimal totalLoadAmount = logisticsOrder.getTotalLoadAmount() == null ? NumberConstant.ZERO_TWO : logisticsOrder.getTotalLoadAmount();
|
|
|
|
|
+ if (totalLoadAmount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
|
|
|
|
|
+ throw new BusinessException("完结订单,实装量不能大于分配量");
|
|
|
|
|
+ }
|
|
|
//todo 2023-09-01 根据要求去除校验 物流订单手动完结,实装量可大于分配量,实卸量目前暂定不可大于实装量;根据计费方式,当对应实装或实卸大于分配量时自然完结
|
|
//todo 2023-09-01 根据要求去除校验 物流订单手动完结,实装量可大于分配量,实卸量目前暂定不可大于实装量;根据计费方式,当对应实装或实卸大于分配量时自然完结
|
|
|
-// BigDecimal amount = logisticsOrder.getAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getAmount();
|
|
|
|
|
-// if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
|
|
|
|
|
-// throw new BusinessException("完结订单,装货量不能大于运输总量");
|
|
|
|
|
-// }
|
|
|
|
|
-// if (orderFinishDTO.getUnloadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
|
|
|
|
|
-// throw new BusinessException("完结订单,填写卸货量不能大于装货量");
|
|
|
|
|
-// }
|
|
|
|
|
|
|
+ BigDecimal amount = logisticsOrder.getAmount() == null ? NumberConstant.ZERO_TWO : logisticsOrder.getAmount();
|
|
|
|
|
+ if (amount.compareTo(orderFinishDTO.getLoadAmount()) < 0) {
|
|
|
|
|
+ throw new BusinessException("完结订单,装货量不能大于运输总量");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (orderFinishDTO.getUnloadAmount().compareTo(orderFinishDTO.getLoadAmount()) > 0) {
|
|
|
|
|
+ throw new BusinessException("完结订单,填写卸货量不能大于装货量");
|
|
|
|
|
+ }*/
|
|
|
/**订单状态验证*/
|
|
/**订单状态验证*/
|
|
|
if (!LogisticsOrderEnum.WAIT_DELIVERY.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))
|
|
if (!LogisticsOrderEnum.WAIT_DELIVERY.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))
|
|
|
&& !LogisticsOrderEnum.IN_TRANSIT.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))) {
|
|
&& !LogisticsOrderEnum.IN_TRANSIT.getStatus().equals(String.valueOf(logisticsOrder.getStatus()))) {
|
|
@@ -891,7 +893,7 @@ public class KwtConsignOrderService {
|
|
|
throw new BusinessException("检测您现在有运单正在执行中,该订单目前不可完结,请先将运单执行完毕!");
|
|
throw new BusinessException("检测您现在有运单正在执行中,该订单目前不可完结,请先将运单执行完毕!");
|
|
|
}
|
|
}
|
|
|
//修改单据本身数据
|
|
//修改单据本身数据
|
|
|
- BigDecimal ignoreAmount = logisticsOrder.getAmount().subtract(orderFinishDTO.getLoadAmount() == null ? new BigDecimal("0.00") : logisticsOrder.getLoadAmount());
|
|
|
|
|
|
|
+ BigDecimal ignoreAmount = logisticsOrder.getAmount().subtract(orderFinishDTO.getLoadAmount() == null ? NumberConstant.ZERO_TWO : logisticsOrder.getLoadAmount());
|
|
|
logisticsOrder.setTotalLoadAmount(orderFinishDTO.getLoadAmount());
|
|
logisticsOrder.setTotalLoadAmount(orderFinishDTO.getLoadAmount());
|
|
|
logisticsOrder.setTotalUnloadAmount(orderFinishDTO.getUnloadAmount());
|
|
logisticsOrder.setTotalUnloadAmount(orderFinishDTO.getUnloadAmount());
|
|
|
logisticsOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
|
|
logisticsOrder.setStatus(LogisticsOrderEnum.HAVE_FINISHED.getCode());
|
|
@@ -900,6 +902,7 @@ public class KwtConsignOrderService {
|
|
|
logisticsOrder.setIgnoreAmount(ignoreAmount);
|
|
logisticsOrder.setIgnoreAmount(ignoreAmount);
|
|
|
kwtLogisticsOrderMapper.updateById(logisticsOrder);
|
|
kwtLogisticsOrderMapper.updateById(logisticsOrder);
|
|
|
updateLogisticOrderTrack(logisticsOrder.getId(), LogisticsOrderEnum.HAVE_FINISHED, orderFinishDTO.getRemark());
|
|
updateLogisticOrderTrack(logisticsOrder.getId(), LogisticsOrderEnum.HAVE_FINISHED, orderFinishDTO.getRemark());
|
|
|
|
|
+
|
|
|
//获取物流订单下的子单
|
|
//获取物流订单下的子单
|
|
|
/**完结订单-对应物流订单下子订单都要进行完结*/
|
|
/**完结订单-对应物流订单下子订单都要进行完结*/
|
|
|
List<KwtLogisticsOrder> kwtLogisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
List<KwtLogisticsOrder> kwtLogisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
@@ -909,8 +912,6 @@ public class KwtConsignOrderService {
|
|
|
//需要修改的mongodb数据
|
|
//需要修改的mongodb数据
|
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
|
if (!org.springframework.util.CollectionUtils.isEmpty(kwtLogisticsOrders)) {
|
|
if (!org.springframework.util.CollectionUtils.isEmpty(kwtLogisticsOrders)) {
|
|
|
- //修改单据状态
|
|
|
|
|
-// List<Long> ids = kwtLogisticsOrders.stream().map(KwtLogisticsOrder::getId).collect(Collectors.toList());
|
|
|
|
|
//修改单据剩余运输量
|
|
//修改单据剩余运输量
|
|
|
kwtLogisticsOrders.forEach(kwtLogisticsOrder -> {
|
|
kwtLogisticsOrders.forEach(kwtLogisticsOrder -> {
|
|
|
BigDecimal subtract = kwtLogisticsOrder.getAmount().subtract(kwtLogisticsOrder.getTotalLoadAmount());
|
|
BigDecimal subtract = kwtLogisticsOrder.getAmount().subtract(kwtLogisticsOrder.getTotalLoadAmount());
|
|
@@ -920,25 +921,13 @@ public class KwtConsignOrderService {
|
|
|
map.put("id", kwtLogisticsOrder.getId());
|
|
map.put("id", kwtLogisticsOrder.getId());
|
|
|
map.put("ignoreAmount", subtract);
|
|
map.put("ignoreAmount", subtract);
|
|
|
list.add(map);
|
|
list.add(map);
|
|
|
-// updateMongoDbByLogisticsOrder(kwtLogisticsOrder.getId(), orderFinishDTO, subtract);
|
|
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
/**是否是一级订单,是->推送至贸易,否,数据推送至物流订单上级*/
|
|
/**是否是一级订单,是->推送至贸易,否,数据推送至物流订单上级*/
|
|
|
if (logisticsOrder.getPid() == null && "1".equals(logisticsOrder.getType())) {
|
|
if (logisticsOrder.getPid() == null && "1".equals(logisticsOrder.getType())) {
|
|
|
//数据推送至贸易订单
|
|
//数据推送至贸易订单
|
|
|
CompleteLogisticsOrderParam tradeOrder = new CompleteLogisticsOrderParam();
|
|
CompleteLogisticsOrderParam tradeOrder = new CompleteLogisticsOrderParam();
|
|
|
- //todo 2023-09-07 修改为不传递总量,只传递当前单据页面传递值
|
|
|
|
|
- //获取实际装货量-实际卸货量
|
|
|
|
|
-// Map<String, BigDecimal> map = kwtLogisticsOrderMapper.countAmountByTradeOrderId(logisticsOrder.getTOrderId());
|
|
|
|
|
- //获取是否订单已经全部处理完成
|
|
|
|
|
- List<Integer> statusList = new ArrayList<>();
|
|
|
|
|
- statusList.add(LogisticsOrderEnum.TO_BE_PLANNED.getCode());
|
|
|
|
|
- statusList.add(LogisticsOrderEnum.PENDING_ORDER.getCode());
|
|
|
|
|
- statusList.add(LogisticsOrderEnum.WAIT_DELIVERY.getCode());
|
|
|
|
|
- statusList.add(LogisticsOrderEnum.IN_TRANSIT.getCode());
|
|
|
|
|
- List<KwtLogisticsOrder> logisticsOrders = kwtLogisticsOrderMapper.selectList(new LambdaQueryWrapper<KwtLogisticsOrder>()
|
|
|
|
|
- .eq(KwtLogisticsOrder::getTOrderId, logisticsOrder.getTOrderId())
|
|
|
|
|
- .in(KwtLogisticsOrder::getStatus, statusList));
|
|
|
|
|
tradeOrder.setTOrderId(logisticsOrder.getTOrderId());
|
|
tradeOrder.setTOrderId(logisticsOrder.getTOrderId());
|
|
|
tradeOrder.setActualLoadAmount(orderFinishDTO.getLoadAmount());
|
|
tradeOrder.setActualLoadAmount(orderFinishDTO.getLoadAmount());
|
|
|
tradeOrder.setActualUnloadAmount(orderFinishDTO.getUnloadAmount());
|
|
tradeOrder.setActualUnloadAmount(orderFinishDTO.getUnloadAmount());
|
|
@@ -950,8 +939,9 @@ public class KwtConsignOrderService {
|
|
|
log.info("贸易订单手动完结订单异常,传递信息:{},返回信息:{}", JSONObject.toJSONString(tradeOrder), JSONObject.toJSONString(httpResult));
|
|
log.info("贸易订单手动完结订单异常,传递信息:{},返回信息:{}", JSONObject.toJSONString(tradeOrder), JSONObject.toJSONString(httpResult));
|
|
|
throw new BusinessException("单据完结出现错误!" + httpResult.getMsg());
|
|
throw new BusinessException("单据完结出现错误!" + httpResult.getMsg());
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
CreateOrCancelLogisticsOrderParam param = new CreateOrCancelLogisticsOrderParam();
|
|
CreateOrCancelLogisticsOrderParam param = new CreateOrCancelLogisticsOrderParam();
|
|
|
- param.setTOrderId(Long.valueOf(logisticsOrder.getTOrderId()));
|
|
|
|
|
|
|
+ param.setTOrderId(logisticsOrder.getTOrderId());
|
|
|
param.setEntrustAmount(orderFinishDTO.getLoadAmount().subtract(logisticsOrder.getAmount()));
|
|
param.setEntrustAmount(orderFinishDTO.getLoadAmount().subtract(logisticsOrder.getAmount()));
|
|
|
param.setUpdateBy(LoginUserHolder.getUserId());
|
|
param.setUpdateBy(LoginUserHolder.getUserId());
|
|
|
param.setUpdateByName(LoginUserHolder.getUserName());
|
|
param.setUpdateByName(LoginUserHolder.getUserName());
|
|
@@ -1182,7 +1172,6 @@ public class KwtConsignOrderService {
|
|
|
// return HttpResult.ok("承运订单-分包托运完结订单成功");
|
|
// return HttpResult.ok("承运订单-分包托运完结订单成功");
|
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* 托运订单-完结订单-修改本身数据
|
|
* 托运订单-完结订单-修改本身数据
|
|
|
*
|
|
*
|
|
@@ -1279,8 +1268,8 @@ public class KwtConsignOrderService {
|
|
|
}};
|
|
}};
|
|
|
WaybillCountVo waybillOrderCount = kwtWaybillOrderMapper.findWaybillOrderCount(map);
|
|
WaybillCountVo waybillOrderCount = kwtWaybillOrderMapper.findWaybillOrderCount(map);
|
|
|
OrderFinishVO orderFinishVO = new OrderFinishVO();
|
|
OrderFinishVO orderFinishVO = new OrderFinishVO();
|
|
|
- orderFinishVO.setLoadAmount(waybillOrderCount == null ? new BigDecimal("0.00") : waybillOrderCount.getLoadAmount());
|
|
|
|
|
- orderFinishVO.setUnloadAmount(waybillOrderCount == null ? new BigDecimal("0.00") : waybillOrderCount.getUnloadAmount());
|
|
|
|
|
|
|
+ orderFinishVO.setLoadAmount(waybillOrderCount == null ? NumberConstant.ZERO_TWO : waybillOrderCount.getLoadAmount());
|
|
|
|
|
+ orderFinishVO.setUnloadAmount(waybillOrderCount == null ? NumberConstant.ZERO_TWO : waybillOrderCount.getUnloadAmount());
|
|
|
orderFinishVO.setNumber(waybillOrderCount == null ? NumberConstant.ZERO : waybillOrderCount.getTotalComplete());
|
|
orderFinishVO.setNumber(waybillOrderCount == null ? NumberConstant.ZERO : waybillOrderCount.getTotalComplete());
|
|
|
orderFinishVO.setAmount(finishVO.getAmount());
|
|
orderFinishVO.setAmount(finishVO.getAmount());
|
|
|
return HttpResult.ok(orderFinishVO);
|
|
return HttpResult.ok(orderFinishVO);
|
|
@@ -2213,20 +2202,20 @@ public class KwtConsignOrderService {
|
|
|
|
|
|
|
|
private void computeCompareTotalPrice(StatisticsResultVO resultVO, StatisticsByOrderVO currentWeek, StatisticsByOrderVO lastWeek) {
|
|
private void computeCompareTotalPrice(StatisticsResultVO resultVO, StatisticsByOrderVO currentWeek, StatisticsByOrderVO lastWeek) {
|
|
|
Integer flag = 1;
|
|
Integer flag = 1;
|
|
|
- BigDecimal chainRatio = new BigDecimal("0.00");
|
|
|
|
|
- if (currentWeek.getTotalPrice().compareTo(new BigDecimal("0.00")) == 0
|
|
|
|
|
- && lastWeek.getTotalPrice().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
|
|
- chainRatio = new BigDecimal("0.00");
|
|
|
|
|
- } else if (currentWeek.getTotalPrice().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
|
|
|
|
+ BigDecimal chainRatio = NumberConstant.ZERO_TWO;
|
|
|
|
|
+ if (currentWeek.getTotalPrice().compareTo(NumberConstant.ZERO_TWO) == 0
|
|
|
|
|
+ && lastWeek.getTotalPrice().compareTo(NumberConstant.ZERO_TWO) == 0) {
|
|
|
|
|
+ chainRatio = NumberConstant.ZERO_TWO;
|
|
|
|
|
+ } else if (currentWeek.getTotalPrice().compareTo(NumberConstant.ZERO_TWO) == 0) {
|
|
|
chainRatio = chainRatio.subtract(new BigDecimal("100.00"));
|
|
chainRatio = chainRatio.subtract(new BigDecimal("100.00"));
|
|
|
flag = 2;
|
|
flag = 2;
|
|
|
- } else if (lastWeek.getTotalPrice().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
|
|
|
|
+ } else if (lastWeek.getTotalPrice().compareTo(NumberConstant.ZERO_TWO) == 0) {
|
|
|
chainRatio = new BigDecimal("100.00").subtract(chainRatio);
|
|
chainRatio = new BigDecimal("100.00").subtract(chainRatio);
|
|
|
} else {
|
|
} else {
|
|
|
chainRatio = (currentWeek.getTotalPrice().subtract(lastWeek.getTotalPrice())).divide(lastWeek.getTotalPrice(), NumberConstant.SIX, RoundingMode.HALF_UP)
|
|
chainRatio = (currentWeek.getTotalPrice().subtract(lastWeek.getTotalPrice())).divide(lastWeek.getTotalPrice(), NumberConstant.SIX, RoundingMode.HALF_UP)
|
|
|
.multiply(new BigDecimal("100.00")).setScale(NumberConstant.TWO, RoundingMode.HALF_UP);
|
|
.multiply(new BigDecimal("100.00")).setScale(NumberConstant.TWO, RoundingMode.HALF_UP);
|
|
|
}
|
|
}
|
|
|
- if (chainRatio.compareTo(new BigDecimal("0.00")) == -1) {
|
|
|
|
|
|
|
+ if (chainRatio.compareTo(NumberConstant.ZERO_TWO) == -1) {
|
|
|
flag = 2;
|
|
flag = 2;
|
|
|
}
|
|
}
|
|
|
StatisticsTotalPriceVO priceVO = new StatisticsTotalPriceVO();
|
|
StatisticsTotalPriceVO priceVO = new StatisticsTotalPriceVO();
|
|
@@ -2240,20 +2229,20 @@ public class KwtConsignOrderService {
|
|
|
|
|
|
|
|
private void computeCompareAmount(StatisticsResultVO resultVO, StatisticsByOrderVO currentWeek, StatisticsByOrderVO lastWeek) {
|
|
private void computeCompareAmount(StatisticsResultVO resultVO, StatisticsByOrderVO currentWeek, StatisticsByOrderVO lastWeek) {
|
|
|
Integer amountFlag = 1;
|
|
Integer amountFlag = 1;
|
|
|
- BigDecimal amountChainRatio = new BigDecimal("0.00");
|
|
|
|
|
- if (currentWeek.getAmount().compareTo(new BigDecimal("0.00")) == 0
|
|
|
|
|
- && lastWeek.getAmount().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
|
|
- amountChainRatio = new BigDecimal("0.00");
|
|
|
|
|
- } else if (currentWeek.getAmount().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
|
|
|
|
+ BigDecimal amountChainRatio = NumberConstant.ZERO_TWO;
|
|
|
|
|
+ if (currentWeek.getAmount().compareTo(NumberConstant.ZERO_TWO) == 0
|
|
|
|
|
+ && lastWeek.getAmount().compareTo(NumberConstant.ZERO_TWO) == 0) {
|
|
|
|
|
+ amountChainRatio = NumberConstant.ZERO_TWO;
|
|
|
|
|
+ } else if (currentWeek.getAmount().compareTo(NumberConstant.ZERO_TWO) == 0) {
|
|
|
amountChainRatio = amountChainRatio.subtract(new BigDecimal("100.00"));
|
|
amountChainRatio = amountChainRatio.subtract(new BigDecimal("100.00"));
|
|
|
amountFlag = 2;
|
|
amountFlag = 2;
|
|
|
- } else if (lastWeek.getAmount().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
|
|
|
|
+ } else if (lastWeek.getAmount().compareTo(NumberConstant.ZERO_TWO) == 0) {
|
|
|
amountChainRatio = new BigDecimal("100.00").subtract(amountChainRatio);
|
|
amountChainRatio = new BigDecimal("100.00").subtract(amountChainRatio);
|
|
|
} else {
|
|
} else {
|
|
|
amountChainRatio = (currentWeek.getAmount().subtract(lastWeek.getAmount())).divide(lastWeek.getAmount(), NumberConstant.SIX, RoundingMode.HALF_UP)
|
|
amountChainRatio = (currentWeek.getAmount().subtract(lastWeek.getAmount())).divide(lastWeek.getAmount(), NumberConstant.SIX, RoundingMode.HALF_UP)
|
|
|
.multiply(new BigDecimal("100.00")).setScale(NumberConstant.TWO, RoundingMode.HALF_UP);
|
|
.multiply(new BigDecimal("100.00")).setScale(NumberConstant.TWO, RoundingMode.HALF_UP);
|
|
|
}
|
|
}
|
|
|
- if (amountChainRatio.compareTo(new BigDecimal("0.00")) == -1) {
|
|
|
|
|
|
|
+ if (amountChainRatio.compareTo(NumberConstant.ZERO_TWO) == -1) {
|
|
|
amountFlag = 2;
|
|
amountFlag = 2;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -2269,20 +2258,20 @@ public class KwtConsignOrderService {
|
|
|
|
|
|
|
|
private void computeCompareWaitingAmount(StatisticsResultVO resultVO, StatisticsByOrderVO currentWeek, StatisticsByOrderVO lastWeek) {
|
|
private void computeCompareWaitingAmount(StatisticsResultVO resultVO, StatisticsByOrderVO currentWeek, StatisticsByOrderVO lastWeek) {
|
|
|
Integer flag = 1;
|
|
Integer flag = 1;
|
|
|
- BigDecimal chainRatio = new BigDecimal("0.00");
|
|
|
|
|
- if (currentWeek.getWaitingAmount().compareTo(new BigDecimal("0.00")) == 0
|
|
|
|
|
- && lastWeek.getWaitingAmount().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
|
|
- chainRatio = new BigDecimal("0.00");
|
|
|
|
|
- } else if (currentWeek.getWaitingAmount().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
|
|
|
|
+ BigDecimal chainRatio = NumberConstant.ZERO_TWO;
|
|
|
|
|
+ if (currentWeek.getWaitingAmount().compareTo(NumberConstant.ZERO_TWO) == 0
|
|
|
|
|
+ && lastWeek.getWaitingAmount().compareTo(NumberConstant.ZERO_TWO) == 0) {
|
|
|
|
|
+ chainRatio = NumberConstant.ZERO_TWO;
|
|
|
|
|
+ } else if (currentWeek.getWaitingAmount().compareTo(NumberConstant.ZERO_TWO) == 0) {
|
|
|
chainRatio = chainRatio.subtract(new BigDecimal("100.00"));
|
|
chainRatio = chainRatio.subtract(new BigDecimal("100.00"));
|
|
|
flag = 2;
|
|
flag = 2;
|
|
|
- } else if (lastWeek.getWaitingAmount().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
|
|
|
|
+ } else if (lastWeek.getWaitingAmount().compareTo(NumberConstant.ZERO_TWO) == 0) {
|
|
|
chainRatio = new BigDecimal("100.00").subtract(chainRatio);
|
|
chainRatio = new BigDecimal("100.00").subtract(chainRatio);
|
|
|
} else {
|
|
} else {
|
|
|
chainRatio = (currentWeek.getWaitingAmount().subtract(lastWeek.getWaitingAmount())).divide(lastWeek.getWaitingAmount(), NumberConstant.SIX, RoundingMode.HALF_UP)
|
|
chainRatio = (currentWeek.getWaitingAmount().subtract(lastWeek.getWaitingAmount())).divide(lastWeek.getWaitingAmount(), NumberConstant.SIX, RoundingMode.HALF_UP)
|
|
|
.multiply(new BigDecimal("100.00")).setScale(NumberConstant.TWO, RoundingMode.HALF_UP);
|
|
.multiply(new BigDecimal("100.00")).setScale(NumberConstant.TWO, RoundingMode.HALF_UP);
|
|
|
}
|
|
}
|
|
|
- if (chainRatio.compareTo(new BigDecimal("0.00")) == -1) {
|
|
|
|
|
|
|
+ if (chainRatio.compareTo(NumberConstant.ZERO_TWO) == -1) {
|
|
|
flag = 2;
|
|
flag = 2;
|
|
|
}
|
|
}
|
|
|
/**待分配量*/
|
|
/**待分配量*/
|