Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
dengwc 2024-04-03 14:34:13 +08:00
commit 80f147abc3
28 changed files with 471 additions and 68 deletions

View File

@ -57,15 +57,12 @@ public class OrderDetailQuery {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime targetTimeBegin = LocalDateTime.parse(authenticationDto.getStartTime(), formatter); LocalDateTime targetTimeBegin = LocalDateTime.parse(authenticationDto.getStartTime(), formatter);
LocalDateTime targetTimeEnd = LocalDateTime.parse(authenticationDto.getEndTime(), formatter); LocalDateTime targetTimeEnd = LocalDateTime.parse(authenticationDto.getEndTime(), formatter);
//只获取账期号为上个月的结算数据
return switch (productType) { return switch (productType) {
case 1 -> orderFlightRecordRepository.findByUpdateDataTime(targetTimeBegin, case 1 -> orderFlightRecordRepository.findBySystemTypeAndLastMonth(pageSize, pageNum, systemType);
targetTimeEnd, pageSize, pageNum, systemType); case 2 -> orderHotelRecordRepository.findBySystemTypeAndLastMonth(pageSize, pageNum, systemType);
case 2 -> orderHotelRecordRepository.findByUpdateDataTime(targetTimeBegin, case 3 -> orderTrainRecordRepository.findBySystemTypeAndLastMonth(pageSize, pageNum, systemType);
targetTimeEnd, pageSize, pageNum, systemType); case 4 -> orderCarRecordRepository.findBySystemTypeAndLastMonth(pageSize, pageNum, systemType);
case 3 -> orderTrainRecordRepository.findByUpdateDataTime(targetTimeBegin,
targetTimeEnd, pageSize, pageNum, systemType);
case 4 -> orderCarRecordRepository.findByUpdateDataTime(targetTimeBegin,
targetTimeEnd, pageSize, pageNum, systemType);
default -> throw new NotFoundException("错误产品类型"); default -> throw new NotFoundException("错误产品类型");
}; };
} }

View File

@ -112,10 +112,10 @@ public class OrderEvent implements Serializable {
public static String mapToHotelOrderDetailStatus(Integer eventType){ public static String mapToHotelOrderDetailStatus(Integer eventType){
return switch (eventType) { return switch (eventType) {
case ORDER_EVENT_PREPARE -> FSSC_HOTEL_STATUS_REFUND; //未下单 改成3 case ORDER_EVENT_PREPARE -> FSSC_HOTEL_STATUS_SUCCESS; //未下单 改成3
case ORDER_EVENT_PAYED -> FSSC_HOTEL_STATUS_SUCCESS; case ORDER_EVENT_PAYED -> FSSC_HOTEL_STATUS_SUCCESS;
case ORDER_EVENT_CHANGE -> FSSC_HOTEL_STATUS_SUCCESS; case ORDER_EVENT_CHANGE -> FSSC_HOTEL_STATUS_SUCCESS;
case ORDER_EVENT_CANCEL -> FSSC_HOTEL_STATUS_SUCCESS; //e额外生成的单子为3 退票虽然是3 返回为1 case ORDER_EVENT_CANCEL -> FSSC_ORDER_STATUS_CANCEL; //e额外生成的单子为3 退票虽然是3 返回为1
case ORDER_EVENT_ORDERED -> FSSC_HOTEL_STATUS_SUCCESS; case ORDER_EVENT_ORDERED -> FSSC_HOTEL_STATUS_SUCCESS;
case ORDER_EVENT_REFUND -> FSSC_HOTEL_STATUS_SUCCESS; case ORDER_EVENT_REFUND -> FSSC_HOTEL_STATUS_SUCCESS;
case ORDER_EVENT_UNKNOWN -> FSSC_ORDER_STATUS_CANCEL; case ORDER_EVENT_UNKNOWN -> FSSC_ORDER_STATUS_CANCEL;

View File

@ -118,15 +118,23 @@ public class OrderFlightRecord extends OrderBaseRecord {
} }
// 加载机票信息 // 加载机票信息
public OrderFlightRecord loadTicketInfo(String issueTicketTime, public OrderFlightRecord loadTicketInfo(
String ticketNo,
String facePrice, String facePrice,
String useStatus) { String useStatus) {
this.setIssueTicketTime(issueTicketTime);
this.setTicketNo(ticketNo);
this.setFacePrice(facePrice); this.setFacePrice(facePrice);
this.setUseStatus(useStatus); this.setUseStatus(useStatus);
return this; return this;
} }
public OrderFlightRecord loadScheduleNum(String issueTicketTime,String scheduleNum){
this.setScheduleNum(scheduleNum);
this.setIssueTicketTime(issueTicketTime);
return this;
}
// 加载座位细节 // 加载座位细节
public OrderFlightRecord loadSeatInfo(String seatPoint, public OrderFlightRecord loadSeatInfo(String seatPoint,
String seatPointName, String seatPointName,

View File

@ -79,6 +79,7 @@ public class OrderHotelRecord extends OrderBaseRecord {
private String orderStatus; private String orderStatus;
private String createTime; private String createTime;
private String receiptsNumOrigin;//支付总金额 private String receiptsNumOrigin;//支付总金额
// 加载基础订单信息 // 加载基础订单信息
public OrderHotelRecord loadBasicOrderInfo(String orderNo, public OrderHotelRecord loadBasicOrderInfo(String orderNo,
String orderStatus, String orderStatus,
@ -90,10 +91,9 @@ public class OrderHotelRecord extends OrderBaseRecord {
} }
// 加载酒店和入住信息 // 加载酒店和入住信息
public OrderHotelRecord loadHotelInfo(String hotelName, String hotelAddress, String checkInDate, String departureDate, public OrderHotelRecord loadHotelInfo(String hotelName, String checkInDate, String departureDate,
int roomCount, String roomTypeName) { int roomCount, String roomTypeName) {
this.setHotelName(hotelName); this.setHotelName(hotelName);
this.setHotelAddress(hotelAddress);
this.setCheckInDate(checkInDate); this.setCheckInDate(checkInDate);
this.setDepartureDate(departureDate); this.setDepartureDate(departureDate);
this.setRoomCount(roomCount); this.setRoomCount(roomCount);
@ -102,10 +102,11 @@ public class OrderHotelRecord extends OrderBaseRecord {
} }
// 加载地理信息位置 // 加载地理信息位置
public OrderHotelRecord loadLocationInfo(String country, String province, String checkInCity) { public OrderHotelRecord loadLocationInfo(String country, String province, String checkInCity, String hotelAddress) {
this.setCountry(country); this.setCountry(country);
this.setProvince(province); this.setProvince(province);
this.setCheckInCity(checkInCity); this.setCheckInCity(checkInCity);
this.setHotelAddress(hotelAddress);
return this; return this;
} }
@ -227,8 +228,11 @@ public class OrderHotelRecord extends OrderBaseRecord {
} }
// 加载发票和费用信息 // 加载发票和费用信息
public OrderHotelRecord loadInvoiceAndFeeInfo(String invoiceType, String invoiceFee, String custodayFee, public OrderHotelRecord loadInvoiceAndFeeInfo(String invoiceType,
String noTaxCusFee, String taxCusFee) { String invoiceFee,
String custodayFee,
String noTaxCusFee,
String taxCusFee) {
this.setInvoiceType(invoiceType); this.setInvoiceType(invoiceType);
this.setInvoiceFee(invoiceFee); this.setInvoiceFee(invoiceFee);
this.setCustodayFee(custodayFee); this.setCustodayFee(custodayFee);
@ -236,6 +240,4 @@ public class OrderHotelRecord extends OrderBaseRecord {
this.setTaxCusFee(taxCusFee); this.setTaxCusFee(taxCusFee);
return this; return this;
} }
} }

View File

@ -0,0 +1,37 @@
package com.chint.domain.aggregates.order.order_record.ctrip_order_record;
import cn.hutool.core.bean.BeanUtil;
import com.chint.interfaces.rest.ctrip.dto.order.OrderFlightResponse;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.MappedCollection;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
@Data
@Table("c_trip_flight_print_info")
public class CTripFlightPrintInfo implements Serializable {
@Serial
private static final long serialVersionUID = 8423142133557758145L;
@Id
private Long id;
private Long cTripFlightRecordId;
private long OrderID;
private String CorpID;
@MappedCollection(idColumn = "c_trip_flight_print_info_id", keyColumn = "c_trip_flight_print_info_key")
private List<CTripFlightSegmentPrint> FlightOrderSegmentPrintInfoList;
// private List<OrderFlightResponse.FlightOrderExpressInfo> RegularExpressInfoListFieldList;
private String TicketNoSignCode;
public static CTripFlightPrintInfo of(OrderFlightResponse.FlightOrderPrintDetailInfo printDetailInfo) {
List<CTripFlightSegmentPrint> list = printDetailInfo
.getFlightOrderSegmentPrintInfoList().stream()
.map(CTripFlightSegmentPrint::of).toList();
CTripFlightPrintInfo cTripFlightPrintInfo = BeanUtil.copyProperties(printDetailInfo, CTripFlightPrintInfo.class);
cTripFlightPrintInfo.setFlightOrderSegmentPrintInfoList(list);
return cTripFlightPrintInfo;
}
}

View File

@ -26,14 +26,27 @@ public class CTripFlightRecord implements Serializable {
private CTripFlightInfo cTripFlightInfo; private CTripFlightInfo cTripFlightInfo;
@MappedCollection(idColumn = "c_trip_flight_record_id") @MappedCollection(idColumn = "c_trip_flight_record_id")
private CTripFlightBaseInfo cTripFlightBaseInfo; private CTripFlightBaseInfo cTripFlightBaseInfo;
@MappedCollection(idColumn = "c_trip_flight_record_id")
private CTripFlightTripInfo cTripFlightTripInfo;
@MappedCollection(idColumn = "c_trip_flight_record_id")
private CTripFlightPrintInfo cTripFlightPrintInfo;
public static CTripFlightRecord of(CTripFlightRecordBase cTripFlightRecordBase, CTripFlightInfo cTripFlightInfo,CTripFlightBaseInfo cTripOrderBaseInfo) { public static CTripFlightRecord of(CTripFlightRecordBase cTripFlightRecordBase,
CTripFlightInfo cTripFlightInfo,
CTripFlightBaseInfo cTripOrderBaseInfo,
CTripFlightTripInfo cTripFlightTripInfo) {
CTripFlightRecord cTripFlightRecord = new CTripFlightRecord(); CTripFlightRecord cTripFlightRecord = new CTripFlightRecord();
cTripFlightRecord.setCTripFlightRecordBase(cTripFlightRecordBase); cTripFlightRecord.setCTripFlightRecordBase(cTripFlightRecordBase);
cTripFlightRecord.setCTripFlightInfo(cTripFlightInfo); cTripFlightRecord.setCTripFlightInfo(cTripFlightInfo);
cTripFlightRecord.setRecordId(String.valueOf(cTripFlightRecordBase.getRecordId())); cTripFlightRecord.setRecordId(String.valueOf(cTripFlightRecordBase.getRecordId()));
cTripFlightRecord.setCreateTime(DateTimeUtil.strToTimeMM(cTripFlightRecordBase.getCreateTime())); cTripFlightRecord.setCreateTime(DateTimeUtil.strToTimeMM(cTripFlightRecordBase.getCreateTime()));
cTripFlightRecord.setCTripFlightBaseInfo(cTripOrderBaseInfo); cTripFlightRecord.setCTripFlightBaseInfo(cTripOrderBaseInfo);
cTripFlightRecord.setCTripFlightTripInfo(cTripFlightTripInfo);
return cTripFlightRecord; return cTripFlightRecord;
} }
public CTripFlightRecord printInfo(CTripFlightPrintInfo cTripFlightPrintInfo) {
this.setCTripFlightPrintInfo(cTripFlightPrintInfo);
return this;
}
} }

View File

@ -0,0 +1,35 @@
package com.chint.domain.aggregates.order.order_record.ctrip_order_record;
import cn.hutool.core.bean.BeanUtil;
import com.chint.interfaces.rest.ctrip.dto.order.OrderFlightResponse;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serial;
import java.io.Serializable;
@Data
@Table("c_trip_flight_segment_print")
public class CTripFlightSegmentPrint implements Serializable {
@Serial
private static final long serialVersionUID = 8454314678965758235L;
@Id
private Long id;
private Long cTripFlightPrintInfoId;
private Integer cTripFlightPrintInfoKey;
private Long OrderID;
private String ExpressNo;
private String CorpId;
private Integer PrintType;
private String PassengerName;
private String TicketNo;
private String PrintNo;
private Double SegmentPrintPrice;
private Long PrintTime;
private String AirLineCode;
public static CTripFlightSegmentPrint of(OrderFlightResponse.FlightOrderSegmentPrintInfo printInfo) {
return BeanUtil.copyProperties(printInfo, CTripFlightSegmentPrint.class);
}
}

View File

@ -0,0 +1,90 @@
package com.chint.domain.aggregates.order.order_record.ctrip_order_record;
import cn.hutool.core.bean.BeanUtil;
import com.chint.interfaces.rest.ctrip.dto.order.OrderFlightResponse;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serial;
import java.io.Serializable;
@Data
@Table("c_trip_flight_trip_info")
public class CTripFlightTripInfo implements Serializable {
@Serial
private static final long serialVersionUID = -2541232534673683466L;
@Id
private Long id;
private Long cTripFlightRecordId;
private Long TripId;
private Integer SectorId;
private String PassengerName;
private String RecordStatus;
private Integer ValidFlag;//
private String FlightClass;
private String Flight;
private String ClassGrade;
private String SubClass;
private String TakeOffTime;
private String ArrivalTime;
private Integer DCity;
private String DepartureDistrictCode;
private String DPort;
private String DPortBuilding;
private Integer DPortBuildingId;
private Integer ACity;
private String ArrivalDistrictCode;
private String APort;
private String APortBuilding;
private Integer APortBuildingId;
private Integer OpenTranFlag;//
private Double PrintPrice;
private Double Oil;
private Double Tax;
private String RecordNo;
private String AirlineRecordNo;
private Integer SharedFlag;//
private String SharedFlight;
private Integer SurfaceFlag; //
private String AirLineCode;
private String TicketNo;
private Integer TicketNoStatus;
private String TicketNoStatusName;
private String DCityName;
private String DPortName;
private String ACityName;
private String APortName;
// private OrderFlightResponse.StandardGeoInfo StandardGeoInfo;
private String ClassTypeName;
private String AirlineName;
public static CTripFlightTripInfo of(OrderFlightResponse.FlightTripRecordInfo flightTripRecordInfo) {
CTripFlightTripInfo cTripFlightTripInfo = BeanUtil.copyProperties(flightTripRecordInfo, CTripFlightTripInfo.class);
cTripFlightTripInfo.setValidFlag(flightTripRecordInfo.isValidFlag() ? 1 : 0);
cTripFlightTripInfo.setOpenTranFlag(flightTripRecordInfo.isOpenTranFlag() ? 1 : 0);
cTripFlightTripInfo.setSharedFlag(flightTripRecordInfo.isSharedFlag() ? 1 : 0);
cTripFlightTripInfo.setSurfaceFlag(flightTripRecordInfo.isSurfaceFlag() ? 1 : 0);
cTripFlightTripInfo.setTicketNoStatusName(translateTicketStatus(flightTripRecordInfo.getTicketNoStatus()));
return cTripFlightTripInfo;
}
private static String translateTicketStatus(Integer ticketNoStatus) {
return switch (ticketNoStatus) {
case -2 -> "未知";
case -1 -> "未知";
case 1 -> "待使用";
case 2 -> "已使用";
case 3 -> "已经办理登记";
case 4 -> "已离港";
case 5 -> "已作废";
case 6 -> "已退票";
case 7 -> "换开";
case 8 -> "挂起";
case 9 -> "机场控制";
case 10 -> "机场控制";
case 11 -> "未查到";
default -> "未知";
};
}
}

View File

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.chint.interfaces.rest.ctrip.dto.order.OrderHotelResponse; import com.chint.interfaces.rest.ctrip.dto.order.OrderHotelResponse;
import lombok.Data; import lombok.Data;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.MappedCollection;
import org.springframework.data.relational.core.mapping.Table; import org.springframework.data.relational.core.mapping.Table;
import java.io.Serial; import java.io.Serial;
@ -19,6 +20,8 @@ public class CTripHotelOrderDetail implements Serializable {
private Long id; private Long id;
private Long cTripHotelRecordId; private Long cTripHotelRecordId;
private Long OrderId; private Long OrderId;
@MappedCollection(idColumn = "c_trip_hotel_order_detail_id", keyColumn = "c_trip_hotel_order_detail_key")
private List<CTripHotelRoomDetail> cTripHotelRoomDetailList;
private String EmployeeName; private String EmployeeName;
private String EmployeeID; private String EmployeeID;
private String WorkCity; private String WorkCity;
@ -100,8 +103,13 @@ public class CTripHotelOrderDetail implements Serializable {
private Double TPConfigMaxPrice; private Double TPConfigMaxPrice;
private String ReservationType; private String ReservationType;
private String PreEmail; private String PreEmail;
public static CTripHotelOrderDetail of(OrderHotelResponse.SettlementOrderDetail data) { public static CTripHotelOrderDetail of(OrderHotelResponse.SettlementOrderDetail data) {
return BeanUtil.copyProperties(data, CTripHotelOrderDetail.class); CTripHotelOrderDetail cTripHotelOrderDetail = BeanUtil.copyProperties(data, CTripHotelOrderDetail.class);
List<OrderHotelResponse.SettlementRoomDetail> roomDetailList = data.getRoomDetailList();
List<CTripHotelRoomDetail> res = roomDetailList.stream().map(CTripHotelRoomDetail::of).toList();
cTripHotelOrderDetail.setCTripHotelRoomDetailList(res);
return cTripHotelOrderDetail;
} }
} }

View File

@ -0,0 +1,35 @@
package com.chint.domain.aggregates.order.order_record.ctrip_order_record;
import cn.hutool.core.bean.BeanUtil;
import com.chint.interfaces.rest.ctrip.dto.order.OrderHotelResponse;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.io.Serial;
import java.io.Serializable;
@Data
@Table("c_trip_hotel_room_detail")
public class CTripHotelRoomDetail implements Serializable {
@Serial
private static final long serialVersionUID = 1027124557206346513L;
@Id
private Long id;
private Long cTripHotelOrderDetailId;
private Integer cTripHotelOrderDetailKey;
private String BasicRoomTypeName;
private String BasicRoomTypeEnName;
private Integer Breakfast;
private Integer AddBreakfast;
private Integer Meals;
private String ETA;
private String ETD;
private Double Price;
private Integer remainQuantity;
private Integer refundQuantity;
public static CTripHotelRoomDetail of(OrderHotelResponse.SettlementRoomDetail roomDetail) {
return BeanUtil.copyProperties(roomDetail, CTripHotelRoomDetail.class);
}
}

View File

@ -11,6 +11,7 @@ import com.chint.domain.repository.LocationRepository;
import com.chint.domain.repository.RouteRepository; import com.chint.domain.repository.RouteRepository;
import com.chint.domain.service.OrderDetailDomainService; import com.chint.domain.service.OrderDetailDomainService;
import com.chint.infrastructure.repository.jdbc.JdbcCtripHotelOrderDetailRepository; import com.chint.infrastructure.repository.jdbc.JdbcCtripHotelOrderDetailRepository;
import com.chint.infrastructure.util.DateTimeUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -46,19 +47,20 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
orderRecordBasic.setTrvaleSysType(TRAVAL_SYS_TYPE_CTRIP); orderRecordBasic.setTrvaleSysType(TRAVAL_SYS_TYPE_CTRIP);
orderRecordBasic.setAccountCompanyId(cTripCarPassengerInfo.getCostCenter1()); orderRecordBasic.setAccountCompanyId(cTripCarPassengerInfo.getCostCenter1());
orderRecordBasic.setAccountCompanyName(cTripCarPassengerInfo.getCostCenter2()); orderRecordBasic.setAccountCompanyName(cTripCarPassengerInfo.getCostCenter2());
orderRecordBasic.setOfflineCcomyCode(cTripCarPassengerInfo.getCostCenter1());
orderRecordBasic.setProjectOrderNo(cTripCarPassengerInfo.getCostCenter5()); orderRecordBasic.setProjectOrderNo(cTripCarPassengerInfo.getCostCenter5());
String sysCode = cTripCarPassengerInfo.getCostCenter3(); String sysCode = cTripCarPassengerInfo.getCostCenter3();
if (sysCode != null) { if (sysCode != null) {
if (sysCode.equals(BELONG_SYS_CODE_FSSC)) { if (sysCode.contains(BELONG_SYS_CODE_FSSC)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_FSSC); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_FSSC);
} }
if (sysCode.equals(BELONG_SYS_CODE_H3BPM)) { if (sysCode.contains(BELONG_SYS_CODE_H3BPM)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_H3BPM); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_H3BPM);
} }
if (sysCode.equals(BELONG_SYS_CODE_XNFSSC)) { if (sysCode.contains(BELONG_SYS_CODE_XNFSSC)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_XNFSSC); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_XNFSSC);
} }
if (sysCode.equals(BELONG_SYS_CODE_ANFSSC)) { if (sysCode.contains(BELONG_SYS_CODE_ANFSSC)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_ANFSSC); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_ANFSSC);
} }
} else { } else {
@ -111,7 +113,7 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
String.valueOf(cTripCarRecordBase.getRealAmountHasPost())); String.valueOf(cTripCarRecordBase.getRealAmountHasPost()));
// 加载费用细节, 未税金额税费服务费取消费额外费用额外费用名称 , 携程马上用车产品没有税费和额外费用字段 // 加载费用细节, 未税金额税费服务费取消费额外费用额外费用名称 , 携程马上用车产品没有税费和额外费用字段
orderCarRecord.loadFeeDetails(String.valueOf(cTripCarRecordBase.getAmount()), orderCarRecord.loadFeeDetails("",
"", "",
String.valueOf(cTripCarRecordBase.getServerFee()), String.valueOf(cTripCarRecordBase.getServerFee()),
String.valueOf(cTripCarRecordBase.getPenaltyFee()), String.valueOf(cTripCarRecordBase.getPenaltyFee()),
@ -205,19 +207,20 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
orderRecordBasic.setTrvaleSysType(TRAVAL_SYS_TYPE_CTRIP); orderRecordBasic.setTrvaleSysType(TRAVAL_SYS_TYPE_CTRIP);
orderRecordBasic.setAccountCompanyId(cTripFlightBaseInfo.getCostCenter()); orderRecordBasic.setAccountCompanyId(cTripFlightBaseInfo.getCostCenter());
orderRecordBasic.setAccountCompanyName(cTripFlightBaseInfo.getCostCenter2()); orderRecordBasic.setAccountCompanyName(cTripFlightBaseInfo.getCostCenter2());
orderRecordBasic.setOfflineCcomyCode(cTripFlightBaseInfo.getCostCenter());
orderRecordBasic.setProjectOrderNo(cTripFlightBaseInfo.getCostCenter5()); orderRecordBasic.setProjectOrderNo(cTripFlightBaseInfo.getCostCenter5());
String sysCode = cTripFlightBaseInfo.getCostCenter3(); String sysCode = cTripFlightBaseInfo.getCostCenter3();
if (sysCode != null) { if (sysCode != null) {
if (sysCode.equals(BELONG_SYS_CODE_FSSC)) { if (sysCode.contains(BELONG_SYS_CODE_FSSC)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_FSSC); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_FSSC);
} }
if (sysCode.equals(BELONG_SYS_CODE_H3BPM)) { if (sysCode.contains(BELONG_SYS_CODE_H3BPM)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_H3BPM); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_H3BPM);
} }
if (sysCode.equals(BELONG_SYS_CODE_XNFSSC)) { if (sysCode.contains(BELONG_SYS_CODE_XNFSSC)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_XNFSSC); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_XNFSSC);
} }
if (sysCode.equals(BELONG_SYS_CODE_ANFSSC)) { if (sysCode.contains(BELONG_SYS_CODE_ANFSSC)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_ANFSSC); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_ANFSSC);
} }
} else { } else {
@ -231,6 +234,7 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
public OrderFlightRecord createFlightOrderRecord(Object orderFlightRecordData) { public OrderFlightRecord createFlightOrderRecord(Object orderFlightRecordData) {
CTripFlightRecord cTripFlightRecord = (CTripFlightRecord) orderFlightRecordData; CTripFlightRecord cTripFlightRecord = (CTripFlightRecord) orderFlightRecordData;
CTripFlightBaseInfo cTripFlightBaseInfo = cTripFlightRecord.getCTripFlightBaseInfo(); CTripFlightBaseInfo cTripFlightBaseInfo = cTripFlightRecord.getCTripFlightBaseInfo();
CTripFlightTripInfo cTripFlightTripInfo = cTripFlightRecord.getCTripFlightTripInfo();
String routeOrderNo = cTripFlightRecord.getRouteOrderNo(); String routeOrderNo = cTripFlightRecord.getRouteOrderNo();
Optional<RouteOrder> byOrderNo = Optional.ofNullable(routeRepository.findByOrderNo(routeOrderNo)); Optional<RouteOrder> byOrderNo = Optional.ofNullable(routeRepository.findByOrderNo(routeOrderNo));
OrderFlightRecord orderFlightRecord = buildWithRecord(cTripFlightRecord) OrderFlightRecord orderFlightRecord = buildWithRecord(cTripFlightRecord)
@ -257,14 +261,43 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
"", "",
cTripFlightInfo.getACityCode(), cTripFlightInfo.getACityCode(),
"") "")
.loadTicketInfo(cTripFlightRecordBase.getCreateTime(),
String.valueOf(cTripFlightRecordBase.getPrice()),
"")
.loadSeatInfo(cTripFlightInfo.getClassName(), .loadSeatInfo(cTripFlightInfo.getClassName(),
cTripFlightInfo.getClassName(), cTripFlightInfo.getClassName(),
String.valueOf(cTripFlightInfo.getPriceRate())); String.valueOf(cTripFlightInfo.getPriceRate()));
CTripFlightPrintInfo cTripFlightPrintInfo = cTripFlightRecord.getCTripFlightPrintInfo();
if (cTripFlightPrintInfo != null &&
cTripFlightPrintInfo.getFlightOrderSegmentPrintInfoList() != null &&
!cTripFlightPrintInfo.getFlightOrderSegmentPrintInfoList().isEmpty()) {
//获取最新的行程号
Optional<CTripFlightSegmentPrint> print = cTripFlightRecord
.getCTripFlightPrintInfo()
.getFlightOrderSegmentPrintInfoList()
.stream()
.reduce((a, b) -> {
if (a.getPrintTime() > b.getPrintTime()) {
return a;
} else {
return b;
}
});
orderFlightRecord.loadScheduleNum(print.map(cTripFlightSegmentPrint -> DateTimeUtil.timeFromInstant(cTripFlightSegmentPrint.getPrintTime())).orElse(""),
print.isPresent() ? print.get().getPrintNo() : "");
}
// 加载机票信息
if (cTripFlightTripInfo != null) {
orderFlightRecord.loadTicketInfo(cTripFlightTripInfo.getTicketNo(),
String.valueOf(cTripFlightRecordBase.getPrice()),
cTripFlightTripInfo.getTicketNoStatusName());
} else {
orderFlightRecord.loadTicketInfo(String.valueOf(cTripFlightRecordBase.getPrice()),
"",
"无机票信息");
}
// 加载财务与价格信息 // 加载财务与价格信息
String batchNo = cTripFlightRecordBase.getBatchStartDate().substring(0, 6); String batchNo = cTripFlightRecordBase.getBatchStartDate().substring(0, 6);
orderFlightRecord.loadFinancialAndPricingInfo(batchNo, orderFlightRecord.loadFinancialAndPricingInfo(batchNo,
@ -346,19 +379,20 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
orderRecordBasic.setTrvaleSysType(TRAVAL_SYS_TYPE_CTRIP); orderRecordBasic.setTrvaleSysType(TRAVAL_SYS_TYPE_CTRIP);
orderRecordBasic.setAccountCompanyId(cTripHotelOrderDetail.getCostCenter()); orderRecordBasic.setAccountCompanyId(cTripHotelOrderDetail.getCostCenter());
orderRecordBasic.setAccountCompanyName(cTripHotelOrderDetail.getCostCenter2()); orderRecordBasic.setAccountCompanyName(cTripHotelOrderDetail.getCostCenter2());
orderRecordBasic.setOfflineCcomyCode(cTripHotelOrderDetail.getCostCenter());
orderRecordBasic.setProjectOrderNo(cTripHotelOrderDetail.getCostCenter5()); orderRecordBasic.setProjectOrderNo(cTripHotelOrderDetail.getCostCenter5());
String sysCode = cTripHotelOrderDetail.getCostCenter3(); String sysCode = cTripHotelOrderDetail.getCostCenter3();
if (sysCode != null) { if (sysCode != null) {
if (sysCode.equals(BELONG_SYS_CODE_FSSC)) { if (sysCode.contains(BELONG_SYS_CODE_FSSC)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_FSSC); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_FSSC);
} }
if (sysCode.equals(BELONG_SYS_CODE_H3BPM)) { if (sysCode.contains(BELONG_SYS_CODE_H3BPM)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_H3BPM); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_H3BPM);
} }
if (sysCode.equals(BELONG_SYS_CODE_XNFSSC)) { if (sysCode.contains(BELONG_SYS_CODE_XNFSSC)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_XNFSSC); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_XNFSSC);
} }
if (sysCode.equals(BELONG_SYS_CODE_ANFSSC)) { if (sysCode.contains(BELONG_SYS_CODE_ANFSSC)) {
orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_ANFSSC); orderRecordBasic.setBelongSysType(BELONG_SYS_TYPE_ANFSSC);
} }
} else { } else {
@ -386,7 +420,6 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
// 加载酒店和入住信息 // 加载酒店和入住信息
orderHotelRecord.loadHotelInfo(cTripHotelInfo.getHotelName(), orderHotelRecord.loadHotelInfo(cTripHotelInfo.getHotelName(),
cTripHotelInfo.getHotelName(),
cTripHotelOrderDetail.getStartTime(), cTripHotelOrderDetail.getStartTime(),
cTripHotelOrderDetail.getEndTime(), cTripHotelOrderDetail.getEndTime(),
cTripHotelOrderDetail.getRoomQuantity(), cTripHotelOrderDetail.getRoomQuantity(),
@ -399,7 +432,15 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
} else { } else {
isAgreement = ""; isAgreement = "";
} }
orderHotelRecord.loadRoomAndBreakfastInfo("", List<CTripHotelRoomDetail> roomDetails = cTripHotelOrderDetail.getCTripHotelRoomDetailList();
Integer averageMeals;
if (roomDetails != null && !roomDetails.isEmpty()) {
averageMeals = roomDetails.stream().map(CTripHotelRoomDetail::getBreakfast).reduce(Integer::sum).get();
} else {
averageMeals = 0;
}
orderHotelRecord.loadRoomAndBreakfastInfo(String.valueOf(averageMeals),
isAgreement, isAgreement,
cTripHotelRecordBase.getQuantity(), cTripHotelRecordBase.getQuantity(),
cTripHotelRecordBase.getQuantity(), cTripHotelRecordBase.getQuantity(),
@ -413,10 +454,19 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
if (locations != null && !locations.isEmpty()) { if (locations != null && !locations.isEmpty()) {
Location location = locations.get(0); Location location = locations.get(0);
LocationRes locationRes = LocationRes.copyFrom(location); LocationRes locationRes = LocationRes.copyFrom(location);
orderHotelRecord.loadLocationInfo(locationRes.getCountry(), locationRes.getProvince(), cTripHotelInfo.getCityName()); String address = locationRes.getCountry() + locationRes.getProvince() + cTripHotelInfo.getCityName();
if (cTripHotelInfo.getDistrictName() != null) {
address = address + cTripHotelInfo.getDistrictName();
}
address = address + cTripHotelInfo.getHotelName();
orderHotelRecord.loadLocationInfo(
address,
locationRes.getCountry(),
locationRes.getProvince(),
cTripHotelInfo.getCityName());
} else { } else {
//如果找不到该地区那么只能先用空的 //如果找不到该地区那么只能先用空的
orderHotelRecord.loadLocationInfo("", "", cTripHotelInfo.getCityName()); orderHotelRecord.loadLocationInfo("", "", cTripHotelInfo.getCityName(), cTripHotelInfo.getHotelName());
} }
// 加载酒店品牌和星级信息 // 加载酒店品牌和星级信息
@ -458,11 +508,17 @@ public class CTripOrderRecordExtensionFactory implements OrderRecordExtensionFac
cTripHotelRecordBase.getCreateTime())); cTripHotelRecordBase.getCreateTime()));
// 加载财务信息 // 加载财务信息
String invoiceType = cTripHotelOrderDetail.getIsHasSpecialInvoice().equals("T") ? "增值税专用发票" : "增值税普通发票"; //发票类型
orderHotelRecord.loadFinancialInfo(cTripHotelRecordBase.getBatchStartDate().substring(0, 6), orderHotelRecord.loadFinancialInfo(cTripHotelRecordBase.getBatchStartDate().substring(0, 6),
cTripHotelRecordBase.getSubAccCheckBatchNo(), cTripHotelRecordBase.getSubAccCheckBatchNo(),
String.valueOf(cTripHotelRecordBase.getAmount()), String.valueOf(cTripHotelRecordBase.getAmount()),
"", "",
cTripHotelRecordBase.getPaidAmount()); cTripHotelRecordBase.getPaidAmount())
.loadInvoiceAndFeeInfo(invoiceType,
String.valueOf(cTripHotelRecordBase.getExtraCharge()),
String.valueOf(cTripHotelRecordBase.getServiceFee()),
"",
"");
// 加载付款 付款方式公司付款金额, 个人付款金额 // 加载付款 付款方式公司付款金额, 个人付款金额

View File

@ -1,6 +1,7 @@
package com.chint.domain.repository; package com.chint.domain.repository;
import com.chint.domain.aggregates.order.order_record.OrderCarRecord; import com.chint.domain.aggregates.order.order_record.OrderCarRecord;
import com.chint.domain.aggregates.order.order_record.OrderTrainRecord;
import com.chint.infrastructure.util.PageResult; import com.chint.infrastructure.util.PageResult;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -12,5 +13,9 @@ public interface OrderCarRecordRepository {
Optional<OrderCarRecord> findByDetailId(String detailId); Optional<OrderCarRecord> findByDetailId(String detailId);
PageResult<OrderCarRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum ,String systemType); PageResult<OrderCarRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime,
Integer pageSize, Integer pageNum ,String systemType);
PageResult<OrderCarRecord> findBySystemTypeAndLastMonth(Integer pageSize,
Integer pageNum,
String systemType);
} }

View File

@ -17,4 +17,8 @@ public interface OrderFlightRecordRepository {
Integer pageSize, Integer pageSize,
Integer pageNum, Integer pageNum,
String systemType); String systemType);
PageResult<OrderFlightRecord> findBySystemTypeAndLastMonth(Integer pageSize,
Integer pageNum,
String systemType);
} }

View File

@ -1,6 +1,7 @@
package com.chint.domain.repository; package com.chint.domain.repository;
import com.chint.domain.aggregates.order.order_record.OrderCarRecord; import com.chint.domain.aggregates.order.order_record.OrderCarRecord;
import com.chint.domain.aggregates.order.order_record.OrderFlightRecord;
import com.chint.domain.aggregates.order.order_record.OrderHotelRecord; import com.chint.domain.aggregates.order.order_record.OrderHotelRecord;
import com.chint.infrastructure.util.PageResult; import com.chint.infrastructure.util.PageResult;
@ -13,5 +14,10 @@ public interface OrderHotelRecordRepository {
Optional<OrderHotelRecord> findByDetailId(String detailId); Optional<OrderHotelRecord> findByDetailId(String detailId);
PageResult<OrderHotelRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum ,String systemType); PageResult<OrderHotelRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime,
Integer pageSize, Integer pageNum ,String systemType);
PageResult<OrderHotelRecord> findBySystemTypeAndLastMonth(Integer pageSize,
Integer pageNum,
String systemType);
} }

View File

@ -14,5 +14,10 @@ public interface OrderTrainRecordRepository {
Optional<OrderTrainRecord> findByDetailId(String detailId); Optional<OrderTrainRecord> findByDetailId(String detailId);
PageResult<OrderTrainRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum ,String systemType); PageResult<OrderTrainRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime,
Integer pageSize, Integer pageNum ,String systemType);
PageResult<OrderTrainRecord> findBySystemTypeAndLastMonth(Integer pageSize,
Integer pageNum,
String systemType);
} }

View File

@ -0,0 +1,23 @@
package com.chint.domain.service;
import com.chint.domain.repository.OrderCarRecordRepository;
import com.chint.domain.repository.OrderFlightRecordRepository;
import com.chint.domain.repository.OrderHotelRecordRepository;
import com.chint.domain.repository.OrderTrainRecordRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class OrderRecordDomainService {
@Autowired
private OrderCarRecordRepository orderCarRecordRepository;
@Autowired
private OrderHotelRecordRepository orderHotelRecordRepository;
@Autowired
private OrderFlightRecordRepository orderFlightRecordRepository;
@Autowired
private OrderTrainRecordRepository orderTrainRecordRepository;
}

View File

@ -3,6 +3,7 @@ package com.chint.infrastructure.repository;
import com.chint.domain.aggregates.order.order_record.OrderCarRecord; import com.chint.domain.aggregates.order.order_record.OrderCarRecord;
import com.chint.domain.repository.OrderCarRecordRepository; import com.chint.domain.repository.OrderCarRecordRepository;
import com.chint.infrastructure.repository.jdbc.JdbcOrderCarRecordRepository; import com.chint.infrastructure.repository.jdbc.JdbcOrderCarRecordRepository;
import com.chint.infrastructure.util.DateTimeUtil;
import com.chint.infrastructure.util.PageResult; import com.chint.infrastructure.util.PageResult;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
@ -40,7 +41,17 @@ public class OrderCarRecordRepositoryImpl implements OrderCarRecordRepository {
String systemType) { String systemType) {
PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending()); PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending());
Page<OrderCarRecord> byUpdateDataTimeBetween = orderCarRecordRepository Page<OrderCarRecord> byUpdateDataTimeBetween = orderCarRecordRepository
.findByBelongSysTypeAndUpdateDataTimeBetween(systemType, startTime, endTime, pageRequest); .findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(systemType,
startTime, endTime, startTime, endTime, pageRequest);
return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent()); return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent());
} }
@Override
public PageResult<OrderCarRecord> findBySystemTypeAndLastMonth(Integer pageSize, Integer pageNum, String systemType) {
PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending());
String lastMonth = DateTimeUtil.lastMonthStr();
Page<OrderCarRecord> res = orderCarRecordRepository.
findByBelongSysTypeAndAccountPeriodOrBelongSysTypeIsNullAndAccountPeriod(systemType, lastMonth, lastMonth, pageRequest);
return PageResult.totalPageNum(res.getTotalElements(), res.getContent());
}
} }

View File

@ -3,6 +3,7 @@ package com.chint.infrastructure.repository;
import com.chint.domain.aggregates.order.order_record.OrderFlightRecord; import com.chint.domain.aggregates.order.order_record.OrderFlightRecord;
import com.chint.domain.repository.OrderFlightRecordRepository; import com.chint.domain.repository.OrderFlightRecordRepository;
import com.chint.infrastructure.repository.jdbc.JdbcOrderFlightRecordRepository; import com.chint.infrastructure.repository.jdbc.JdbcOrderFlightRecordRepository;
import com.chint.infrastructure.util.DateTimeUtil;
import com.chint.infrastructure.util.PageResult; import com.chint.infrastructure.util.PageResult;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
@ -37,8 +38,17 @@ public class OrderFlightRecordRepositoryImpl implements OrderFlightRecordReposit
public PageResult<OrderFlightRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum, String systemType) { public PageResult<OrderFlightRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum, String systemType) {
PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending()); PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending());
Page<OrderFlightRecord> byUpdateDataTimeBetween = jdbcOrderFlightRecordRepository Page<OrderFlightRecord> byUpdateDataTimeBetween = jdbcOrderFlightRecordRepository
.findByBelongSysTypeAndUpdateDataTimeBetween(systemType, startTime, endTime, pageRequest); .findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(systemType,
startTime, endTime, startTime, endTime, pageRequest);
return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent()); return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent());
} }
@Override
public PageResult<OrderFlightRecord> findBySystemTypeAndLastMonth(Integer pageSize, Integer pageNum, String systemType) {
PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending());
String lastMonth = DateTimeUtil.lastMonthStr();
Page<OrderFlightRecord> res = jdbcOrderFlightRecordRepository.
findByBelongSysTypeAndAccountPeriodOrBelongSysTypeIsNullAndAccountPeriod(systemType, lastMonth, lastMonth, pageRequest);
return PageResult.totalPageNum(res.getTotalElements(), res.getContent());
}
} }

View File

@ -1,11 +1,10 @@
package com.chint.infrastructure.repository; package com.chint.infrastructure.repository;
import com.chint.domain.aggregates.order.order_record.OrderCarRecord;
import com.chint.domain.aggregates.order.order_record.OrderFlightRecord; import com.chint.domain.aggregates.order.order_record.OrderFlightRecord;
import com.chint.domain.aggregates.order.order_record.OrderHotelRecord; import com.chint.domain.aggregates.order.order_record.OrderHotelRecord;
import com.chint.domain.repository.OrderHotelRecordRepository; import com.chint.domain.repository.OrderHotelRecordRepository;
import com.chint.infrastructure.repository.jdbc.JdbcOrderFlightRecordRepository;
import com.chint.infrastructure.repository.jdbc.JdbcOrderHotelRecordRepository; import com.chint.infrastructure.repository.jdbc.JdbcOrderHotelRecordRepository;
import com.chint.infrastructure.util.DateTimeUtil;
import com.chint.infrastructure.util.PageResult; import com.chint.infrastructure.util.PageResult;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
@ -23,6 +22,7 @@ public class OrderHotelRecordRepositoryImpl implements OrderHotelRecordRepositor
@Autowired @Autowired
private JdbcOrderHotelRecordRepository jdbcOrderHotelRecordRepository; private JdbcOrderHotelRecordRepository jdbcOrderHotelRecordRepository;
@Override @Override
public List<OrderHotelRecord> saveAll(List<OrderHotelRecord> orderHotelRecordList) { public List<OrderHotelRecord> saveAll(List<OrderHotelRecord> orderHotelRecordList) {
List<OrderHotelRecord> res = new ArrayList<>(); List<OrderHotelRecord> res = new ArrayList<>();
@ -36,10 +36,20 @@ public class OrderHotelRecordRepositoryImpl implements OrderHotelRecordRepositor
} }
@Override @Override
public PageResult<OrderHotelRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum ,String systemType) { public PageResult<OrderHotelRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum, String systemType) {
PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending()); PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending());
Page<OrderHotelRecord> byUpdateDataTimeBetween = jdbcOrderHotelRecordRepository Page<OrderHotelRecord> byUpdateDataTimeBetween = jdbcOrderHotelRecordRepository
.findByBelongSysTypeAndUpdateDataTimeBetween(systemType, startTime, endTime, pageRequest); .findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(systemType,
startTime, endTime, startTime, endTime, pageRequest);
return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent()); return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent());
} }
@Override
public PageResult<OrderHotelRecord> findBySystemTypeAndLastMonth(Integer pageSize, Integer pageNum, String systemType) {
PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending());
String lastMonth = DateTimeUtil.lastMonthStr();
Page<OrderHotelRecord> res = jdbcOrderHotelRecordRepository.
findByBelongSysTypeAndAccountPeriodOrBelongSysTypeIsNullAndAccountPeriod(systemType, lastMonth, lastMonth, pageRequest);
return PageResult.totalPageNum(res.getTotalElements(), res.getContent());
}
} }

View File

@ -1,10 +1,9 @@
package com.chint.infrastructure.repository; package com.chint.infrastructure.repository;
import com.chint.domain.aggregates.order.order_record.OrderHotelRecord;
import com.chint.domain.aggregates.order.order_record.OrderTrainRecord; import com.chint.domain.aggregates.order.order_record.OrderTrainRecord;
import com.chint.domain.repository.OrderTrainRecordRepository; import com.chint.domain.repository.OrderTrainRecordRepository;
import com.chint.infrastructure.repository.jdbc.JdbcOrderHotelRecordRepository;
import com.chint.infrastructure.repository.jdbc.JdbcOrderTrainRecordRepository; import com.chint.infrastructure.repository.jdbc.JdbcOrderTrainRecordRepository;
import com.chint.infrastructure.util.DateTimeUtil;
import com.chint.infrastructure.util.PageResult; import com.chint.infrastructure.util.PageResult;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
@ -21,6 +20,7 @@ import java.util.Optional;
public class OrderTrainRecordRepositoryImpl implements OrderTrainRecordRepository { public class OrderTrainRecordRepositoryImpl implements OrderTrainRecordRepository {
@Autowired @Autowired
private JdbcOrderTrainRecordRepository jdbcOrderTrainRecordRepository; private JdbcOrderTrainRecordRepository jdbcOrderTrainRecordRepository;
@Override @Override
public List<OrderTrainRecord> saveAll(List<OrderTrainRecord> orderTrainRecordList) { public List<OrderTrainRecord> saveAll(List<OrderTrainRecord> orderTrainRecordList) {
List<OrderTrainRecord> res = new ArrayList<>(); List<OrderTrainRecord> res = new ArrayList<>();
@ -34,10 +34,20 @@ public class OrderTrainRecordRepositoryImpl implements OrderTrainRecordRepositor
} }
@Override @Override
public PageResult<OrderTrainRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum ,String systemType) { public PageResult<OrderTrainRecord> findByUpdateDataTime(LocalDateTime startTime, LocalDateTime endTime, Integer pageSize, Integer pageNum, String systemType) {
PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending()); PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending());
Page<OrderTrainRecord> byUpdateDataTimeBetween = jdbcOrderTrainRecordRepository Page<OrderTrainRecord> byUpdateDataTimeBetween = jdbcOrderTrainRecordRepository
.findByBelongSysTypeAndUpdateDataTimeBetween(systemType, startTime, endTime, pageRequest); .findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(systemType,
startTime, endTime, startTime, endTime, pageRequest);
return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent()); return PageResult.totalPageNum(byUpdateDataTimeBetween.getTotalElements(), byUpdateDataTimeBetween.getContent());
} }
@Override
public PageResult<OrderTrainRecord> findBySystemTypeAndLastMonth(Integer pageSize, Integer pageNum, String systemType) {
PageRequest pageRequest = PageRequest.of(pageNum - 1, pageSize, Sort.by("update_data_time").descending());
String lastMonth = DateTimeUtil.lastMonthStr();
Page<OrderTrainRecord> res = jdbcOrderTrainRecordRepository.
findByBelongSysTypeAndAccountPeriodOrBelongSysTypeIsNullAndAccountPeriod(systemType, lastMonth, lastMonth, pageRequest);
return PageResult.totalPageNum(res.getTotalElements(), res.getContent());
}
} }

View File

@ -15,4 +15,8 @@ public interface JdbcOrderCarRecordRepository extends CrudRepository<OrderCarRec
Optional<OrderCarRecord> findByDetailId(String detailId); Optional<OrderCarRecord> findByDetailId(String detailId);
Page<OrderCarRecord> findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable); Page<OrderCarRecord> findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable);
Page<OrderCarRecord> findByBelongSysTypeAndAccountPeriodOrBelongSysTypeIsNullAndAccountPeriod(String belongSysType, String accountPeriod, String accountPeriod2, Pageable pageable);
Page<OrderCarRecord> findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, LocalDateTime updateDataTime3, LocalDateTime updateDataTime4, Pageable pageable);
} }

View File

@ -14,4 +14,7 @@ public interface JdbcOrderFlightRecordRepository extends CrudRepository<OrderFli
Optional<OrderFlightRecord> findByDetailId(String detailId); Optional<OrderFlightRecord> findByDetailId(String detailId);
Page<OrderFlightRecord> findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable); Page<OrderFlightRecord> findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable);
Page<OrderFlightRecord> findByBelongSysTypeAndAccountPeriodOrBelongSysTypeIsNullAndAccountPeriod(String belongSysType, String accountPeriod, String accountPeriod2, Pageable pageable);
Page<OrderFlightRecord> findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, LocalDateTime updateDataTime3, LocalDateTime updateDataTime4, Pageable pageable);
} }

View File

@ -15,4 +15,8 @@ public interface JdbcOrderHotelRecordRepository extends CrudRepository<OrderHote
Optional<OrderHotelRecord> findByDetailId(String detailId); Optional<OrderHotelRecord> findByDetailId(String detailId);
Page<OrderHotelRecord> findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable); Page<OrderHotelRecord> findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable);
Page<OrderHotelRecord> findByBelongSysTypeAndAccountPeriodOrBelongSysTypeIsNullAndAccountPeriod(String belongSysType, String accountPeriod, String accountPeriod2, Pageable pageable);
Page<OrderHotelRecord> findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, LocalDateTime updateDataTime3, LocalDateTime updateDataTime4, Pageable pageable);
} }

View File

@ -14,4 +14,7 @@ public interface JdbcOrderTrainRecordRepository extends CrudRepository<OrderTrai
Optional<OrderTrainRecord> findByDetailId(String detailId); Optional<OrderTrainRecord> findByDetailId(String detailId);
Page<OrderTrainRecord> findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable); Page<OrderTrainRecord> findByBelongSysTypeAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, Pageable pageable);
Page<OrderTrainRecord> findByBelongSysTypeAndAccountPeriodOrBelongSysTypeIsNullAndAccountPeriod(String belongSysType, String accountPeriod, String accountPeriod2, Pageable pageable);
Page<OrderTrainRecord> findByBelongSysTypeAndUpdateDataTimeBetweenOrBelongSysTypeIsNullAndUpdateDataTimeBetween(String belongSysType, LocalDateTime updateDataTime, LocalDateTime updateDataTime2, LocalDateTime updateDataTime3, LocalDateTime updateDataTime4, Pageable pageable);
} }

View File

@ -1,7 +1,9 @@
package com.chint.infrastructure.util; package com.chint.infrastructure.util;
import java.time.Instant;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.YearMonth; import java.time.YearMonth;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
public class DateTimeUtil { public class DateTimeUtil {
@ -14,6 +16,11 @@ public class DateTimeUtil {
private final static DateTimeFormatter formatterDateYYYYMMDD = DateTimeFormatter.ofPattern("yyyyMMdd"); private final static DateTimeFormatter formatterDateYYYYMMDD = DateTimeFormatter.ofPattern("yyyyMMdd");
public static String timeFromInstant(Long instant) {
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(instant), ZoneId.systemDefault());
return formatter.format(localDateTime);
}
public static String timeToStr(LocalDateTime input) { public static String timeToStr(LocalDateTime input) {
return input.format(formatterDate); return input.format(formatterDate);
} }
@ -53,4 +60,13 @@ public class DateTimeUtil {
return yearMonth.atEndOfMonth().atTime(23, 59, 59); return yearMonth.atEndOfMonth().atTime(23, 59, 59);
} }
public static String lastMonthStr() {
// 获取当前日期和时间
LocalDateTime currentDateTime = LocalDateTime.now();
// 获取上个月的同一时间
LocalDateTime lastMonthDateTime = currentDateTime.minusMonths(1);
// 指定所需格式
// 格式化日期时间
return lastMonthDateTime.format(formatterDateYYYYMM);
}
} }

View File

@ -55,22 +55,28 @@ public class CTripOrderRecordAutoSave {
.map(it -> { .map(it -> {
//对数据库进行查找 如果发现已经存在 就使用查找出来的 //对数据库进行查找 如果发现已经存在 就使用查找出来的
OrderFlightResponse.FlightOrderSettlementBaseInfo orderSettlementBaseInfo = it.getOrderSettlementBaseInfo(); OrderFlightResponse.FlightOrderSettlementBaseInfo orderSettlementBaseInfo = it.getOrderSettlementBaseInfo();
OrderFlightResponse.FlightTripRecordInfo flightTripRecordInfo = it.getFlightTripRecordInfo();
CTripFlightRecord record = cTripOrderDetailRepository.findFlightRecordByRecordId( CTripFlightRecord record = cTripOrderDetailRepository.findFlightRecordByRecordId(
String.valueOf(orderSettlementBaseInfo.getRecordID())); String.valueOf(orderSettlementBaseInfo.getRecordID()));
if (record == null) { if (record == null) {
record = CTripFlightRecord.of( record = CTripFlightRecord.of(
CTripFlightRecordBase.changeInfo(orderSettlementBaseInfo), CTripFlightRecordBase.changeInfo(orderSettlementBaseInfo),
CTripFlightInfo.of(it.getOrderFlightInfo()), CTripFlightInfo.of(it.getOrderFlightInfo()),
CTripFlightBaseInfo.of(it.getOrderBaseInfo()) CTripFlightBaseInfo.of(it.getOrderBaseInfo()),
); CTripFlightTripInfo.of(flightTripRecordInfo));
} else { } else {
Long originId = record.getId(); Long originId = record.getId();
record = CTripFlightRecord.of( record = CTripFlightRecord.of(
CTripFlightRecordBase.changeInfo(orderSettlementBaseInfo), CTripFlightRecordBase.changeInfo(orderSettlementBaseInfo),
CTripFlightInfo.of(it.getOrderFlightInfo()), CTripFlightInfo.of(it.getOrderFlightInfo()),
CTripFlightBaseInfo.of(it.getOrderBaseInfo())); CTripFlightBaseInfo.of(it.getOrderBaseInfo()),
CTripFlightTripInfo.of(flightTripRecordInfo));
record.setId(originId); record.setId(originId);
} }
if (it.getOrderPrintDetailInfo() != null) {
record.printInfo(CTripFlightPrintInfo.of(it.getOrderPrintDetailInfo()));
}
//补充额外的字段 //补充额外的字段
OrderFlightResponse.FlightOrderBaseInfo orderBaseInfo = it.getOrderBaseInfo(); OrderFlightResponse.FlightOrderBaseInfo orderBaseInfo = it.getOrderBaseInfo();
record.setRouteOrderNo(orderBaseInfo.getJourneyID()); record.setRouteOrderNo(orderBaseInfo.getJourneyID());

View File

@ -48,10 +48,10 @@ logging:
#正式 #正式
ly: ly:
appId: zhengtai appId: zhengtai
account: 4f9cb1080b564dd0a94aa95f7a19c8b5 account: ab9fe0c19dd64a99b936fded72c3bb94
password: 1fD3SutgzfS48qznYQiq password: glHRJJ9JMUwNfQ8OwAQi
secret: WOHzCMvHd823iHgH secret: MnghmYJpM1U2RaLx
baseUrl: https://api.qa.dttrip.cn/openapi baseUrl: https://api.dttrip.cn/openapi
ifForwardRequest: false ifForwardRequest: false
forwardRequestBaseUrl: https://secureqrdev-t.chint.com/llz forwardRequestBaseUrl: https://secureqrdev-t.chint.com/llz

View File

@ -55,6 +55,7 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.chint.infrastructure.constant.LocationConstant.*; import static com.chint.infrastructure.constant.LocationConstant.*;
import static com.chint.infrastructure.util.DateTimeUtil.lastMonthStr;
@Slf4j @Slf4j
@SpringBootTest @SpringBootTest
@ -1249,9 +1250,10 @@ class RouteApplicationTests {
orderDomainService.checkCompanyNameIfBlack("乐清正泰电器销售有限公司"); orderDomainService.checkCompanyNameIfBlack("乐清正泰电器销售有限公司");
} }
// @Test @Test
void testSplid(){ void testSplid(){
String str = "20240301"; String str = "20240301";
System.out.println(str.substring(0, 5)); System.out.println(str.substring(0, 5));
System.out.println(lastMonthStr());
} }
} }