|
|
@@ -417,15 +417,32 @@ public class KwTransportService {
|
|
|
null : DateUtil.getDateTime(waybillOrder.getCreateTime()));
|
|
|
vo.setUpdateTime(waybillOrder.getUpdateTime() == null ?
|
|
|
null : DateUtil.getDateTime(waybillOrder.getUpdateTime()));
|
|
|
- vo.setDeficitAmount(waybillOrder.getDeficitAmount() == null ?
|
|
|
- null : String.valueOf(waybillOrder.getDeficitAmount()));
|
|
|
- BigDecimal deficitLoss = waybillOrder.getLoss() == null ? BigDecimal.valueOf(0) : waybillOrder.getLoss();
|
|
|
- BigDecimal deficitAmount = waybillOrder.getDeficitAmount() == null ? BigDecimal.valueOf(0) : waybillOrder.getDeficitAmount();
|
|
|
- BigDecimal deficitRealAmount = BigDecimal.valueOf(0);
|
|
|
+ // 货损量
|
|
|
+ BigDecimal deficitAmount = waybillOrder.getDeficitAmount() == null ?
|
|
|
+ BigDecimal.valueOf(0) : waybillOrder.getDeficitAmount();
|
|
|
+ vo.setDeficitAmount(String.valueOf(deficitAmount));
|
|
|
+ // 存在装卸货差时 计算扣亏量
|
|
|
+ BigDecimal lossAmount = BigDecimal.valueOf(0);
|
|
|
if(deficitAmount.compareTo(BigDecimal.valueOf(0)) > 0) {
|
|
|
- deficitRealAmount = deficitLoss.subtract(deficitAmount);
|
|
|
+ String lossUnit = waybillOrder.getLossUnit();
|
|
|
+ Map<String, SysDictResDto> LossUnitType = remoteSystemService.queryDictMapByType(DictTypeEnum.TAX_RATE_TYPE.getType());
|
|
|
+ SysDictResDto sysDictRes = LossUnitType.get(lossUnit);
|
|
|
+ BigDecimal loss = waybillOrder.getLoss() == null ? BigDecimal.valueOf(0) : waybillOrder.getLoss();
|
|
|
+
|
|
|
+ if(sysDictRes.getLabel().equals("%")) {
|
|
|
+ // 百分比
|
|
|
+ lossAmount = loss.multiply(waybillOrder.getLoadAmount()).divide(BigDecimal.valueOf(100));
|
|
|
+ } else {
|
|
|
+ // 千分比
|
|
|
+ lossAmount = loss.multiply(waybillOrder.getLoadAmount()).divide(BigDecimal.valueOf(1000));
|
|
|
+ }
|
|
|
+ lossAmount = deficitAmount.subtract(lossAmount);
|
|
|
+ if(lossAmount.compareTo(BigDecimal.valueOf(0)) < 0) {
|
|
|
+ lossAmount = BigDecimal.valueOf(0);
|
|
|
+ }
|
|
|
}
|
|
|
- vo.setDeficitRealAmount(deficitRealAmount.toString());
|
|
|
+ // 实际扣亏量
|
|
|
+ vo.setDeficitRealAmount(lossAmount.setScale(2).toString());
|
|
|
vo.setGoodsPriceUnit(waybillOrder.getGoodsPriceUnit() == null ?
|
|
|
null : String.valueOf(waybillOrder.getGoodsPriceUnit()));
|
|
|
returnList.add(vo);
|