备份同步差旅申请的代码
This commit is contained in:
parent
67f89d754f
commit
81f8299d6a
|
@ -1,23 +1,40 @@
|
|||
package com.chint.application.in;
|
||||
|
||||
import com.chint.domain.service.RouteRequestDomainService;
|
||||
import com.chint.domain.value_object.SyncLegData;
|
||||
import com.chint.infrastructure.util.Result;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import static com.chint.infrastructure.constant.CommonMessageConstant.SUCCESS;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/route/request")
|
||||
public class RouteRequestController {
|
||||
|
||||
@Transactional
|
||||
@ApiOperation("根据整个行程规划单到差旅平台")
|
||||
@PostMapping("/sync/whole")
|
||||
public Result<String> syncByWholeRouterOrder(@RequestBody SyncLegData syncLegData) {
|
||||
@Autowired
|
||||
private RouteRequestDomainService routeRequestDomainService;
|
||||
|
||||
return null;
|
||||
@Transactional
|
||||
@ApiOperation("同步行程规划单到差旅平台")
|
||||
@PostMapping("/sync/whole")
|
||||
public Result<String> syncRouterOrder(@RequestBody SyncLegData syncLegData) {
|
||||
routeRequestDomainService.syncRouteRequestToSupplier(syncLegData);
|
||||
return Result.Success(SUCCESS);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@ApiOperation("取消行程规划单到差旅平台")
|
||||
@PostMapping("/sync/whole")
|
||||
public Result<String> cancelWholeRouterOrder(@RequestBody SyncLegData syncLegData) {
|
||||
routeRequestDomainService.cancelRouteRequest(syncLegData);
|
||||
return Result.Success(SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -3,10 +3,8 @@ package com.chint.domain.factoriy.order_detail;
|
|||
import com.chint.domain.aggregates.order.*;
|
||||
import com.chint.domain.aggregates.user.User;
|
||||
import com.chint.domain.exceptions.NotFoundException;
|
||||
import com.chint.domain.repository.LocationRepository;
|
||||
import com.chint.domain.repository.OrderDetailRepository;
|
||||
import com.chint.domain.repository.RouteRepository;
|
||||
import com.chint.domain.repository.UserRepository;
|
||||
import com.chint.domain.repository.*;
|
||||
import com.chint.domain.service.RouteRequestDomainService;
|
||||
import com.chint.infrastructure.util.BigDecimalCalculator;
|
||||
import com.chint.interfaces.rest.ctrip.dto.search.car.*;
|
||||
import com.chint.interfaces.rest.ctrip.dto.search.flight.*;
|
||||
|
@ -46,6 +44,13 @@ public class CTripOrderExtensionFactoryImpl implements OrderExtensionFactory {
|
|||
@Autowired
|
||||
private OrderDetailFactory orderDetailFactory;
|
||||
|
||||
@Autowired
|
||||
private RouteRequestRepository routeRequestRepository;
|
||||
|
||||
@Autowired
|
||||
private RouteRequestDomainService routeRequestDomainService;
|
||||
|
||||
|
||||
@Override
|
||||
public CarOrderDetail createCarOrderDetail(Object carOrderDetailData) {
|
||||
//获取基础信息数据
|
||||
|
@ -53,7 +58,7 @@ public class CTripOrderExtensionFactoryImpl implements OrderExtensionFactory {
|
|||
CarBasicInfo carBasicInfo = carQuickOrderInfoEntity.getBasicInfo();
|
||||
String orderNo = carBasicInfo.getOrderId();
|
||||
String journeyNo = carBasicInfo.getJourneyID();
|
||||
RouteOrder routeOrder = routeRepository.findByOrderNo(journeyNo);
|
||||
RouteOrder routeOrder = routeRequestDomainService.getRouteOrder(journeyNo);
|
||||
OrderDetail orderDetail = routeOrder.getOrderDetails()
|
||||
.stream()
|
||||
.filter(it -> it.getOrderNo().equals(orderNo))
|
||||
|
@ -76,7 +81,7 @@ public class CTripOrderExtensionFactoryImpl implements OrderExtensionFactory {
|
|||
orderFeeList.forEach(it -> {
|
||||
if (it.getFeeName().equals("取消费")) {
|
||||
carOrderDetail.setCancellationFee(it.getAmount().toString());
|
||||
if(it.getAmount() > 0){
|
||||
if (it.getAmount() > 0) {
|
||||
carOrderDetail.setOrderStatus(FSSC_CAR_STATUS_REFUND);
|
||||
} else {
|
||||
carOrderDetail.setOrderStatus(FSSC_ORDER_STATUS_CANCEL);
|
||||
|
@ -156,7 +161,7 @@ public class CTripOrderExtensionFactoryImpl implements OrderExtensionFactory {
|
|||
BasicInfo flightOrderBasicInfo = flightOrderInfoEntity.getBasicInfo();
|
||||
String orderNo = flightOrderBasicInfo.getOrderID();
|
||||
String journeyNo = flightOrderBasicInfo.getJourneyID();
|
||||
RouteOrder routeOrder = routeRepository.findByOrderNo(journeyNo);
|
||||
RouteOrder routeOrder = routeRequestDomainService.getRouteOrder(journeyNo);
|
||||
|
||||
Optional<OrderDetail> first = routeOrder
|
||||
.getOrderDetails()
|
||||
|
@ -359,7 +364,7 @@ public class CTripOrderExtensionFactoryImpl implements OrderExtensionFactory {
|
|||
Optional<OrderDetail> byOrderNo = orderDetailRepository.findByOrderNo(orderNo);
|
||||
String journeyNo = hotelOrderInfoEntity.getJourneyNo();
|
||||
|
||||
RouteOrder routeOrder = routeRepository.findByOrderNo(journeyNo).reloadStatus();
|
||||
RouteOrder routeOrder = routeRequestDomainService.getRouteOrder(journeyNo).reloadStatus();
|
||||
ApproveOrderNo approveOrderNo = null;
|
||||
User user = null;
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import com.chint.domain.aggregates.user.User;
|
|||
import com.chint.domain.exceptions.NotFoundException;
|
||||
import com.chint.domain.repository.OrderDetailRepository;
|
||||
import com.chint.domain.repository.RouteRepository;
|
||||
import com.chint.domain.repository.RouteRequestRepository;
|
||||
import com.chint.domain.repository.UserRepository;
|
||||
import com.chint.interfaces.rest.ly.dto.carorderdatapushback.PriceDetail;
|
||||
import com.chint.interfaces.rest.ly.dto.hotelorderdatapushbach.Resident;
|
||||
|
@ -56,8 +57,12 @@ public class LYOrderExtensionFactoryImpl implements OrderExtensionFactory {
|
|||
@Autowired
|
||||
private OrderDetailFactory orderDetailFactory;
|
||||
|
||||
@Autowired
|
||||
private RouteRequestRepository routeRequestRepository;
|
||||
|
||||
private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
|
||||
|
||||
|
||||
@Override
|
||||
public CarOrderDetail createCarOrderDetail(Object carOrderDetailData) {
|
||||
CarDetailResponse.DataWrapper data = (CarDetailResponse.DataWrapper) carOrderDetailData;
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
package com.chint.domain.repository;
|
||||
|
||||
|
||||
import com.chint.domain.aggregates.order.RouteRequest;
|
||||
|
||||
public interface RouteRequestRepository {
|
||||
RouteRequest findByRouteRequestNo(String routeRequestNo);
|
||||
}
|
|
@ -7,6 +7,7 @@ import com.chint.domain.aggregates.order.RouteRequestEvent;
|
|||
import com.chint.domain.factoriy.order.RouteOrderFactory;
|
||||
import com.chint.domain.repository.LegRepository;
|
||||
import com.chint.domain.repository.RouteRepository;
|
||||
import com.chint.domain.repository.RouteRequestRepository;
|
||||
import com.chint.domain.service.order_sync.SyncAdapter;
|
||||
import com.chint.domain.value_object.SyncLegData;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -35,6 +36,9 @@ public class RouteRequestDomainService {
|
|||
@Autowired
|
||||
private LegRepository legRepository;
|
||||
|
||||
@Autowired
|
||||
private RouteRequestRepository routeRequestRepository;
|
||||
|
||||
|
||||
public RouteRequest syncRouteRequestToSupplier(SyncLegData syncLegData) {
|
||||
RouteOrder routeOrder = routeRepository.queryById(syncLegData.getRouteId());
|
||||
|
@ -56,6 +60,30 @@ public class RouteRequestDomainService {
|
|||
return routeRequest;
|
||||
}
|
||||
|
||||
public void cancelRouteRequest(SyncLegData syncLegData) {
|
||||
Long routeId = syncLegData.getRouteId();
|
||||
RouteOrder routeOrder = routeRepository.queryById(routeId);
|
||||
Optional<RouteRequest> optionalRouteRequest;
|
||||
if (syncLegData.getRouteRequestId() != null) {
|
||||
//如果指定的对应的差旅申请单 , 那么取消对应的差旅申请单
|
||||
optionalRouteRequest = routeOrder.getRouteRequestList()
|
||||
.stream()
|
||||
.filter(it -> it.getId().equals(syncLegData.getRouteRequestId()))
|
||||
.findFirst();
|
||||
} else {
|
||||
//如果指定的行程单号和供应商 , 该供应商对应的差旅申请单
|
||||
optionalRouteRequest = routeOrder.getRouteRequestList()
|
||||
.stream()
|
||||
.filter(it -> it.getSupplier().equals(syncLegData.getSupplierName()))
|
||||
.findFirst();
|
||||
}
|
||||
optionalRouteRequest.ifPresent(it -> {
|
||||
it.addEvent(RouteRequestEvent.cancel(it.getSupplier()));
|
||||
syncAdapter.of(it.getSupplier()).cancelRouteRequest(it);
|
||||
});
|
||||
routeRepository.save(routeOrder);
|
||||
}
|
||||
|
||||
|
||||
//获取目前已经同步到供应商的差旅申请单
|
||||
private RouteRequest getRouteRequest(RouteOrder routeOrder, List<Long> legIds, String supplier) {
|
||||
|
@ -85,4 +113,13 @@ public class RouteRequestDomainService {
|
|||
.ifPresent(it::setLeg));
|
||||
return routeRequest;
|
||||
}
|
||||
|
||||
public RouteOrder getRouteOrder(String journeyNo) {
|
||||
RouteOrder byOrderNo = routeRepository.findByOrderNo(journeyNo);
|
||||
if (byOrderNo == null) {
|
||||
RouteRequest byRouteRequestNo = routeRequestRepository.findByRouteRequestNo(journeyNo);
|
||||
byOrderNo = routeRepository.queryById(byRouteRequestNo.getRouteId());
|
||||
}
|
||||
return byOrderNo;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ import com.chint.domain.factoriy.order.RouteOrderFactory;
|
|||
import com.chint.domain.factoriy.order_detail.OrderDetailFactory;
|
||||
import com.chint.domain.repository.*;
|
||||
import com.chint.domain.service.OrderDomainService;
|
||||
import com.chint.domain.service.RouteRequestDomainService;
|
||||
import com.chint.domain.service.order_sync.SyncAdapter;
|
||||
import com.chint.domain.value_object.ApprovalSimpleData;
|
||||
import com.chint.domain.value_object.ApproveRouteData;
|
||||
|
@ -88,6 +89,9 @@ public class LegEventHandler implements LegEventService {
|
|||
@Autowired
|
||||
private OrderDomainService orderDomainService;
|
||||
|
||||
@Autowired
|
||||
private RouteRequestDomainService routeRequestDomainService;
|
||||
|
||||
@Value("${chint.envMark}")
|
||||
private String envMark;
|
||||
|
||||
|
@ -218,7 +222,7 @@ public class LegEventHandler implements LegEventService {
|
|||
public ResultContainer routeUpdateOrder(RouteUpdateOrderCommand command) {
|
||||
OrderLegData data = command.getData();
|
||||
String orderNo = data.getSelfOrderNo();
|
||||
RouteOrder routeOrder = routeRepository.findByOrderNo(orderNo);
|
||||
RouteOrder routeOrder = routeRequestDomainService.getRouteOrder(orderNo);
|
||||
//获取行程规划单创建者作为该订单
|
||||
String employeeNo = routeOrder.getUserId();
|
||||
User byUserEmployeeNo = userRepository.findByUserEmployeeNo(employeeNo);
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.List;
|
|||
@Data
|
||||
public class SyncLegData {
|
||||
private Long routeId;
|
||||
private Long routeRequestId;
|
||||
private List<Long> routeIds;
|
||||
private List<Long> legIds;
|
||||
private String supplierName;
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
package com.chint.infrastructure.repository;
|
||||
|
||||
import com.chint.domain.aggregates.order.RouteRequest;
|
||||
import com.chint.domain.repository.RouteRequestRepository;
|
||||
import com.chint.infrastructure.repository.jdbc.JdbcRouteRequestRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public class RouteRequestRepositoryImpl implements RouteRequestRepository {
|
||||
|
||||
@Autowired
|
||||
private JdbcRouteRequestRepository jdbcRouteRequestRepository;
|
||||
|
||||
@Override
|
||||
public RouteRequest findByRouteRequestNo(String routeRequestNo) {
|
||||
return jdbcRouteRequestRepository.findByRouteRequestNo(routeRequestNo);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package com.chint.infrastructure.repository.jdbc;
|
||||
|
||||
import com.chint.domain.aggregates.order.RouteRequest;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface JdbcRouteRequestRepository extends CrudRepository<RouteRequest, Long> {
|
||||
RouteRequest findByRouteRequestNo(String routeRequestNo);
|
||||
|
||||
}
|
|
@ -196,7 +196,7 @@ public class UserHttpRequestImpl implements UserHttpRequest {
|
|||
.findFirst()
|
||||
.ifPresent(it -> {
|
||||
User byUserEmployeeNo = userRepository.findByUserEmployeeNo(user.getEmployeeNo());
|
||||
if(byUserEmployeeNo == null){
|
||||
if (byUserEmployeeNo == null) {
|
||||
userRepository.save(
|
||||
getDataFromUserSFData(user, it)
|
||||
);
|
||||
|
@ -290,6 +290,12 @@ public class UserHttpRequestImpl implements UserHttpRequest {
|
|||
//根据入账公司没有找到部门编码的话,直接获取主岗编码
|
||||
deptCode = user.lowestDeptCode();
|
||||
}
|
||||
|
||||
if (deptCode == null) {
|
||||
//如果还是空的话 , 就返回null
|
||||
return null;
|
||||
}
|
||||
|
||||
//清除部门编码里面的字母
|
||||
return deptCode.replaceAll("\\D", "");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue