Compare commits

..

3 Commits

Author SHA1 Message Date
Superdandan 3ec2668433 修改差旅申请单同步逻辑 2024-04-13 10:39:05 +08:00
Superdandan fe6252d23f Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	src/main/java/com/chint/application/in/RouteRequestController.java
#	src/main/java/com/chint/domain/factoriy/order_record/CTripOrderRecordExtensionFactory.java
2024-04-13 10:11:28 +08:00
Superdandan ba6c824fd0 备份 2024-04-08 22:21:31 +08:00
4 changed files with 23 additions and 33 deletions

View File

@ -42,8 +42,8 @@ public class LegRes {
private String originDescription;
@ApiModelProperty("目的地详细")
private String destinationDescription;
private String supplier;
private String supplierName;
private List<String> supplierList;
private List<String> supplierNameList;
private Integer legStatus;
private String changeReason;
@ -85,6 +85,14 @@ public class LegRes {
}
legRes.setOriginLocation(LocationRes.copyFrom(leg.getOriginLocation()));
legRes.setDestinationLocation(LocationRes.copyFrom(leg.getDestinationLocation()));
if (legRes.getSupplierList() == null) {
legRes.setSupplierList(new ArrayList<>());
}
if (legRes.getSupplierNameList() == null) {
legRes.setSupplierNameList(new ArrayList<>());
}
return legRes;
}
}

View File

@ -17,5 +17,6 @@ public interface OrderDetailFactory {
TrainOrderDetail buildTrainWithRouteOrderAndOrderDetail(RouteOrder routeOrder, Optional<OrderDetail> orderDetail);
HotelOrderDetail buildHotelWithRouteOrderAndOrderDetail(RouteOrder routeOrder, OrderDetail orderDetail);
CarOrderDetail buildCarWithRouteOrderAndOrderDetail(RouteOrder routeOrder, OrderDetail orderDetail);
}

View File

@ -2,8 +2,6 @@ package com.chint.domain.service;
import com.chint.application.dtos.response.LegRes;
import com.chint.domain.aggregates.order.*;
import com.chint.domain.aggregates.supplier.Supplier;
import com.chint.domain.aggregates.supplier.SupplierProduct;
import com.chint.domain.exceptions.LegEventException;
import com.chint.domain.factoriy.leg_event.LegEventFactory;
import com.chint.domain.repository.*;
@ -12,7 +10,6 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import static com.chint.infrastructure.constant.CommonMessageConstant.LEG_CHANGE_MAX_ERROR;
import static com.chint.infrastructure.constant.LegConstant.*;
@ -171,6 +168,13 @@ public class LegDomainService {
//通过查看供应商的商品类型来进行同步
legItems = supplierDomainService.ifCanSync(legItems, supplierName);
legItems.forEach(Leg::reloadStatus);
queryLocation(legItems);
return legItems;
}
public List<Leg> syncLegExclusive(RouteOrder routeOrder, List<Leg> legItems, String supplierName) {
List<Long> alreadySyncLegs = routeOrder.getRouteRequestList()
.stream()
.filter(it -> it.reloadStatus().getStatus().equals(ROUTE_REQUEST_STATUS_SYNC))
@ -196,7 +200,6 @@ public class LegDomainService {
List<Leg> res = new ArrayList<>(needSyncLegs);
res.addAll(belongLegsAndSync);
res.forEach(Leg::reloadStatus);
queryLocation(res);
return res;
}
@ -216,8 +219,8 @@ public class LegDomainService {
.map(RouteRequestLeg::getLegId)
.toList();
if (legIds.contains(legRes.getLegId())) {
legRes.setSupplier(routeRequest.getSupplier());
legRes.setSupplierName(routeRequest.getSupplierName());
legRes.getSupplierList().add(routeRequest.getSupplier());
legRes.getSupplierNameList().add(routeRequest.getSupplierName());
}
}
}

View File

@ -2,7 +2,6 @@ package com.chint.domain.service;
import com.chint.domain.aggregates.order.*;
import com.chint.domain.aggregates.supplier.Supplier;
import com.chint.domain.aggregates.supplier.SupplierProduct;
import com.chint.domain.exceptions.CommandException;
import com.chint.domain.factoriy.leg_event.LegEventFactory;
import com.chint.domain.factoriy.order.RouteOrderFactory;
@ -15,6 +14,7 @@ import com.chint.domain.value_object.SyncLegData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@ -109,6 +109,7 @@ public class RouteRequestDomainService {
public void cancelRouteRequest(SyncLegData syncLegData) {
List<Long> legIds = syncLegData.getLegIds();
Long routeId = syncLegData.getRouteId();
RouteOrder routeOrder = routeRepository.queryById(routeId);
Optional<RouteRequest> optionalRouteRequest;
@ -138,7 +139,7 @@ public class RouteRequestDomainService {
if (supplierOptional.isPresent()) {
collect = legs
.stream()
.collect(Collectors.partitioningBy(leg -> supplierDomainService.ifCanCancel(leg,it.getSupplier())));
.collect(Collectors.partitioningBy(leg -> supplierDomainService.ifCanCancel(leg, it.getSupplier()) || legIds.contains(leg.getLegId())));
List<Leg> orderedLegs = collect.get(false);
if (!orderedLegs.isEmpty()) {
it.reloadGenerateRequestLegs(orderedLegs);
@ -160,29 +161,6 @@ public class RouteRequestDomainService {
it.getRouteRequestLegList()
.forEach(requestLeg -> requestLeg.getLeg().addEvent(legEventFactory.creatLegEvent(LEG_EVENT_APPROVAL)));
}
// Map<Boolean, List<Leg>> collect = legs
// .stream()
// .collect(Collectors.partitioningBy(leg -> {
// Integer legStatus = leg.reloadStatus().getLegStatus();
// return (legStatus.equals(LEG_STATUS_ORDERED) || legStatus.equals(LEG_STATUS_PAYED) || legStatus.equals(LEG_STATUS_FINISH))
// && leg.getLegType().equals(LEG_TYPE_AIRPLANE);
// }));
// List<Leg> orderedLegs = collect.get(true);
// if (!orderedLegs.isEmpty()) {
// it.reloadGenerateRequestLegs(orderedLegs);
// syncAdapter.of(it.getSupplier()).syncRouteRequest(it);
// it.addEvent(RouteRequestEvent.sync(it.getSupplier()));
// List<Leg> notOrderLegs = collect.get(false);
// notOrderLegs.forEach(leg -> leg.addEvent(legEventFactory.creatLegEvent(LEG_EVENT_APPROVAL)));
// } else {
// it.addEvent(RouteRequestEvent.cancel(it.getSupplier()));
// getLegInfoFromRouteOrder(it, routeOrder);
// syncAdapter.of(it.getSupplier()).cancelRouteRequest(it);
// it.getRouteRequestLegList()
// .forEach(requestLeg -> requestLeg.getLeg().addEvent(legEventFactory.creatLegEvent(LEG_EVENT_APPROVAL)));
// }
});
routeRepository.save(routeOrder);
}