fix:修复高压结算查询数据不完全的问题
This commit is contained in:
parent
6a76da4f15
commit
4f64d16ca4
|
@ -0,0 +1,169 @@
|
||||||
|
package com.chint.domain.aggregates.approval.platform;
|
||||||
|
|
||||||
|
import com.chint.domain.aggregates.order.*;
|
||||||
|
import com.chint.domain.aggregates.user.User;
|
||||||
|
import com.chint.domain.repository.LegRepository;
|
||||||
|
import com.chint.domain.repository.LocationRepository;
|
||||||
|
import com.chint.domain.repository.UserRepository;
|
||||||
|
import com.chint.domain.service.supplier.SupplierConstantUtil;
|
||||||
|
import com.chint.infrastructure.constant.BPMConstant;
|
||||||
|
import com.chint.infrastructure.util.DaysUtil;
|
||||||
|
import com.chint.infrastructure.util.Json;
|
||||||
|
import com.chint.interfaces.rest.base.PostRequest;
|
||||||
|
import com.chint.interfaces.rest.bpm.dot.BPMBaseResponse;
|
||||||
|
import com.chint.interfaces.rest.bpm.dto.BPMBaseRequest;
|
||||||
|
import com.chint.interfaces.rest.bpm.dto.BPMResponse;
|
||||||
|
import com.chint.interfaces.rest.bpm.dto.ExceedStandardDto;
|
||||||
|
import com.chint.interfaces.rest.ctrip.CTripEstimateRequest;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import static com.chint.infrastructure.constant.LegConstant.LEG_TYPE_HOTEL;
|
||||||
|
import static com.chint.infrastructure.constant.UtilConstant.KEEP_TWO_DECIMAL_ZERO;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class ApprovalH3BPMMethod {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PostRequest postRequest;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private LocationRepository locationRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CTripEstimateRequest cTripEstimateRequest;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserRepository userRepository;
|
||||||
|
@Autowired
|
||||||
|
private LegRepository legRepository;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* H3BPM
|
||||||
|
*/
|
||||||
|
public BPMResponse H3BPMSubmitWorkflow(String url, String workflowCode, Object entityObject, String employeeNo) {
|
||||||
|
BPMBaseRequest bpmRequest = new BPMBaseRequest();
|
||||||
|
String entityParamValues = Json.gson().toJson(entityObject);
|
||||||
|
bpmRequest.setWorkflowCode(workflowCode)
|
||||||
|
.setUserCode(employeeNo)//sf号
|
||||||
|
.setFinishStart(true)//true:会自动流转到下一审批点,false:停在手工填写节点
|
||||||
|
.setEntityParamValues(entityParamValues);
|
||||||
|
BPMBaseResponse bpmBaseResponse = postRequest.post(url, bpmRequest, BPMBaseResponse.class);
|
||||||
|
log.info("response = " + bpmBaseResponse);
|
||||||
|
return bpmBaseResponse.getD();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExceedStandardDto creatAuditParamByCar(OrderDetail orderDetail) {
|
||||||
|
CarOrderDetail carOrderDetail = orderDetail.getCarOrderDetail();
|
||||||
|
ExceedStandardDto exceedStandardDto = new ExceedStandardDto();
|
||||||
|
String supplierName = orderDetail.getSupplierName();
|
||||||
|
exceedStandardDto.setOrderType(BPMConstant.EXCEED_STANDARD_TYPE_CAR)
|
||||||
|
.setOrderSource(SupplierConstantUtil.etaSupplierName(supplierName))
|
||||||
|
.setOrderNo(carOrderDetail.getOrderNo())
|
||||||
|
.setExcessAmount(BigDecimal.valueOf(Double.parseDouble(carOrderDetail.getOrderAmount())))
|
||||||
|
.setReason(carOrderDetail.getOverStandardReason());
|
||||||
|
return exceedStandardDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExceedStandardDto creatAuditParamByTrain(OrderDetail orderDetail) {
|
||||||
|
TrainOrderDetail trainOrderDetail = orderDetail.getTrainOrderDetail();
|
||||||
|
ExceedStandardDto exceedStandardDto = new ExceedStandardDto();
|
||||||
|
String supplierName = SupplierConstantUtil.etaSupplierName(orderDetail.getSupplierName());
|
||||||
|
exceedStandardDto.setOrderType(BPMConstant.EXCEED_STANDARD_TYPE_TRAIN)
|
||||||
|
.setSeatingStandard(trainOrderDetail.getSeatName())
|
||||||
|
.setOrderSource(supplierName)
|
||||||
|
.setOrderNo(trainOrderDetail.getOrderNo())
|
||||||
|
.setExcessAmount(BigDecimal.valueOf(Double.parseDouble(trainOrderDetail.getOrderAmount())))
|
||||||
|
.setReason(trainOrderDetail.getOverStandardReason());
|
||||||
|
return exceedStandardDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExceedStandardDto creatAuditParamByHotel(OrderDetail orderDetail, RouteOrder routeOrder) {
|
||||||
|
HotelOrderDetail hotelOrderDetail = orderDetail.getHotelOrderDetail();
|
||||||
|
ExceedStandardDto exceedStandardDto = new ExceedStandardDto();
|
||||||
|
Long legId = orderDetail.getLegId();
|
||||||
|
// 差旅标准金额
|
||||||
|
BigDecimal standardPrice = new BigDecimal("0");
|
||||||
|
|
||||||
|
// 定义用于计算标准价格的函数
|
||||||
|
Function<Leg, BigDecimal> calculateStandardPrice = leg -> {
|
||||||
|
String standardTotalPrice = leg.getEstimateAmount() == null ? "0" : leg.getEstimateAmount();
|
||||||
|
BigDecimal bigStandardPrice = new BigDecimal(standardTotalPrice);
|
||||||
|
int days = DaysUtil.calculateNightsBetweenDates(LocalDate.from(leg.getStartTime()), LocalDate.from(leg.getEndTime()));
|
||||||
|
return days > 0 ? bigStandardPrice.divide(new BigDecimal(days), 3, RoundingMode.HALF_UP) : bigStandardPrice;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 当 legId 为 null 时的处理逻辑
|
||||||
|
Supplier<BigDecimal> handleNullLegId = () -> {
|
||||||
|
Optional<Location> optById = locationRepository.findOptById(orderDetail.getOriginId());
|
||||||
|
return optById.map(location -> {
|
||||||
|
Long cityId = location.getCityId();
|
||||||
|
if (cityId != null) {
|
||||||
|
String maxPrice = cTripEstimateRequest.hotelMaxPrice(cityId, routeOrder.getUserId(), routeOrder.getStandardLevel());
|
||||||
|
return maxPrice != null ? new BigDecimal(maxPrice) : new BigDecimal(KEEP_TWO_DECIMAL_ZERO);
|
||||||
|
} else {
|
||||||
|
return new BigDecimal(KEEP_TWO_DECIMAL_ZERO);
|
||||||
|
}
|
||||||
|
}).orElse(new BigDecimal(KEEP_TWO_DECIMAL_ZERO));
|
||||||
|
};
|
||||||
|
BigDecimal standardPriceFromQuery = handleNullLegId.get();
|
||||||
|
if (orderDetail.getPrice() != null && orderDetail.getProductType().equals(LEG_TYPE_HOTEL)) {
|
||||||
|
standardPrice = !standardPriceFromQuery.equals(new BigDecimal(KEEP_TWO_DECIMAL_ZERO)) ? standardPriceFromQuery :
|
||||||
|
calculateStandardPrice.apply(legRepository.findByLegId(legId));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 金额计算
|
||||||
|
BigDecimal bigTotalPrice = new BigDecimal(orderDetail.getPrice() == null ? "0" : orderDetail.getPrice()); // 获取酒店需要支付的总价格
|
||||||
|
int actualDays = DaysUtil.calculateNightsBetweenDates(LocalDate.from(orderDetail.getStartTime()), LocalDate.from(orderDetail.getEndTime()));
|
||||||
|
BigDecimal result = bigTotalPrice.subtract(standardPrice.multiply(BigDecimal.valueOf(actualDays)));
|
||||||
|
BigDecimal divide = actualDays > 0 ? result.divide(new BigDecimal(actualDays), 3, RoundingMode.HALF_UP) : result;
|
||||||
|
|
||||||
|
// 超标总金额
|
||||||
|
String supplierName = SupplierConstantUtil.etaSupplierName(orderDetail.getSupplierName());
|
||||||
|
exceedStandardDto.setOrderType(BPMConstant.EXCEED_STANDARD_TYPE_HOTEL)
|
||||||
|
.setHotelStandard(String.valueOf(standardPrice)) // 差旅标准
|
||||||
|
.setHouseLayout(hotelOrderDetail.getRoomTypeName())
|
||||||
|
.setHotelName(hotelOrderDetail.getHotelName())
|
||||||
|
.setOrderSource(supplierName)
|
||||||
|
.setOrderNo(hotelOrderDetail.getOrderNo())
|
||||||
|
.setExcessAmount(result) // 超标金额
|
||||||
|
.setReason(hotelOrderDetail.getOverStandardReason())
|
||||||
|
.setOccupant(hotelOrderDetail.getBookingName()) // 入住人
|
||||||
|
.setDays(Integer.valueOf(hotelOrderDetail.getNightCount())) // 入住天数
|
||||||
|
.setExcessAmountDay(divide); // 超标金额(元/天)
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(exceedStandardDto.getOccupant())) {
|
||||||
|
String employeeNo = orderDetail.getEmployeeNo(); // 用户id
|
||||||
|
User user = userRepository.findByUserEmployeeNo(employeeNo);
|
||||||
|
if (user != null) {
|
||||||
|
exceedStandardDto.setOccupant(user.getName()); // 入住人
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return exceedStandardDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExceedStandardDto creatAuditParamByFlight(OrderDetail orderDetail) {
|
||||||
|
FlightOrderDetail flightOrderDetail = orderDetail.getFlightOrderDetail();
|
||||||
|
ExceedStandardDto exceedStandardDto = new ExceedStandardDto();
|
||||||
|
String supplierName = SupplierConstantUtil.etaSupplierName(orderDetail.getSupplierName());
|
||||||
|
exceedStandardDto.setOrderType(BPMConstant.EXCEED_STANDARD_TYPE_FLIGHT)
|
||||||
|
.setCabinClass(flightOrderDetail.getSeatPointName())
|
||||||
|
.setOrderSource(supplierName)
|
||||||
|
.setOrderNo(flightOrderDetail.getOrderNo())
|
||||||
|
.setExcessAmount(BigDecimal.valueOf(Double.parseDouble(flightOrderDetail.getOrderAmount())))
|
||||||
|
.setReason(flightOrderDetail.getOverStandardReason());
|
||||||
|
return exceedStandardDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -10,6 +10,9 @@ import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import static com.chint.domain.aggregates.approval.platform.ApprovalPlatformInfo.ApprovalPlatformPathType.*;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Table("approval_platform_info")
|
@Table("approval_platform_info")
|
||||||
|
@ -26,37 +29,61 @@ public class ApprovalPlatformInfo implements Serializable {
|
||||||
private String platformDescription;
|
private String platformDescription;
|
||||||
private String platformExtension;
|
private String platformExtension;
|
||||||
|
|
||||||
|
|
||||||
@MappedCollection(idColumn = "approval_platform_info_id", keyColumn = "approval_platform_info_key")
|
@MappedCollection(idColumn = "approval_platform_info_id", keyColumn = "approval_platform_info_key")
|
||||||
private List<ApprovalPlatformPath> approvalPlatformPathList;
|
private List<ApprovalPlatformPath> approvalPlatformPathList;
|
||||||
|
|
||||||
public Optional<String> expenseUrl() {
|
public Optional<String> expenseUrl() {
|
||||||
return getUrlByType("EXPENSE");
|
return getUrlByType(EXPENSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<String> changeUrl() {
|
public Optional<String> changeUrl() {
|
||||||
return getUrlByType("CHANGE");
|
return getUrlByType(CHANGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Optional<String> addUrl() {
|
public Optional<String> addUrl() {
|
||||||
return getUrlByType("ADD");
|
return getUrlByType(ADD);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<String> refundOrderUrl() {
|
public Optional<String> refundOrderUrl() {
|
||||||
return getUrlByType("REFUND_ORDER");
|
return getUrlByType(REFUND_ORDER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<String> changeOrderUrl() {
|
public Optional<String> changeOrderUrl() {
|
||||||
return getUrlByType("CHANGE_ORDER");
|
return getUrlByType(CHANGE_ORDER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<String> getUrlByType(String type) {
|
public Optional<String> expenseExtension() {
|
||||||
|
return getExtensionByType(EXPENSE);
|
||||||
|
}
|
||||||
|
public Optional<String> changeExtension() {
|
||||||
|
return getExtensionByType(CHANGE);
|
||||||
|
}
|
||||||
|
public Optional<String> addExtension() {
|
||||||
|
return getExtensionByType(ADD);
|
||||||
|
}
|
||||||
|
public Optional<String> refundOrderExtension() {
|
||||||
|
return getExtensionByType(REFUND_ORDER);
|
||||||
|
}
|
||||||
|
public Optional<String> changeOrderExtension() {
|
||||||
|
return getExtensionByType(CHANGE_ORDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T> Optional<T> getPropertyByType(ApprovalPlatformPathType type, Function<ApprovalPlatformPath, T> mapper) {
|
||||||
if (approvalPlatformPathList == null || approvalPlatformPathList.isEmpty()) {
|
if (approvalPlatformPathList == null || approvalPlatformPathList.isEmpty()) {
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
return approvalPlatformPathList.stream()
|
return approvalPlatformPathList.stream()
|
||||||
.filter(it -> it.getApproval_platform_type().equals(type))
|
.filter(it -> it.getApproval_platform_type().equals(type.name()))
|
||||||
.map(it -> this.platformBaseUrl + it.getApproval_platform_path())
|
.map(mapper)
|
||||||
.findFirst();
|
.findFirst();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Optional<String> getUrlByType(ApprovalPlatformPathType type) {
|
||||||
|
return getPropertyByType(type, it -> this.platformBaseUrl + it.getApproval_platform_path());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Optional<String> getExtensionByType(ApprovalPlatformPathType type) {
|
||||||
|
return getPropertyByType(type, ApprovalPlatformPath::getExtension);
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ApprovalPlatformPathType {
|
||||||
|
EXPENSE, CHANGE, ADD, REFUND_ORDER, CHANGE_ORDER
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
package com.chint.domain.aggregates.approval.platform;
|
||||||
|
|
||||||
|
import com.chint.domain.aggregates.approval.ApprovalData;
|
||||||
|
import com.chint.domain.aggregates.approval.ApprovalResultData;
|
||||||
|
import com.chint.domain.aggregates.order.RouteOrder;
|
||||||
|
import com.chint.domain.repository.ApprovalPlatformInfoRepository;
|
||||||
|
import com.chint.domain.repository.SupplierRepository;
|
||||||
|
import com.chint.infrastructure.util.DelayDispatch;
|
||||||
|
import com.chint.infrastructure.util.Json;
|
||||||
|
import com.chint.interfaces.rest.base.PostRequest;
|
||||||
|
import com.chint.interfaces.rest.bpm.dto.ExceedStandardDto;
|
||||||
|
import jakarta.annotation.PostConstruct;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class ApprovalPlatformJT implements ApprovalPlatform {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SupplierRepository supplierRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApprovalPlatformInfoRepository approvalPlatformInfoRepository;
|
||||||
|
|
||||||
|
private ApprovalPlatformInfo approvalPlatformInfo;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApprovalH3BPMMethod approvalH3BPMMethod;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PostRequest postRequest;
|
||||||
|
|
||||||
|
public static final String platformMark = "JT";
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
void init() {
|
||||||
|
approvalPlatformInfoRepository.findByPlatformMark(platformMark)
|
||||||
|
.ifPresent(approvalPlatformInfo -> this.approvalPlatformInfo = approvalPlatformInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void submitApproval(ApprovalData approvalData) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getApprovalPlatformName() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void submitLegAddApproval(ApprovalData approvalData) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void submitLegChangeApproval(ApprovalData approvalData) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void submitOrderExpenseApproval(ApprovalData approvalData) {
|
||||||
|
Optional<String> expenseUrlOpt = approvalPlatformInfo.expenseUrl();
|
||||||
|
if (expenseUrlOpt.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Optional<String> expenseExtensionOpt = approvalPlatformInfo.expenseExtension();
|
||||||
|
if (expenseExtensionOpt.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RouteOrder routeOrder = approvalData.getRouteOrder();
|
||||||
|
ExceedStandardDto exceedStandardDto = approvalH3BPMMethod
|
||||||
|
.creatAuditParamByHotel(approvalData.getOrderDetail(), routeOrder);
|
||||||
|
String json = Json.gson().toJson(exceedStandardDto);
|
||||||
|
String url = expenseUrlOpt.get();
|
||||||
|
String extension = expenseExtensionOpt.get();
|
||||||
|
DelayDispatch.attemptToSend(
|
||||||
|
() -> approvalH3BPMMethod.H3BPMSubmitWorkflow(url, extension, json, routeOrder.getUserId()).getSuccess(), 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void submitOrderChangeApproval(ApprovalData approvalData) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void submitOrderRefundApproval(ApprovalData approvalData) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void submitLegAddOrChangeApproval(ApprovalData approvalData) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void receiveApprovalResultCustom(ApprovalResultData resultData) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public static class ExpenseParam {
|
||||||
|
private String workflowCode;//流程编码
|
||||||
|
private String userCode;//发起人SF号
|
||||||
|
private Boolean finishStart;//是否结果填单节点
|
||||||
|
private String EntityParamValues;//数据
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,4 +10,5 @@ public class OrderBaseRecord {
|
||||||
private LocalDateTime updateDataTime;
|
private LocalDateTime updateDataTime;
|
||||||
private String ticketClerk; // 票务员
|
private String ticketClerk; // 票务员
|
||||||
private String belongDepart;
|
private String belongDepart;
|
||||||
|
private Long routeId;
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,12 +77,14 @@ public class OrderTrainRecord extends OrderBaseRecord{
|
||||||
// private String belongDepart; //归属部门
|
// private String belongDepart; //归属部门
|
||||||
private String settleOrderFlag;
|
private String settleOrderFlag;
|
||||||
|
|
||||||
|
|
||||||
public OrderTrainRecord loadBelongDeport(String belongDeport
|
public OrderTrainRecord loadBelongDeport(String belongDeport
|
||||||
) {
|
) {
|
||||||
// 行程信息
|
// 行程信息
|
||||||
this.setBelongDepart(belongDeport);
|
this.setBelongDepart(belongDeport);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 加载基础订单信息
|
// 加载基础订单信息
|
||||||
public OrderTrainRecord loadBasicOrderInfo(Long id, String orderNo, String orderStatus, String createTime) {
|
public OrderTrainRecord loadBasicOrderInfo(Long id, String orderNo, String orderStatus, String createTime) {
|
||||||
this.setId(id);
|
this.setId(id);
|
||||||
|
|
|
@ -177,6 +177,10 @@ public class AmapOrderRecordExtensionFactory implements OrderRecordExtensionFact
|
||||||
orderCarRecord.setRunTime("0");
|
orderCarRecord.setRunTime("0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (routeOrder.isPresent()) {
|
||||||
|
RouteOrder routeOrderEntity = routeOrder.get();
|
||||||
|
orderCarRecord.setRouteId(routeOrderEntity.getRouteId());
|
||||||
|
}
|
||||||
|
|
||||||
orderDetail.ifPresentOrElse(orderCarRecord::loadComplianceInfo, orderCarRecord::loadComplianceInfoNot);
|
orderDetail.ifPresentOrElse(orderCarRecord::loadComplianceInfo, orderCarRecord::loadComplianceInfoNot);
|
||||||
return orderCarRecord;
|
return orderCarRecord;
|
||||||
|
|
|
@ -871,6 +871,7 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
|
||||||
if (approveOrderNo != null) {
|
if (approveOrderNo != null) {
|
||||||
orderCarRecord.setOfflineCcomyCode(approveOrderNo.getCostCenter());
|
orderCarRecord.setOfflineCcomyCode(approveOrderNo.getCostCenter());
|
||||||
}
|
}
|
||||||
|
orderCarRecord.setRouteId(routeOrder.getRouteId());
|
||||||
}
|
}
|
||||||
return orderCarRecord;
|
return orderCarRecord;
|
||||||
}
|
}
|
||||||
|
@ -1071,8 +1072,8 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
|
||||||
if (approveOrderNo != null) {
|
if (approveOrderNo != null) {
|
||||||
orderFlightRecord.setOfflineCcomyCode(approveOrderNo.getCostCenter());
|
orderFlightRecord.setOfflineCcomyCode(approveOrderNo.getCostCenter());
|
||||||
}
|
}
|
||||||
|
orderFlightRecord.setRouteId(routeOrder.getRouteId());
|
||||||
}
|
}
|
||||||
|
|
||||||
return orderFlightRecord;
|
return orderFlightRecord;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1280,6 +1281,7 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
|
||||||
if (approveOrderNo != null) {
|
if (approveOrderNo != null) {
|
||||||
orderHotelRecord.setOfflineCcomyCode(approveOrderNo.getCostCenter());
|
orderHotelRecord.setOfflineCcomyCode(approveOrderNo.getCostCenter());
|
||||||
}
|
}
|
||||||
|
orderHotelRecord.setRouteId(routeOrder.getRouteId());
|
||||||
}
|
}
|
||||||
return orderHotelRecord;
|
return orderHotelRecord;
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,6 +96,11 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
if (orderCarRecordData instanceof LyOrderCarRecord lyOrderCarRecord) {
|
if (orderCarRecordData instanceof LyOrderCarRecord lyOrderCarRecord) {
|
||||||
createCarOrder(orderCarRecord, lyOrderCarRecord, routeOrder);
|
createCarOrder(orderCarRecord, lyOrderCarRecord, routeOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (routeOrder.isPresent()) {
|
||||||
|
RouteOrder routeOrderEntity = routeOrder.get();
|
||||||
|
orderCarRecord.setRouteId(routeOrderEntity.getRouteId());
|
||||||
|
}
|
||||||
return orderCarRecord;
|
return orderCarRecord;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,6 +110,11 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
if (orderTrainRecordData instanceof LyOrderTrainRecord lyOrderTrainRecord) {
|
if (orderTrainRecordData instanceof LyOrderTrainRecord lyOrderTrainRecord) {
|
||||||
createTrainOrder(orderTrainRecord, lyOrderTrainRecord, routeOrder);
|
createTrainOrder(orderTrainRecord, lyOrderTrainRecord, routeOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (routeOrder.isPresent()) {
|
||||||
|
RouteOrder routeOrderEntity = routeOrder.get();
|
||||||
|
orderTrainRecord.setRouteId(routeOrderEntity.getRouteId());
|
||||||
|
}
|
||||||
return orderTrainRecord;
|
return orderTrainRecord;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,6 +124,11 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
if (orderFlightRecordData instanceof LyOrderFlightRecord lyOrderFlightRecord) {
|
if (orderFlightRecordData instanceof LyOrderFlightRecord lyOrderFlightRecord) {
|
||||||
createFlightOrder(orderFlightRecord, lyOrderFlightRecord, routeOrder);
|
createFlightOrder(orderFlightRecord, lyOrderFlightRecord, routeOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (routeOrder.isPresent()) {
|
||||||
|
RouteOrder routeOrderEntity = routeOrder.get();
|
||||||
|
orderFlightRecord.setRouteId(routeOrderEntity.getRouteId());
|
||||||
|
}
|
||||||
return orderFlightRecord;
|
return orderFlightRecord;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,6 +138,11 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
if (orderHotelRecordData instanceof LyOrderHotelRecord lyOrderHotelRecord) {
|
if (orderHotelRecordData instanceof LyOrderHotelRecord lyOrderHotelRecord) {
|
||||||
createHotelOrder(orderHotelRecord, lyOrderHotelRecord, routeOrder);
|
createHotelOrder(orderHotelRecord, lyOrderHotelRecord, routeOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (routeOrder.isPresent()) {
|
||||||
|
RouteOrder routeOrderEntity = routeOrder.get();
|
||||||
|
orderHotelRecord.setRouteId(routeOrderEntity.getRouteId());
|
||||||
|
}
|
||||||
return orderHotelRecord;
|
return orderHotelRecord;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,14 @@ public class SupplierDomainService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private SupplierCallBackLogRepository supplierCallBackLogRepository;
|
private SupplierCallBackLogRepository supplierCallBackLogRepository;
|
||||||
|
|
||||||
|
|
||||||
|
public String translateSupplierCNName(String supplier) {
|
||||||
|
return supplierRepository
|
||||||
|
.findBySupplierName(supplier)
|
||||||
|
.map(Supplier::getCnName)
|
||||||
|
.orElse("");
|
||||||
|
}
|
||||||
|
|
||||||
public boolean ifCanCancel(Leg leg, String supplierName) {
|
public boolean ifCanCancel(Leg leg, String supplierName) {
|
||||||
Optional<Supplier> supplierOptional = supplierRepository.findBySupplierName(supplierName);
|
Optional<Supplier> supplierOptional = supplierRepository.findBySupplierName(supplierName);
|
||||||
if (supplierOptional.isPresent()) {
|
if (supplierOptional.isPresent()) {
|
||||||
|
@ -60,7 +68,6 @@ public class SupplierDomainService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ListenTo(command = "SupplierCallBackErrorCommand", order = 0)
|
@ListenTo(command = "SupplierCallBackErrorCommand", order = 0)
|
||||||
public void supplierCallBackError(SupplierCallBackErrorCommand command) {
|
public void supplierCallBackError(SupplierCallBackErrorCommand command) {
|
||||||
SupplierCallBackLog supplierCallBackLog = SupplierCallBackLog
|
SupplierCallBackLog supplierCallBackLog = SupplierCallBackLog
|
||||||
|
|
|
@ -1,17 +1,43 @@
|
||||||
package com.chint.domain.service.supplier;
|
package com.chint.domain.service.supplier;
|
||||||
|
|
||||||
import com.chint.infrastructure.constant.SupplierNameConstant;
|
import com.chint.domain.repository.SupplierRepository;
|
||||||
|
import com.chint.domain.service.SupplierDomainService;
|
||||||
|
import jakarta.annotation.PostConstruct;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import static com.chint.infrastructure.constant.SupplierNameConstant.*;
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
public class SupplierConstantUtil {
|
public class SupplierConstantUtil {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SupplierRepository supplierRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SupplierDomainService supplierDomainService;
|
||||||
|
|
||||||
|
private static final Map<String, String> supplierCnNameMap = new HashMap<>();
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void init() {
|
||||||
|
supplierRepository.findAll()
|
||||||
|
.forEach(supplier -> supplierCnNameMap.put(supplier.getName(), supplier.getCnName()));
|
||||||
|
log.info(supplierCnNameMap.toString());
|
||||||
|
}
|
||||||
|
|
||||||
public static String translateOrderSupplierName(String supplier) {
|
public static String translateOrderSupplierName(String supplier) {
|
||||||
return switch (supplier) {
|
return supplierCnNameMap.getOrDefault(supplier, "");
|
||||||
case SUPPLIER_L_Y -> SUPPLIER_L_Y_CN_NAME;
|
}
|
||||||
case SUPPLIER_C_TRIP -> SUPPLIER_C_TRIP_CN_NAME;
|
|
||||||
case SUPPLIER_AMAP -> SUPPLIER_AMAP_CN_NAME;
|
public static String etaSupplierName(String supplier) {
|
||||||
default -> "未知供应商";
|
return translateOrderSupplierName(supplier) + "商旅";
|
||||||
};
|
}
|
||||||
|
|
||||||
|
public static String orderSupplierName(String supplier) {
|
||||||
|
return translateOrderSupplierName(supplier) + "预定";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
package com.chint.infrastructure.constant;
|
||||||
|
|
||||||
|
import org.intellij.lang.annotations.Language;
|
||||||
|
|
||||||
|
public class SQLConstant {
|
||||||
|
|
||||||
|
@Language("sql")
|
||||||
|
public static final String OrderFlightRecordExtensionSQL = """
|
||||||
|
select r1.* from order_flight_record r1
|
||||||
|
left join route_custom_extension_field r3 on r1.route_id = r3.route_id
|
||||||
|
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
||||||
|
order by r1.create_time desc
|
||||||
|
limit :offset , :size
|
||||||
|
""";
|
||||||
|
|
||||||
|
@Language("sql")
|
||||||
|
public static final String OrderFlightRecordExtensionCOUNTSQL = """
|
||||||
|
select count(*) from order_flight_record r1
|
||||||
|
left join route_custom_extension_field r3 on r1.route_id = r3.route_id
|
||||||
|
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
||||||
|
order by r1.create_time desc
|
||||||
|
""";
|
||||||
|
|
||||||
|
|
||||||
|
@Language("sql")
|
||||||
|
public static final String OrderHotelRecordExtensionSQL = """
|
||||||
|
select r1.* from order_hotel_record r1
|
||||||
|
left join route_custom_extension_field r3 on r1.route_id = r3.route_id
|
||||||
|
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
||||||
|
order by r1.create_time desc
|
||||||
|
limit :offset , :size
|
||||||
|
""";
|
||||||
|
|
||||||
|
@Language("sql")
|
||||||
|
public static final String OrderHotelRecordExtensionCOUNTSQL = """
|
||||||
|
select count(*) from order_hotel_record r1
|
||||||
|
left join route_custom_extension_field r3 on r1.route_id = r3.route_id
|
||||||
|
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
||||||
|
order by r1.create_time desc
|
||||||
|
""";
|
||||||
|
|
||||||
|
@Language("sql")
|
||||||
|
public static final String OrderTrainRecordExtensionSQL = """
|
||||||
|
select r1.* from order_train_record r1
|
||||||
|
left join route_custom_extension_field r3 on r1.route_id = r3.route_id
|
||||||
|
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
||||||
|
order by r1.create_time desc
|
||||||
|
limit :offset , :size
|
||||||
|
""";
|
||||||
|
|
||||||
|
@Language("sql")
|
||||||
|
public static final String OrderTrainRecordExtensionCOUNTSQL = """
|
||||||
|
select count(*) from order_train_record r1
|
||||||
|
left join route_custom_extension_field r3 on r1.route_id = r3.route_id
|
||||||
|
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
||||||
|
order by r1.create_time desc
|
||||||
|
""";
|
||||||
|
|
||||||
|
@Language("sql")
|
||||||
|
public static final String OrderCarRecordExtensionSQL = """
|
||||||
|
select r1.* from order_car_record r1
|
||||||
|
left join route_custom_extension_field r3 on r1.route_id = r3.route_id
|
||||||
|
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
||||||
|
order by r1.create_time desc
|
||||||
|
limit :offset , :size
|
||||||
|
""";
|
||||||
|
|
||||||
|
@Language("sql")
|
||||||
|
public static final String OrderCarRecordExtensionCOUNTSQL = """
|
||||||
|
select count(*) from order_car_record r1
|
||||||
|
left join route_custom_extension_field r3 on r1.route_id = r3.route_id
|
||||||
|
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
||||||
|
order by r1.create_time desc
|
||||||
|
""";
|
||||||
|
}
|
|
@ -15,7 +15,7 @@ public class UserNameRepositoryImpl implements UserNameRepository {
|
||||||
@Autowired
|
@Autowired
|
||||||
private JdbcUserNameRepository jdbcUserNameRepository;
|
private JdbcUserNameRepository jdbcUserNameRepository;
|
||||||
|
|
||||||
@Cacheable(value = "user::name", key = "#employeeNo")
|
@Cacheable(value = "User::name", key = "#employeeNo")
|
||||||
@Override
|
@Override
|
||||||
public Optional<UserName> findByEmployeeNo(String employeeNo) {
|
public Optional<UserName> findByEmployeeNo(String employeeNo) {
|
||||||
return jdbcUserNameRepository.findByEmployeeNo(employeeNo);
|
return jdbcUserNameRepository.findByEmployeeNo(employeeNo);
|
||||||
|
|
|
@ -12,6 +12,9 @@ import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import static com.chint.infrastructure.constant.SQLConstant.OrderCarRecordExtensionCOUNTSQL;
|
||||||
|
import static com.chint.infrastructure.constant.SQLConstant.OrderCarRecordExtensionSQL;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface JdbcOrderCarRecordRepository extends CrudRepository<OrderCarRecord, Long> {
|
public interface JdbcOrderCarRecordRepository extends CrudRepository<OrderCarRecord, Long> {
|
||||||
|
|
||||||
|
@ -32,24 +35,9 @@ public interface JdbcOrderCarRecordRepository extends CrudRepository<OrderCarRec
|
||||||
List<OrderCarRecord> findByAccountPeriod(String accountPeriod);
|
List<OrderCarRecord> findByAccountPeriod(String accountPeriod);
|
||||||
|
|
||||||
|
|
||||||
@Query("""
|
@Query(OrderCarRecordExtensionSQL)
|
||||||
select r1.* from order_car_record r1
|
|
||||||
left join order_detail o1 on r1.order_detail_id = o1.order_id
|
|
||||||
left join route_order r2 on o1.route_id = r2.route_id
|
|
||||||
left join route_custom_extension_field r3 on r2.route_id = r3.route_id
|
|
||||||
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
|
||||||
order by r1.create_time desc
|
|
||||||
limit :offset , :size
|
|
||||||
""")
|
|
||||||
List<OrderCarRecord> queryRecordByCustomFiled(String fieldName, String fieldValue, String accountPeriod, Integer offset, Integer size);
|
List<OrderCarRecord> queryRecordByCustomFiled(String fieldName, String fieldValue, String accountPeriod, Integer offset, Integer size);
|
||||||
|
|
||||||
@Query("""
|
@Query(OrderCarRecordExtensionCOUNTSQL)
|
||||||
select count(*) from order_car_record r1
|
|
||||||
left join order_detail o1 on r1.order_detail_id = o1.order_id
|
|
||||||
left join route_order r2 on o1.route_id = r2.route_id
|
|
||||||
left join route_custom_extension_field r3 on r2.route_id = r3.route_id
|
|
||||||
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
|
||||||
order by r1.create_time desc
|
|
||||||
""")
|
|
||||||
Integer countRecordByCustomFiled(String fieldName, Object fieldValue, String accountPeriod);
|
Integer countRecordByCustomFiled(String fieldName, Object fieldValue, String accountPeriod);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,8 @@ import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import static com.chint.infrastructure.constant.SQLConstant.*;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface JdbcOrderFlightRecordRepository extends CrudRepository<OrderFlightRecord, Long> {
|
public interface JdbcOrderFlightRecordRepository extends CrudRepository<OrderFlightRecord, Long> {
|
||||||
Optional<OrderFlightRecord> findByDetailId(String detailId);
|
Optional<OrderFlightRecord> findByDetailId(String detailId);
|
||||||
|
@ -30,24 +32,9 @@ public interface JdbcOrderFlightRecordRepository extends CrudRepository<OrderFli
|
||||||
List<OrderFlightRecord> findByDetailIdIn(Collection<String> detailId);
|
List<OrderFlightRecord> findByDetailIdIn(Collection<String> detailId);
|
||||||
List<OrderFlightRecord> findByAccountPeriod(String accountPeriod);
|
List<OrderFlightRecord> findByAccountPeriod(String accountPeriod);
|
||||||
|
|
||||||
@Query("""
|
@Query(OrderFlightRecordExtensionSQL)
|
||||||
select r1.* from order_flight_record r1
|
|
||||||
left join order_detail o1 on r1.order_detail_id = o1.order_id
|
|
||||||
left join route_order r2 on o1.route_id = r2.route_id
|
|
||||||
left join route_custom_extension_field r3 on r2.route_id = r3.route_id
|
|
||||||
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
|
||||||
order by r1.create_time desc
|
|
||||||
limit :offset , :size
|
|
||||||
""")
|
|
||||||
List<OrderFlightRecord> queryRecordByCustomFiled(String fieldName, String fieldValue, String accountPeriod, Integer offset, Integer size);
|
List<OrderFlightRecord> queryRecordByCustomFiled(String fieldName, String fieldValue, String accountPeriod, Integer offset, Integer size);
|
||||||
|
|
||||||
@Query("""
|
@Query(OrderFlightRecordExtensionCOUNTSQL)
|
||||||
select count(*) from order_flight_record r1
|
|
||||||
left join order_detail o1 on r1.order_detail_id = o1.order_id
|
|
||||||
left join route_order r2 on o1.route_id = r2.route_id
|
|
||||||
left join route_custom_extension_field r3 on r2.route_id = r3.route_id
|
|
||||||
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
|
||||||
order by r1.create_time desc
|
|
||||||
""")
|
|
||||||
Integer countRecordByCustomFiled(String fieldName, Object fieldValue, String accountPeriod);
|
Integer countRecordByCustomFiled(String fieldName, Object fieldValue, String accountPeriod);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,9 @@ import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import static com.chint.infrastructure.constant.SQLConstant.OrderHotelRecordExtensionCOUNTSQL;
|
||||||
|
import static com.chint.infrastructure.constant.SQLConstant.OrderHotelRecordExtensionSQL;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface JdbcOrderHotelRecordRepository extends CrudRepository<OrderHotelRecord, Long> {
|
public interface JdbcOrderHotelRecordRepository extends CrudRepository<OrderHotelRecord, Long> {
|
||||||
|
|
||||||
|
@ -31,25 +34,10 @@ public interface JdbcOrderHotelRecordRepository extends CrudRepository<OrderHote
|
||||||
List<OrderHotelRecord> findByDetailIdIn(Collection<String> detailId);
|
List<OrderHotelRecord> findByDetailIdIn(Collection<String> detailId);
|
||||||
List<OrderHotelRecord> findByAccountPeriod(String accountPeriod);
|
List<OrderHotelRecord> findByAccountPeriod(String accountPeriod);
|
||||||
|
|
||||||
@Query("""
|
@Query(OrderHotelRecordExtensionSQL)
|
||||||
select r1.* from order_hotel_record r1
|
|
||||||
left join order_detail o1 on r1.order_detail_id = o1.order_id
|
|
||||||
left join route_order r2 on o1.route_id = r2.route_id
|
|
||||||
left join route_custom_extension_field r3 on r2.route_id = r3.route_id
|
|
||||||
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
|
||||||
order by r1.create_time desc
|
|
||||||
limit :offset , :size
|
|
||||||
""")
|
|
||||||
List<OrderHotelRecord> queryRecordByCustomFiled(String fieldName, String fieldValue, String accountPeriod, Integer offset, Integer size);
|
List<OrderHotelRecord> queryRecordByCustomFiled(String fieldName, String fieldValue, String accountPeriod, Integer offset, Integer size);
|
||||||
|
|
||||||
@Query("""
|
@Query(OrderHotelRecordExtensionCOUNTSQL)
|
||||||
select count(*) from order_hotel_record r1
|
|
||||||
left join order_detail o1 on r1.order_detail_id = o1.order_id
|
|
||||||
left join route_order r2 on o1.route_id = r2.route_id
|
|
||||||
left join route_custom_extension_field r3 on r2.route_id = r3.route_id
|
|
||||||
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
|
||||||
order by r1.create_time desc
|
|
||||||
""")
|
|
||||||
Integer countRecordByCustomFiled(String fieldName, Object fieldValue, String accountPeriod);
|
Integer countRecordByCustomFiled(String fieldName, Object fieldValue, String accountPeriod);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,9 @@ import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import static com.chint.infrastructure.constant.SQLConstant.OrderTrainRecordExtensionCOUNTSQL;
|
||||||
|
import static com.chint.infrastructure.constant.SQLConstant.OrderTrainRecordExtensionSQL;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface JdbcOrderTrainRecordRepository extends CrudRepository<OrderTrainRecord, Long> {
|
public interface JdbcOrderTrainRecordRepository extends CrudRepository<OrderTrainRecord, Long> {
|
||||||
Optional<OrderTrainRecord> findByDetailId(String detailId);
|
Optional<OrderTrainRecord> findByDetailId(String detailId);
|
||||||
|
@ -30,24 +33,9 @@ public interface JdbcOrderTrainRecordRepository extends CrudRepository<OrderTrai
|
||||||
List<OrderTrainRecord> findByDetailIdIn(Collection<String> detailId);
|
List<OrderTrainRecord> findByDetailIdIn(Collection<String> detailId);
|
||||||
List<OrderTrainRecord> findByAccountPeriod(String accountPeriod);
|
List<OrderTrainRecord> findByAccountPeriod(String accountPeriod);
|
||||||
|
|
||||||
@Query("""
|
@Query(OrderTrainRecordExtensionSQL)
|
||||||
select r1.* from order_train_record r1
|
|
||||||
left join order_detail o1 on r1.order_detail_id = o1.order_id
|
|
||||||
left join route_order r2 on o1.route_id = r2.route_id
|
|
||||||
left join route_custom_extension_field r3 on r2.route_id = r3.route_id
|
|
||||||
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
|
||||||
order by r1.create_time desc
|
|
||||||
limit :offset , :size
|
|
||||||
""")
|
|
||||||
List<OrderTrainRecord> queryRecordByCustomFiled(String fieldName, String fieldValue, String accountPeriod, Integer offset, Integer size);
|
List<OrderTrainRecord> queryRecordByCustomFiled(String fieldName, String fieldValue, String accountPeriod, Integer offset, Integer size);
|
||||||
|
|
||||||
@Query("""
|
@Query(OrderTrainRecordExtensionCOUNTSQL)
|
||||||
select count(*) from order_train_record r1
|
|
||||||
left join order_detail o1 on r1.order_detail_id = o1.order_id
|
|
||||||
left join route_order r2 on o1.route_id = r2.route_id
|
|
||||||
left join route_custom_extension_field r3 on r2.route_id = r3.route_id
|
|
||||||
where r3.field_name = :fieldName and r3.field_value = :fieldValue and account_period = :accountPeriod
|
|
||||||
order by r1.create_time desc
|
|
||||||
""")
|
|
||||||
Integer countRecordByCustomFiled(String fieldName, Object fieldValue, String accountPeriod);
|
Integer countRecordByCustomFiled(String fieldName, Object fieldValue, String accountPeriod);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,13 +6,15 @@ import com.chint.domain.aggregates.user.User;
|
||||||
import com.chint.domain.repository.UserRepository;
|
import com.chint.domain.repository.UserRepository;
|
||||||
import com.chint.infrastructure.cache.RouteCacheManage;
|
import com.chint.infrastructure.cache.RouteCacheManage;
|
||||||
import com.chint.infrastructure.cache.RouteCacheService;
|
import com.chint.infrastructure.cache.RouteCacheService;
|
||||||
import com.chint.interfaces.rest.ctrip.CTripLocationHttpRequest;
|
import com.chint.infrastructure.repository.cache.CacheSystemOrganizationRepository;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.cache.support.NullValue;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
@ -31,8 +33,18 @@ public class CacheTest {
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserRepository userRepository;
|
private UserRepository userRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CacheSystemOrganizationRepository cacheSystemOrganizationRepository;
|
||||||
|
|
||||||
private Gson gson = new Gson();
|
private Gson gson = new Gson();
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void nullTest(){
|
||||||
|
List<Long> list = new ArrayList<>();
|
||||||
|
list.add((Long) NullValue.INSTANCE);
|
||||||
|
cacheSystemOrganizationRepository.getFromCacheByIdIn( list );
|
||||||
|
}
|
||||||
|
|
||||||
// @Test
|
// @Test
|
||||||
public void getAllRouteOrderById(){
|
public void getAllRouteOrderById(){
|
||||||
List<String> keys = List.of("RouteOrders::900","RouteOrders::918");
|
List<String> keys = List.of("RouteOrders::900","RouteOrders::918");
|
||||||
|
|
|
@ -314,9 +314,9 @@ class RouteApplicationTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void loginSign() {
|
void loginSign() {
|
||||||
String sfno = "220222190";
|
String sfno = "220506072";
|
||||||
String syscode = "FSSC";
|
String syscode = "FSSC";
|
||||||
String billcode = "CLSQ240225000101";
|
String billcode = "CLSQ240225000099";
|
||||||
String companycode = "正泰集团股份有限公司";
|
String companycode = "正泰集团股份有限公司";
|
||||||
String timespan = "1708908662738";
|
String timespan = "1708908662738";
|
||||||
String s = Digest.md5(sfno + syscode + billcode + companycode + LOGIN_SECRET_KEY + timespan);
|
String s = Digest.md5(sfno + syscode + billcode + companycode + LOGIN_SECRET_KEY + timespan);
|
||||||
|
@ -325,7 +325,7 @@ class RouteApplicationTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void loginSignProd() {
|
void loginSignProd() {
|
||||||
String sfno = "240522018";
|
String sfno = "240102037";
|
||||||
String syscode = "FSSC";
|
String syscode = "FSSC";
|
||||||
String billcode = "CLSQ240225000099";
|
String billcode = "CLSQ240225000099";
|
||||||
String companycode = "正泰集团股份有限公司";
|
String companycode = "正泰集团股份有限公司";
|
||||||
|
@ -336,6 +336,8 @@ class RouteApplicationTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void deleteRouteOrder2() {
|
void deleteRouteOrder2() {
|
||||||
routeRepository.deleteById(50519L);
|
routeRepository.deleteById(50519L);
|
||||||
|
@ -344,18 +346,10 @@ class RouteApplicationTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testPushBatch() throws UnsupportedEncodingException {
|
void testPushBatch() throws UnsupportedEncodingException {
|
||||||
List<String> billcodeList = List.of("CLS24070100346",
|
List<String> billcodeList = List.of("CLS24070300047");
|
||||||
"CLS24070100358",
|
|
||||||
"CLS24070100472",
|
|
||||||
"CLS24070100474",
|
|
||||||
"CLS24063000266");
|
|
||||||
|
|
||||||
List<String> sfnoList = List.of(
|
List<String> sfnoList = List.of(
|
||||||
"220524027",
|
"220208019"
|
||||||
"220506052",
|
|
||||||
"180605050",
|
|
||||||
"220621032",
|
|
||||||
"220630159"
|
|
||||||
);
|
);
|
||||||
|
|
||||||
System.out.println(billcodeList.size());
|
System.out.println(billcodeList.size());
|
||||||
|
|
Loading…
Reference in New Issue