Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
afd80ca727
|
@ -105,7 +105,7 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
//公共字段校验
|
//公共字段校验
|
||||||
flightFieldCheck(orderFlightRecord, lyOrderFlightRecord);
|
flightFieldCheck(orderFlightRecord, lyOrderFlightRecord);
|
||||||
orderFlightRecord.setDetailId(lyOrderFlightRecord.getBillOrderNo())//防重标识
|
orderFlightRecord.setDetailId(lyOrderFlightRecord.getBillOrderNo())//防重标识
|
||||||
.setTicketClerk(lyOrderFlightRecord.getReserveManName())//票务员
|
// .setTicketClerk(lyOrderFlightRecord.getReserveManName())//票务员
|
||||||
.setAccountPeriod(getAccountPeriod(lyOrderFlightRecord.getStatementCode()))//账期号
|
.setAccountPeriod(getAccountPeriod(lyOrderFlightRecord.getStatementCode()))//账期号
|
||||||
.setBillNo(lyOrderFlightRecord.getBillOrderNo())//账单号
|
.setBillNo(lyOrderFlightRecord.getBillOrderNo())//账单号
|
||||||
.setOrderNo(lyOrderFlightRecord.getOrderSerialNo())//订单号
|
.setOrderNo(lyOrderFlightRecord.getOrderSerialNo())//订单号
|
||||||
|
@ -150,7 +150,7 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
.setBookOrgCode1(lyOrderFlightRecord.getPassengerDepartment()) //出行人组织架构信息1
|
.setBookOrgCode1(lyOrderFlightRecord.getPassengerDepartment()) //出行人组织架构信息1
|
||||||
.setBookOrgCode2(lyOrderFlightRecord.getPassengerDepartment()) //出行人组织架构信息2
|
.setBookOrgCode2(lyOrderFlightRecord.getPassengerDepartment()) //出行人组织架构信息2
|
||||||
.setBookOrgCode3(lyOrderFlightRecord.getPassengerDepartment()) //出行人组织架构信息3
|
.setBookOrgCode3(lyOrderFlightRecord.getPassengerDepartment()) //出行人组织架构信息3
|
||||||
.setOfflineCcomyCode(lyOrderFlightRecord.getPassengerCostCenter()) //成本中心
|
// .setOfflineCcomyCode(lyOrderFlightRecord.getPassengerCostCenter()) //成本中心
|
||||||
.setOrderStatus("") //结算状态
|
.setOrderStatus("") //结算状态
|
||||||
// .setExpenseOrderAmount("") //订单金额
|
// .setExpenseOrderAmount("") //订单金额
|
||||||
// .setSettleOrderFlag() //订单对账状态
|
// .setSettleOrderFlag() //订单对账状态
|
||||||
|
@ -195,7 +195,7 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
//公共字段校验
|
//公共字段校验
|
||||||
hotelFieldCheck(orderHotelRecord, lyOrderHotelRecord);
|
hotelFieldCheck(orderHotelRecord, lyOrderHotelRecord);
|
||||||
orderHotelRecord.setDetailId(lyOrderHotelRecord.getBillOrderNo())//防重标识
|
orderHotelRecord.setDetailId(lyOrderHotelRecord.getBillOrderNo())//防重标识
|
||||||
.setTicketClerk(lyOrderHotelRecord.getReserveManName()) //票务员
|
// .setTicketClerk(lyOrderHotelRecord.getReserveManName()) //票务员
|
||||||
.setAccountPeriod(getAccountPeriod(lyOrderHotelRecord.getStatementCode())) //账期号
|
.setAccountPeriod(getAccountPeriod(lyOrderHotelRecord.getStatementCode())) //账期号
|
||||||
.setBillNo(lyOrderHotelRecord.getBillOrderNo()) //账单号(结算单号)
|
.setBillNo(lyOrderHotelRecord.getBillOrderNo()) //账单号(结算单号)
|
||||||
.setOrderNo(lyOrderHotelRecord.getOrderSerialNo()) //订单号
|
.setOrderNo(lyOrderHotelRecord.getOrderSerialNo()) //订单号
|
||||||
|
@ -232,13 +232,13 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
.setTaxAmt("") //税费
|
.setTaxAmt("") //税费
|
||||||
.setInvoiceType(readInvoiceType(lyOrderHotelRecord.getCustomerInvoiceType())) //供应商发票类型
|
.setInvoiceType(readInvoiceType(lyOrderHotelRecord.getCustomerInvoiceType())) //供应商发票类型
|
||||||
.setInvoiceFee("") //开票手续费
|
.setInvoiceFee("") //开票手续费
|
||||||
.setCustodayFee("") //托管费
|
.setCustodayFee(String.valueOf(lyOrderHotelRecord.getServiceAmount()))//托管费
|
||||||
.setNoTaxCusFee("") //托管费不含税
|
.setNoTaxCusFee("") //托管费不含税
|
||||||
.setTaxCusFee("") //托管费税费
|
.setTaxCusFee("") //托管费税费
|
||||||
.setRoomTypeName(lyOrderHotelRecord.getBedType()) //房型
|
.setRoomTypeName(lyOrderHotelRecord.getBedType()) //房型
|
||||||
.setOrderSource(StringUtils.isNotBlank(lyOrderHotelRecord.getOutApplayOrderNo()) ? "Y" : "N") //预订来源:线上/线下
|
.setOrderSource(StringUtils.isNotBlank(lyOrderHotelRecord.getOutApplayOrderNo()) ? "Y" : "N") //预订来源:线上/线下
|
||||||
.setBookOrgCode1(lyOrderHotelRecord.getPassengerDepartment()) //入住人组织架构信息1
|
.setBookOrgCode1(lyOrderHotelRecord.getPassengerDepartment()) //入住人组织架构信息1
|
||||||
.setOfflineCcomyCode(lyOrderHotelRecord.getPassengerCostCenter()) //成本中心
|
// .setOfflineCcomyCode(lyOrderHotelRecord.getPassengerCostCenter()) //成本中心
|
||||||
.setOrderStatus("") //结算状态
|
.setOrderStatus("") //结算状态
|
||||||
// .setExpenseOrderAmount("") //订单金额
|
// .setExpenseOrderAmount("") //订单金额
|
||||||
// .setSettleOrderFlag() //订单对账状态
|
// .setSettleOrderFlag() //订单对账状态
|
||||||
|
@ -259,7 +259,7 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
//酒店订单明细字段赋值
|
//酒店订单明细字段赋值
|
||||||
private void setHotelRecordDetail(OrderHotelRecord orderHotelRecord, HotelOrderDetail hotelOrderDetail) {
|
private void setHotelRecordDetail(OrderHotelRecord orderHotelRecord, HotelOrderDetail hotelOrderDetail) {
|
||||||
orderHotelRecord.setHotelAddress(hotelOrderDetail.getHotelAddress()) //酒店地址
|
orderHotelRecord.setHotelAddress(hotelOrderDetail.getHotelAddress()) //酒店地址
|
||||||
.setIsAgreement("是".equals(hotelOrderDetail.getAgreementHotel()) ? "1" : "0") //是否协议酒店:0否1是
|
.setIsAgreement(hotelOrderDetail.getAgreementHotel()) //是否协议酒店:0否1是
|
||||||
.setRoomCount(Integer.parseInt(StringUtils.isBlank(hotelOrderDetail.getRoomCount()) ? "1" : hotelOrderDetail.getRoomCount())) //房间数
|
.setRoomCount(Integer.parseInt(StringUtils.isBlank(hotelOrderDetail.getRoomCount()) ? "1" : hotelOrderDetail.getRoomCount())) //房间数
|
||||||
.setStarRate(hotelOrderDetail.getStarRate()) //星级
|
.setStarRate(hotelOrderDetail.getStarRate()) //星级
|
||||||
.setBookOrgCode2(hotelOrderDetail.getBOOK_ORG_STRUCT_2()) //入住人组织架构信息2
|
.setBookOrgCode2(hotelOrderDetail.getBOOK_ORG_STRUCT_2()) //入住人组织架构信息2
|
||||||
|
@ -280,7 +280,7 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
//公共字段校验
|
//公共字段校验
|
||||||
trainFieldCheck(orderTrainRecord, lyOrderTrainRecord);
|
trainFieldCheck(orderTrainRecord, lyOrderTrainRecord);
|
||||||
orderTrainRecord.setDetailId(lyOrderTrainRecord.getBillOrderNo())//防重标识
|
orderTrainRecord.setDetailId(lyOrderTrainRecord.getBillOrderNo())//防重标识
|
||||||
.setTicketClerk(lyOrderTrainRecord.getReserveManName()) //票务员
|
// .setTicketClerk(lyOrderTrainRecord.getReserveManName()) //票务员
|
||||||
.setAccountPeriod(getAccountPeriod(lyOrderTrainRecord.getStatementCode())) //账期号
|
.setAccountPeriod(getAccountPeriod(lyOrderTrainRecord.getStatementCode())) //账期号
|
||||||
.setBillNo(lyOrderTrainRecord.getBillOrderNo()) //账单号
|
.setBillNo(lyOrderTrainRecord.getBillOrderNo()) //账单号
|
||||||
.setOrderNo(lyOrderTrainRecord.getOrderSerialNo()) //订单号
|
.setOrderNo(lyOrderTrainRecord.getOrderSerialNo()) //订单号
|
||||||
|
@ -303,18 +303,16 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
.setReturnFee(String.valueOf(lyOrderTrainRecord.getRefundFee())) //退票手续费
|
.setReturnFee(String.valueOf(lyOrderTrainRecord.getRefundFee())) //退票手续费
|
||||||
.setNoTaxAmt("") //未税金额
|
.setNoTaxAmt("") //未税金额
|
||||||
.setTaxAmt("") //税额
|
.setTaxAmt("") //税额
|
||||||
.setOrderAmount(String.valueOf(lyOrderTrainRecord.getToBePayAmount())) //结算总额
|
.setOrderAmount(String.valueOf(lyOrderTrainRecord.getToBePayAmount())); //结算总额
|
||||||
.setFromCity(lyOrderTrainRecord.getTripName()) //出发城市
|
//设置出发地和到达地
|
||||||
.setFromStationName(lyOrderTrainRecord.getTripName()) //出发站
|
roadTripName(orderTrainRecord, lyOrderTrainRecord.getTripName());
|
||||||
.setToCity(lyOrderTrainRecord.getTripName()) //到达城市
|
orderTrainRecord.setIssueTicketTime(lyOrderTrainRecord.getEnterAccount()) //出票时间 yyyy-MM-dd HH:mm:ss
|
||||||
.setToStationName(lyOrderTrainRecord.getTripName()) //到达站
|
|
||||||
.setIssueTicketTime(lyOrderTrainRecord.getEnterAccount()) //出票时间 yyyy-MM-dd HH:mm:ss
|
|
||||||
.setTrainNo(lyOrderTrainRecord.getTrainNo()) //车次
|
.setTrainNo(lyOrderTrainRecord.getTrainNo()) //车次
|
||||||
.setUserCode(lyOrderTrainRecord.getPassengerNo())//出行人编码
|
.setUserCode(lyOrderTrainRecord.getPassengerNo())//出行人编码
|
||||||
.setUserName(lyOrderTrainRecord.getPassengerName())//出行人姓名
|
.setUserName(lyOrderTrainRecord.getPassengerName())//出行人姓名
|
||||||
.setOrderSource(StringUtils.isNotBlank(lyOrderTrainRecord.getOutApplayOrderNo()) ? "Y" : "N")//预订来源:线上 / 线下
|
.setOrderSource(StringUtils.isNotBlank(lyOrderTrainRecord.getOutApplayOrderNo()) ? "Y" : "N")//预订来源:线上 / 线下
|
||||||
.setBookOrgCode1(lyOrderTrainRecord.getPassengerDepartment())//出行人组织架构信息1
|
.setBookOrgCode1(lyOrderTrainRecord.getPassengerDepartment())//出行人组织架构信息1
|
||||||
.setOfflineCcomyCode(lyOrderTrainRecord.getPassengerCostCenter())//成本中心
|
// .setOfflineCcomyCode(lyOrderTrainRecord.getPassengerCostCenter())//成本中心
|
||||||
// .setOrderStatus() //结算状态
|
// .setOrderStatus() //结算状态
|
||||||
// .setExpenseOrderAmount() //订单金额
|
// .setExpenseOrderAmount() //订单金额
|
||||||
// .setSettleOrderFlag() //订单对账状态
|
// .setSettleOrderFlag() //订单对账状态
|
||||||
|
@ -346,10 +344,26 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
orderTrainRecord.setParentOrderNo(trainOrderDetail.getParentOrderNo())//父级订单号
|
orderTrainRecord.setParentOrderNo(trainOrderDetail.getParentOrderNo())//父级订单号
|
||||||
.setRunTime(trainOrderDetail.getRunTime()) //时长
|
.setRunTime(trainOrderDetail.getRunTime()) //时长
|
||||||
.setSeatType(trainOrderDetail.getSeatType())// 座位等级
|
.setSeatType(trainOrderDetail.getSeatType())// 座位等级
|
||||||
|
.setFromCity(trainOrderDetail.getFromCity()) //出发城市
|
||||||
|
.setToCity(trainOrderDetail.getToCity()) //到达城市
|
||||||
|
.setFromStationName(Optional.ofNullable(orderTrainRecord.getFromStationName())
|
||||||
|
.orElse(trainOrderDetail.getFromStationName())) // 出发站
|
||||||
|
.setToStationName(Optional.ofNullable(orderTrainRecord.getToStationName())
|
||||||
|
.orElse(trainOrderDetail.getToStationName())) // 到达站
|
||||||
|
.setSeatType(trainOrderDetail.getSeatType())// 座位等级
|
||||||
.setBookOrgCode2(trainOrderDetail.getBOOK_ORG_STRUCT_2())//出行人组织架构信息2
|
.setBookOrgCode2(trainOrderDetail.getBOOK_ORG_STRUCT_2())//出行人组织架构信息2
|
||||||
.setBookOrgCode3(trainOrderDetail.getBOOK_ORG_STRUCT_3());//出行人组织架构信息3
|
.setBookOrgCode3(trainOrderDetail.getBOOK_ORG_STRUCT_3());//出行人组织架构信息3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//设置出发 到达站
|
||||||
|
private void roadTripName(OrderTrainRecord orderTrainRecord, String tripName) {
|
||||||
|
String[] tripNames = tripName.split("-");
|
||||||
|
if (tripNames.length == 2) {
|
||||||
|
orderTrainRecord.setFromStationName(tripNames[0])// 出发站
|
||||||
|
.setToStationName(tripNames[1]);// 到达站
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void createCarOrder(OrderCarRecord orderCarRecord, LyOrderCarRecord lyOrderCarRecord) {
|
private void createCarOrder(OrderCarRecord orderCarRecord, LyOrderCarRecord lyOrderCarRecord) {
|
||||||
String orderSerialNo = lyOrderCarRecord.getOrderSerialNo();//订单号
|
String orderSerialNo = lyOrderCarRecord.getOrderSerialNo();//订单号
|
||||||
AtomicReference<OrderDetail> orderDetailRef = new AtomicReference<>();
|
AtomicReference<OrderDetail> orderDetailRef = new AtomicReference<>();
|
||||||
|
@ -363,7 +377,7 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
//公共字段校验
|
//公共字段校验
|
||||||
carFieldCheck(orderCarRecord, lyOrderCarRecord);
|
carFieldCheck(orderCarRecord, lyOrderCarRecord);
|
||||||
orderCarRecord.setDetailId(lyOrderCarRecord.getBillOrderNo())//防重标识
|
orderCarRecord.setDetailId(lyOrderCarRecord.getBillOrderNo())//防重标识
|
||||||
.setTicketClerk(lyOrderCarRecord.getReserveManName()) //票务员
|
// .setTicketClerk(lyOrderCarRecord.getReserveManName()) //票务员
|
||||||
.setAccountPeriod(getAccountPeriod(lyOrderCarRecord.getStatementCode())) //账期号
|
.setAccountPeriod(getAccountPeriod(lyOrderCarRecord.getStatementCode())) //账期号
|
||||||
.setBillNo(lyOrderCarRecord.getBillOrderNo()); //账单号
|
.setBillNo(lyOrderCarRecord.getBillOrderNo()); //账单号
|
||||||
orderCarRecord.setReceiptsNum(getReceiptsNum(lyOrderCarRecord.getOutApplayOrderNo(), routeOrder))//关联申请单号
|
orderCarRecord.setReceiptsNum(getReceiptsNum(lyOrderCarRecord.getOutApplayOrderNo(), routeOrder))//关联申请单号
|
||||||
|
@ -391,7 +405,7 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
.setComyPayAmt(String.valueOf(lyOrderCarRecord.getToBePayAmount())) //公司统付金额
|
.setComyPayAmt(String.valueOf(lyOrderCarRecord.getToBePayAmount())) //公司统付金额
|
||||||
.setBookOrgCode1(lyOrderCarRecord.getPassengerDepartment()) //用车人组织架构信息1
|
.setBookOrgCode1(lyOrderCarRecord.getPassengerDepartment()) //用车人组织架构信息1
|
||||||
.setPaymentType(String.valueOf(getPaymentType(lyOrderCarRecord.getPayType()))) //"付款方式0:公司统付 1:个人付 2:混付"
|
.setPaymentType(String.valueOf(getPaymentType(lyOrderCarRecord.getPayType()))) //"付款方式0:公司统付 1:个人付 2:混付"
|
||||||
.setOfflineCcomyCode(lyOrderCarRecord.getPassengerDepartment()) //成本中心
|
// .setOfflineCcomyCode(lyOrderCarRecord.getPassengerDepartment()) //成本中心
|
||||||
.setOrderSource(StringUtils.isNotBlank(lyOrderCarRecord.getOutApplayOrderNo()) ? "Y" : "N") //预订来源:线上/线下
|
.setOrderSource(StringUtils.isNotBlank(lyOrderCarRecord.getOutApplayOrderNo()) ? "Y" : "N") //预订来源:线上/线下
|
||||||
// .setExpenseOrderAmount() //订单金额
|
// .setExpenseOrderAmount() //订单金额
|
||||||
// .setSettleOrderFlag() //订单对账状态
|
// .setSettleOrderFlag() //订单对账状态
|
||||||
|
@ -485,7 +499,8 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
if (StringUtils.isBlank(orderFlightRecord.getProjectOrderNo())) {
|
if (StringUtils.isBlank(orderFlightRecord.getProjectOrderNo())) {
|
||||||
findProjectOrderNo(tripSubmitItemList).ifPresent(orderFlightRecord::setProjectOrderNo);//项目订单号
|
findProjectOrderNo(tripSubmitItemList).ifPresent(orderFlightRecord::setProjectOrderNo);//项目订单号
|
||||||
}
|
}
|
||||||
|
//成本中心
|
||||||
|
findCostCenter(tripSubmitItemList).ifPresent(orderFlightRecord::setOfflineCcomyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hotelFieldCheck(OrderHotelRecord orderHotelRecord, LyOrderHotelRecord lyOrderHotelRecord) {
|
public void hotelFieldCheck(OrderHotelRecord orderHotelRecord, LyOrderHotelRecord lyOrderHotelRecord) {
|
||||||
|
@ -508,7 +523,8 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
if (StringUtils.isBlank(orderHotelRecord.getProjectOrderNo())) {
|
if (StringUtils.isBlank(orderHotelRecord.getProjectOrderNo())) {
|
||||||
findProjectOrderNo(tripSubmitItemList).ifPresent(orderHotelRecord::setProjectOrderNo);//项目订单号
|
findProjectOrderNo(tripSubmitItemList).ifPresent(orderHotelRecord::setProjectOrderNo);//项目订单号
|
||||||
}
|
}
|
||||||
|
//成本中心
|
||||||
|
findCostCenter(tripSubmitItemList).ifPresent(orderHotelRecord::setOfflineCcomyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void trainFieldCheck(OrderTrainRecord orderTrainRecord, LyOrderTrainRecord lyOrderTrainRecord) {
|
public void trainFieldCheck(OrderTrainRecord orderTrainRecord, LyOrderTrainRecord lyOrderTrainRecord) {
|
||||||
|
@ -531,7 +547,8 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
if (StringUtils.isBlank(orderTrainRecord.getProjectOrderNo())) {
|
if (StringUtils.isBlank(orderTrainRecord.getProjectOrderNo())) {
|
||||||
findProjectOrderNo(tripSubmitItemList).ifPresent(orderTrainRecord::setProjectOrderNo);//项目订单号
|
findProjectOrderNo(tripSubmitItemList).ifPresent(orderTrainRecord::setProjectOrderNo);//项目订单号
|
||||||
}
|
}
|
||||||
|
//成本中心
|
||||||
|
findCostCenter(tripSubmitItemList).ifPresent(orderTrainRecord::setOfflineCcomyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void carFieldCheck(OrderCarRecord orderCarRecord, LyOrderCarRecord lyOrderCarRecord) {
|
public void carFieldCheck(OrderCarRecord orderCarRecord, LyOrderCarRecord lyOrderCarRecord) {
|
||||||
|
@ -554,7 +571,8 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
if (StringUtils.isBlank(orderCarRecord.getProjectOrderNo())) {
|
if (StringUtils.isBlank(orderCarRecord.getProjectOrderNo())) {
|
||||||
findProjectOrderNo(tripSubmitItemList).ifPresent(orderCarRecord::setProjectOrderNo);//项目订单号
|
findProjectOrderNo(tripSubmitItemList).ifPresent(orderCarRecord::setProjectOrderNo);//项目订单号
|
||||||
}
|
}
|
||||||
|
//成本中心
|
||||||
|
findCostCenter(tripSubmitItemList).ifPresent(orderCarRecord::setOfflineCcomyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
//对应所属系统
|
//对应所属系统
|
||||||
|
@ -599,6 +617,13 @@ public class LyOrderRecordExtensionFactory implements OrderRecordExtensionFactor
|
||||||
.map(TripSubmitItemList::getContent);
|
.map(TripSubmitItemList::getContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//成本中心
|
||||||
|
public Optional<String> findCostCenter(List<TripSubmitItemList> tripSubmitItemList) {
|
||||||
|
return tripSubmitItemList.stream()
|
||||||
|
.filter(item -> LY_CUSTOM5.equals(item.getCode()))
|
||||||
|
.findFirst()
|
||||||
|
.map(TripSubmitItemList::getContent);
|
||||||
|
}
|
||||||
|
|
||||||
//获取财务共享单号
|
//获取财务共享单号
|
||||||
private String getReceiptsNum(String outApplayOrderNo, RouteOrder routeOrder) {
|
private String getReceiptsNum(String outApplayOrderNo, RouteOrder routeOrder) {
|
||||||
|
|
|
@ -53,7 +53,10 @@ public class LYOrderSyncAdapter implements SupplierOrderSync {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean syncRouteRequest(RouteRequest routeRequest) {
|
public boolean syncRouteRequest(RouteRequest routeRequest) {
|
||||||
return false;
|
log.info("开始同步同程订单");
|
||||||
|
Boolean flag = synchronizationNew(routeRequest, "1");
|
||||||
|
log.info("flag = " + flag);
|
||||||
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -68,54 +71,116 @@ public class LYOrderSyncAdapter implements SupplierOrderSync {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean cancelRouteRequest(RouteRequest routeRequest) {
|
public boolean cancelRouteRequest(RouteRequest routeRequest) {
|
||||||
return false;
|
log.info("开始同步同程订单");
|
||||||
|
Boolean flag = synchronizationNew(routeRequest, "2");
|
||||||
|
log.info("flag = " + flag);
|
||||||
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
//同步同程订单
|
//同步同程订单
|
||||||
private Boolean synchronization(RouteOrder order, String tag) {
|
private Boolean synchronization(RouteOrder order, String tag) {
|
||||||
String supplierOrderSyncUrl = lyBaseUrl + L_Y_ORDER_PATH;//请求地址
|
|
||||||
//1.设置订单参数
|
//1.设置订单参数
|
||||||
SupplierOrderParam param = new SupplierOrderParam();//参数
|
SupplierOrderParam param = new SupplierOrderParam();//参数
|
||||||
|
//成本中心
|
||||||
this.setCostCenter(param, order);
|
this.setCostCenter(param, order);
|
||||||
param.setOutEmployeeIdType(0);//外部员工ID类型,默认为0
|
//设置订单基本数据
|
||||||
// param.setOutTravelApplyNo(order.getApproveOrderNo().getActualOrderNo());//审批订单号
|
loadBaseData(param, order.getRouteOrderNo(), tag);
|
||||||
param.setOutTravelApplyNo(order.getRouteOrderNo());//审批订单号
|
//设置时间
|
||||||
param.setTravelApplyType(1); //差旅类型:1 普通差旅,2 福利差旅
|
loadTime(param, order.getCreateTime(), order.getUpdateTime());
|
||||||
param.setStatus(Integer.valueOf(tag));//状态:1通过,2作废
|
|
||||||
//日期格式化
|
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
||||||
String applyTime = order.getCreateTime().format(formatter);
|
|
||||||
String updateTime = order.getUpdateTime().format(formatter);
|
|
||||||
param.setTravelApplyTime(applyTime);//开始(创建)时间
|
|
||||||
param.setTravelUpdateTime(updateTime);//最后更新时间
|
|
||||||
param.setOperationType(1);//1新增,2更新
|
|
||||||
//获取用户信息
|
//获取用户信息
|
||||||
// User user = "1".equals(tag) ? BaseContext.getCurrentUser() : userRepository.findByUserEmployeeNo(order.getUserId());
|
|
||||||
// param.setOutEmployeeId(String.valueOf("1".equals(tag) ? user.getEmployeeNo() : order.getUserId()));//用户id
|
|
||||||
User user = userRepository.findByUserEmployeeNo(order.getUserId());
|
User user = userRepository.findByUserEmployeeNo(order.getUserId());
|
||||||
param.setOutEmployeeId(order.getUserId());//用户id
|
//设置用户信息和预定类型
|
||||||
param.setTravelDescription("同程订单");//描述信息
|
loadUserAndProducts(param, order);
|
||||||
param.setBookableProducts(getLegType(order));//1:国内机票,2:国际机票,3:国内酒店,4:海外酒店,5:火车票,6:用车
|
|
||||||
//2.同程的行程节点集合
|
//2.同程的行程节点集合
|
||||||
List<AOSItem> aosItems = getAosItems(order);
|
List<AOSItem> aosItems = getAosItems(order);
|
||||||
//3.差旅人信息
|
//3.差旅人信息
|
||||||
|
List<AOSPerson> aosPeople = readAosPeople(user, order.getUserId());
|
||||||
|
//4.前置差旅政策
|
||||||
|
List<AOSPreTravelPolicy> aosPreTravelPolicies = readAOSPreTravelPolicy(order.getStandardLevel());
|
||||||
|
return sendRequest(param, aosItems, aosPeople, aosPreTravelPolicies);
|
||||||
|
}
|
||||||
|
|
||||||
|
//新同步同程订单
|
||||||
|
private Boolean synchronizationNew(RouteRequest routeRequest, String tag) {
|
||||||
|
//1.设置订单参数
|
||||||
|
SupplierOrderParam param = new SupplierOrderParam();//参数
|
||||||
|
this.readCostCenter(param, routeRequest);
|
||||||
|
//设置订单基本数据
|
||||||
|
loadBaseData(param, routeRequest.getRouteRequestNo(), tag);
|
||||||
|
//设置时间
|
||||||
|
loadTime(param, routeRequest.getCreateTime(), routeRequest.getUpdateTime());
|
||||||
|
//获取用户信息
|
||||||
|
User user = userRepository.findByUserEmployeeNo(routeRequest.getRouteRequestFields().getUserId());
|
||||||
|
loadNewUserAndProducts(param, routeRequest);
|
||||||
|
//2.同程的行程节点集合
|
||||||
|
List<AOSItem> aosItems = roadAosItems(routeRequest);
|
||||||
|
//3.差旅人信息
|
||||||
|
List<AOSPerson> aosPeople = readAosPeople(user, routeRequest.getRouteRequestFields().getUserId());
|
||||||
|
//4.前置差旅政策
|
||||||
|
List<AOSPreTravelPolicy> aosPreTravelPolicies = readAOSPreTravelPolicy(routeRequest.getRouteRequestFields().getStandardLevel());
|
||||||
|
return sendRequest(param, aosItems, aosPeople, aosPreTravelPolicies);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//基本数据
|
||||||
|
private void loadBaseData(SupplierOrderParam param, String orderNo, String tag) {
|
||||||
|
param.setOutEmployeeIdType(0);//外部员工ID类型,默认为0
|
||||||
|
param.setOutTravelApplyNo(orderNo);//审批订单号
|
||||||
|
param.setTravelApplyType(1); //差旅类型:1 普通差旅,2 福利差旅
|
||||||
|
param.setStatus(Integer.valueOf(tag));//状态:1通过,2作废
|
||||||
|
}
|
||||||
|
|
||||||
|
//设置时间
|
||||||
|
private void loadTime(SupplierOrderParam param, LocalDateTime createTime, LocalDateTime updateTime) {
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
String applyTime = createTime.format(formatter);
|
||||||
|
String editTime = updateTime.format(formatter);
|
||||||
|
param.setTravelApplyTime(applyTime);//开始(创建)时间
|
||||||
|
param.setTravelUpdateTime(editTime);//最后更新时间
|
||||||
|
param.setOperationType(1);//1新增,2更新
|
||||||
|
}
|
||||||
|
|
||||||
|
//用户和预定类型
|
||||||
|
private void loadUserAndProducts(SupplierOrderParam param, RouteOrder order) {
|
||||||
|
param.setOutEmployeeId(order.getUserId());//用户id
|
||||||
|
param.setTravelDescription("同程订单");//描述信息
|
||||||
|
param.setBookableProducts(getLegType(order));//1:国内机票,2:国际机票,3:国内酒店,4:海外酒店,5:火车票,6:用车
|
||||||
|
}
|
||||||
|
|
||||||
|
//新对象用户和预定类型
|
||||||
|
private void loadNewUserAndProducts(SupplierOrderParam param, RouteRequest routeRequest) {
|
||||||
|
param.setOutEmployeeId(routeRequest.getRouteRequestFields().getUserId());//用户id
|
||||||
|
param.setTravelDescription("同程订单");//描述信息
|
||||||
|
param.setBookableProducts(roadLegType(routeRequest));//1:国内机票,2:国际机票,3:国内酒店,4:海外酒店,5:火车票,6:用车
|
||||||
|
}
|
||||||
|
|
||||||
|
//差旅人信息
|
||||||
|
private List<AOSPerson> readAosPeople(User user, String userId) {
|
||||||
List<AOSPerson> aosPeople = new ArrayList<>();
|
List<AOSPerson> aosPeople = new ArrayList<>();
|
||||||
AOSPerson aosPerson = new AOSPerson();
|
AOSPerson aosPerson = new AOSPerson();
|
||||||
aosPerson.setName(user.getName());//用户名
|
aosPerson.setName(user.getName());//用户名
|
||||||
aosPerson.setRelation(0);//0:内部员工,1:配偶,2:子女,3:父母,4:面试候选人,5:实习生,6:外部宾客
|
aosPerson.setRelation(0);//0:内部员工,1:配偶,2:子女,3:父母,4:面试候选人,5:实习生,6:外部宾客
|
||||||
aosPerson.setPassengerType(0);//0:成人, 1:儿童, 2:婴儿
|
aosPerson.setPassengerType(0);//0:成人, 1:儿童, 2:婴儿
|
||||||
// aosPerson.setOutEmployeeId(String.valueOf("1".equals(tag) ? user.getEmployeeNo() : order.getUserId()));//SF号(长工号)
|
aosPerson.setOutEmployeeId(userId);//SF号(长工号)
|
||||||
aosPerson.setOutEmployeeId(order.getUserId());//SF号(长工号)
|
|
||||||
aosPeople.add(aosPerson);
|
aosPeople.add(aosPerson);
|
||||||
//4.前置差旅政策
|
return aosPeople;
|
||||||
|
}
|
||||||
|
|
||||||
|
//前置差旅政策
|
||||||
|
private List<AOSPreTravelPolicy> readAOSPreTravelPolicy(String standardLevel) {
|
||||||
List<AOSPreTravelPolicy> aosPreTravelPolicies = new ArrayList<>();
|
List<AOSPreTravelPolicy> aosPreTravelPolicies = new ArrayList<>();
|
||||||
for (int i = 1; i < 7; i++) {
|
for (int i = 1; i < 7; i++) {
|
||||||
AOSPreTravelPolicy aosPreTravelPolicy = new AOSPreTravelPolicy();
|
AOSPreTravelPolicy aosPreTravelPolicy = new AOSPreTravelPolicy();
|
||||||
aosPreTravelPolicy.setPolicyCode(order.getStandardLevel());//一般指客户经理提供的差旅政策标题
|
aosPreTravelPolicy.setPolicyCode(standardLevel);//一般指客户经理提供的差旅政策标题
|
||||||
aosPreTravelPolicy.setProductTypeId(i);//产品ID 1:国内机票,2:国际机票,3:国内酒店,4:海外酒店,5:火车票,6:用车
|
aosPreTravelPolicy.setProductTypeId(i);//产品ID 1:国内机票,2:国际机票,3:国内酒店,4:海外酒店,5:火车票,6:用车
|
||||||
aosPreTravelPolicies.add(aosPreTravelPolicy);
|
aosPreTravelPolicies.add(aosPreTravelPolicy);
|
||||||
}
|
}
|
||||||
|
return aosPreTravelPolicies;
|
||||||
|
}
|
||||||
|
|
||||||
|
//发送请求
|
||||||
|
private Boolean sendRequest(SupplierOrderParam param, List<AOSItem> aosItems, List<AOSPerson> aosPeople, List<AOSPreTravelPolicy> aosPreTravelPolicies) {
|
||||||
|
String supplierOrderSyncUrl = lyBaseUrl + L_Y_ORDER_PATH;//请求地址
|
||||||
param.setItemList(aosItems); // 同程节点内容
|
param.setItemList(aosItems); // 同程节点内容
|
||||||
param.setPersonList(aosPeople);// 同程信息(实际出行人)
|
param.setPersonList(aosPeople);// 同程信息(实际出行人)
|
||||||
param.setPreTravelPolicyList(aosPreTravelPolicies);// 同程政策
|
param.setPreTravelPolicyList(aosPreTravelPolicies);// 同程政策
|
||||||
|
@ -140,12 +205,6 @@ public class LYOrderSyncAdapter implements SupplierOrderSync {
|
||||||
|
|
||||||
//同程Leg集合解析
|
//同程Leg集合解析
|
||||||
private List<AOSItem> getAosItems(RouteOrder order) {
|
private List<AOSItem> getAosItems(RouteOrder order) {
|
||||||
List<AOSItem> aosItems = new ArrayList<>();
|
|
||||||
AOSItem aosItem = new AOSItem();
|
|
||||||
LocalDateTime startDate = LocalDateTime.MAX;
|
|
||||||
LocalDateTime endDate = LocalDateTime.MIN;
|
|
||||||
StringBuilder departCityStr = new StringBuilder();
|
|
||||||
StringBuilder arriveCityStr = new StringBuilder();
|
|
||||||
//提取所有行程节点信息
|
//提取所有行程节点信息
|
||||||
List<Leg> legItems = order.getLegItems().stream().filter(
|
List<Leg> legItems = order.getLegItems().stream().filter(
|
||||||
leg -> (leg.getLegType().equals(LEG_TYPE_TRAIN) ||
|
leg -> (leg.getLegType().equals(LEG_TYPE_TRAIN) ||
|
||||||
|
@ -153,6 +212,82 @@ public class LYOrderSyncAdapter implements SupplierOrderSync {
|
||||||
leg.getLegType().equals(LEG_TYPE_HOTEL) ||
|
leg.getLegType().equals(LEG_TYPE_HOTEL) ||
|
||||||
leg.getLegType().equals(LEG_TYPE_TAXI)))
|
leg.getLegType().equals(LEG_TYPE_TAXI)))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
|
return readAosItems(legItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取行程节点类型
|
||||||
|
public String getLegType(RouteOrder order) {
|
||||||
|
return order.getLegItems()
|
||||||
|
.stream()
|
||||||
|
.map(Leg::getLegType)
|
||||||
|
.distinct()
|
||||||
|
.map(legType -> switch (legType) {
|
||||||
|
case LEG_TYPE_TRAIN -> 5;
|
||||||
|
case LEG_TYPE_AIRPLANE -> 1;
|
||||||
|
case LEG_TYPE_HOTEL -> 3;
|
||||||
|
case LEG_TYPE_TAXI -> 6;
|
||||||
|
default -> legType;
|
||||||
|
})
|
||||||
|
.map(Object::toString)
|
||||||
|
.collect(Collectors.joining(","));
|
||||||
|
}
|
||||||
|
|
||||||
|
//新对象成本中心
|
||||||
|
private SupplierOrderParam readCostCenter(SupplierOrderParam param, RouteRequest routeRequest) {
|
||||||
|
RouteRequestFields routeRequestFields = routeRequest.getRouteRequestFields();
|
||||||
|
param.addCostCenter(routeRequestFields.getSysCode())
|
||||||
|
.addCostCenter(routeRequestFields.getAccountCompanyCode())
|
||||||
|
.addCostCenter(routeRequestFields.getAccountCompanyName())
|
||||||
|
.addCostCenter(routeRequestFields.getProjectName());
|
||||||
|
return param;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//新对象获取行程节点类型
|
||||||
|
public String roadLegType(RouteRequest routeRequest) {
|
||||||
|
return routeRequest.getRouteRequestLegList()
|
||||||
|
.stream()
|
||||||
|
.map(routeRequestLeg -> Optional.ofNullable(routeRequestLeg.getLeg())
|
||||||
|
.map(Leg::getLegType)
|
||||||
|
.orElse(-1))
|
||||||
|
.distinct()
|
||||||
|
.map(legType -> switch (legType) {
|
||||||
|
case LEG_TYPE_TRAIN -> 5;
|
||||||
|
case LEG_TYPE_AIRPLANE -> 1;
|
||||||
|
case LEG_TYPE_HOTEL -> 3;
|
||||||
|
case LEG_TYPE_TAXI -> 6;
|
||||||
|
default -> legType;
|
||||||
|
})
|
||||||
|
.map(Object::toString)
|
||||||
|
.collect(Collectors.joining(","));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//新对象同程Leg集合解析
|
||||||
|
private List<AOSItem> roadAosItems(RouteRequest routeRequest) {
|
||||||
|
//提取所有行程节点信息
|
||||||
|
List<Leg> legItems = routeRequest.getRouteRequestLegList().stream()
|
||||||
|
.map(routeRequestLeg -> Optional.ofNullable(routeRequestLeg.getLeg())
|
||||||
|
.filter(
|
||||||
|
leg -> (leg.getLegType().equals(LEG_TYPE_TRAIN) ||
|
||||||
|
leg.getLegType().equals(LEG_TYPE_AIRPLANE) ||
|
||||||
|
leg.getLegType().equals(LEG_TYPE_HOTEL) ||
|
||||||
|
leg.getLegType().equals(LEG_TYPE_TAXI)))
|
||||||
|
.orElse(null)).filter(Objects::nonNull)
|
||||||
|
.toList(); // 转换为 List
|
||||||
|
return readAosItems(legItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//新对象同程Leg集合解析
|
||||||
|
private List<AOSItem> readAosItems(List<Leg> legItems) {
|
||||||
|
List<AOSItem> aosItems = new ArrayList<>();
|
||||||
|
AOSItem aosItem = new AOSItem();
|
||||||
|
LocalDateTime startDate = LocalDateTime.MAX;
|
||||||
|
LocalDateTime endDate = LocalDateTime.MIN;
|
||||||
|
StringBuilder departCityStr = new StringBuilder();
|
||||||
|
StringBuilder arriveCityStr = new StringBuilder();
|
||||||
orderDomainService.queryLocation(legItems);
|
orderDomainService.queryLocation(legItems);
|
||||||
for (Leg leg : legItems) {
|
for (Leg leg : legItems) {
|
||||||
//开始时间
|
//开始时间
|
||||||
|
@ -208,24 +343,6 @@ public class LYOrderSyncAdapter implements SupplierOrderSync {
|
||||||
return aosItems;
|
return aosItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取行程节点类型
|
|
||||||
public String getLegType(RouteOrder order) {
|
|
||||||
return order.getLegItems()
|
|
||||||
.stream()
|
|
||||||
.map(Leg::getLegType)
|
|
||||||
.distinct()
|
|
||||||
.map(legType -> switch (legType) {
|
|
||||||
case LEG_TYPE_TRAIN -> 5;
|
|
||||||
case LEG_TYPE_AIRPLANE -> 1;
|
|
||||||
case LEG_TYPE_HOTEL -> 3;
|
|
||||||
case LEG_TYPE_TAXI -> 6;
|
|
||||||
default -> legType;
|
|
||||||
})
|
|
||||||
.map(Object::toString)
|
|
||||||
.collect(Collectors.joining(","));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Location getCityLocation(Location location) {
|
public Location getCityLocation(Location location) {
|
||||||
if (location.getLocationType().equals(LOCATION_TYPE_CITY)) {
|
if (location.getLocationType().equals(LOCATION_TYPE_CITY)) {
|
||||||
return location;
|
return location;
|
||||||
|
@ -245,6 +362,7 @@ public class LYOrderSyncAdapter implements SupplierOrderSync {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//去重
|
//去重
|
||||||
public String removeDuplicates(StringBuilder stringBuilder) {
|
public String removeDuplicates(StringBuilder stringBuilder) {
|
||||||
String cityStr = String.valueOf(stringBuilder);
|
String cityStr = String.valueOf(stringBuilder);
|
||||||
|
|
|
@ -11,4 +11,7 @@ public class OrderRecordConstant {
|
||||||
//项目订单号
|
//项目订单号
|
||||||
public static final String LY_CUSTOM4 = "Custom4";
|
public static final String LY_CUSTOM4 = "Custom4";
|
||||||
|
|
||||||
|
//成本中心
|
||||||
|
public static final String LY_CUSTOM5 = "CostCenter";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue