|
|
@@ -12,7 +12,6 @@ import com.sckw.core.utils.StringUtils;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
import com.sckw.excel.utils.DateUtil;
|
|
|
import com.sckw.mongo.model.SckwTradeOrder;
|
|
|
-import com.sckw.report.dao.SckwTradeOrderRepository;
|
|
|
import com.sckw.report.service.param.*;
|
|
|
import com.sckw.report.service.vo.OrderListRes;
|
|
|
import com.sckw.report.service.vo.TradeOrderAppStatisticVO;
|
|
|
@@ -24,6 +23,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
|
|
|
import org.springframework.data.mongodb.core.query.Query;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.regex.Pattern;
|
|
|
@@ -39,8 +39,6 @@ import java.util.stream.Collectors;
|
|
|
@AllArgsConstructor
|
|
|
public class KwOrderService {
|
|
|
|
|
|
- private final SckwTradeOrderRepository sckwOrderRepository;
|
|
|
-
|
|
|
private final MongoTemplate mongoTemplate;
|
|
|
|
|
|
/**
|
|
|
@@ -100,14 +98,28 @@ public class KwOrderService {
|
|
|
.setPickupTypeLabel(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
|
|
|
.setLoadDetailAddressInfo(loadCityName + loadDetailAddress)
|
|
|
.setUnloadDetailAddressInfo(unloadCityName + unloadDetailAddress)
|
|
|
- .setConsignmentStatus(Objects.isNull(e.getEntrustAmount()) || Objects.isNull(e.getAmount())
|
|
|
- || e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
|
|
|
+ .setWaitEntrustAmount(getWaitEntrustAmount(e.getAmount(), e.getEntrustAmount()))
|
|
|
.setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
|
|
|
result.add(order);
|
|
|
});
|
|
|
return PageResult.build(page, pageSize, count, result);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @desc: 获取订单待分配运输量
|
|
|
+ * @author: yzc
|
|
|
+ * @date: 2023-08-25 10:32
|
|
|
+ * @Param amount:
|
|
|
+ * @Param entrustAmount:
|
|
|
+ * @return: java.math.BigDecimal
|
|
|
+ */
|
|
|
+ private BigDecimal getWaitEntrustAmount(BigDecimal amount, BigDecimal entrustAmount) {
|
|
|
+ if (Objects.isNull(amount) || Objects.isNull(entrustAmount)) {
|
|
|
+ return amount;
|
|
|
+ }
|
|
|
+ return amount.subtract(entrustAmount);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @desc: 组装query
|
|
|
* @author: yzc
|
|
|
@@ -285,20 +297,28 @@ public class KwOrderService {
|
|
|
List<TradeOrderListExport> list = new ArrayList<>();
|
|
|
AtomicInteger i = new AtomicInteger(1);
|
|
|
orders.forEach(e -> {
|
|
|
+ BigDecimal waitEntrustAmount = getWaitEntrustAmount(e.getAmount(), e.getEntrustAmount());
|
|
|
+ String loadCityName = Objects.isNull(e.getLoadCityName()) ? "" : e.getLoadCityName();
|
|
|
+ String loadDetailAddress = Objects.isNull(e.getLoadDetailAddress()) ? "" : e.getLoadDetailAddress();
|
|
|
+ String unloadCityName = Objects.isNull(e.getUnloadCityName()) ? "" : e.getUnloadCityName();
|
|
|
+ String unloadDetailAddress = Objects.isNull(e.getUnloadDetailAddress()) ? "" : e.getUnloadDetailAddress();
|
|
|
TradeOrderListExport export = BeanUtils.copyProperties(e, TradeOrderListExport.class);
|
|
|
export.setSerialNumber(String.valueOf(i.getAndIncrement()))
|
|
|
.setStatus(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
|
|
|
- .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
|
|
|
- .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
|
|
|
+ .setUnitPrice(Objects.isNull(e.getUnitPrice()) ? "0.00" : String.valueOf(e.getUnitPrice()))
|
|
|
+ .setAmount(Objects.isNull(e.getAmount()) ? "0.00" : String.valueOf(e.getAmount()))
|
|
|
+ .setPrice(Objects.isNull(e.getPrice()) ? "0.00" : String.valueOf(e.getPrice()))
|
|
|
+ .setEntrustAmount(Objects.isNull(e.getEntrustAmount()) ? "0.00" : String.valueOf(e.getEntrustAmount()))
|
|
|
+ .setActualAmount(Objects.isNull(e.getActualAmount()) ? "0.00" : String.valueOf(e.getActualAmount()))
|
|
|
+ .setWaitEntrustAmount(Objects.isNull(waitEntrustAmount) ? "0.00" : String.valueOf(waitEntrustAmount))
|
|
|
.setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
|
|
|
- .setConsignmentStatus(Objects.equals(e.getAmount(), e.getEntrustAmount()) ? "待托运" : "已托运")
|
|
|
+ .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
|
|
|
.setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()))
|
|
|
- .setUnitPrice(String.valueOf(e.getUnitPrice())).setPrice(String.valueOf(e.getPrice()))
|
|
|
- .setAmount(String.valueOf(e.getAmount())).setActualAmount(String.valueOf(e.getActualAmount()))
|
|
|
- .setLoadDetailAddressInfo(e.getLoadCityName() + e.getUnloadDetailAddress())
|
|
|
- .setUnloadDetailAddressInfo(e.getUnloadCityName() + e.getUnloadDetailAddress())
|
|
|
- .setActualAmount(Objects.isNull(e.getActualAmount()) ? "0.00" : String.valueOf(e.getActualAmount()))
|
|
|
+ .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
|
|
|
+ .setLoadDetailAddressInfo(loadCityName + loadDetailAddress)
|
|
|
+ .setUnloadDetailAddressInfo(unloadCityName + unloadDetailAddress)
|
|
|
.setStartTime(Objects.isNull(e.getStartTime()) ? null : DateUtil.dateToStr(e.getStartTime()))
|
|
|
+ .setEndTime(Objects.isNull(e.getEndTime()) ? null : DateUtil.dateToStr(e.getEndTime()))
|
|
|
.setCreateTime(DateUtil.getDateTime(e.getCreateTime()));
|
|
|
list.add(export);
|
|
|
});
|
|
|
@@ -371,14 +391,18 @@ public class KwOrderService {
|
|
|
List<SckwTradeOrder> list = mongoTemplate.find(query, SckwTradeOrder.class);
|
|
|
List<OrderListRes> result = new ArrayList<>();
|
|
|
list.forEach(e -> {
|
|
|
+ String loadCityName = Objects.isNull(e.getLoadCityName()) ? "" : e.getLoadCityName();
|
|
|
+ String loadDetailAddress = Objects.isNull(e.getLoadDetailAddress()) ? "" : e.getLoadDetailAddress();
|
|
|
+ String unloadCityName = Objects.isNull(e.getUnloadCityName()) ? "" : e.getUnloadCityName();
|
|
|
+ String unloadDetailAddress = Objects.isNull(e.getUnloadDetailAddress()) ? "" : e.getUnloadDetailAddress();
|
|
|
OrderListRes order = BeanUtils.copyProperties(e, OrderListRes.class);
|
|
|
order.setStatusLabel(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
|
|
|
.setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
|
|
|
.setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
|
|
|
.setPickupTypeLabel(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
|
|
|
- .setLoadDetailAddressInfo(e.getLoadCityName() + e.getUnloadDetailAddress())
|
|
|
- .setUnloadDetailAddressInfo(e.getUnloadCityName() + e.getUnloadDetailAddress())
|
|
|
- .setConsignmentStatus(Objects.isNull(e.getEntrustAmount()) || e.getEntrustAmount().compareTo(e.getAmount()) < 0 ? "待托运" : "已托运")
|
|
|
+ .setLoadDetailAddressInfo(loadCityName + loadDetailAddress)
|
|
|
+ .setUnloadDetailAddressInfo(unloadCityName + unloadDetailAddress)
|
|
|
+ .setWaitEntrustAmount(getWaitEntrustAmount(e.getAmount(), e.getActualAmount()))
|
|
|
.setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
|
|
|
result.add(order);
|
|
|
});
|