新能云枢超标、改签流程调用测试编写
This commit is contained in:
parent
3dca884467
commit
48888e5e49
7
pom.xml
7
pom.xml
|
@ -75,6 +75,13 @@
|
|||
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||
<version>3.0.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.authine.cloudpivot</groupId>
|
||||
<artifactId>cloudpivot-opensdk</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
@ -24,7 +24,8 @@ public class FSSCController {
|
|||
@PostMapping("/login")
|
||||
public Result<LoginResponse> loginToFSSC() {
|
||||
User currentUser = BaseContext.getCurrentUser();
|
||||
return Result.Success(SUCCESS, LoginResponse.success(FSSCUrl + FSSC_LOGIN_PATH_APPROVAL + currentUser.getEmployeeNo().toString()));
|
||||
String companyCode = currentUser.getCompanyCode();//公司编号
|
||||
return Result.Success(SUCCESS, LoginResponse.success(FSSCUrl + FSSC_LOGIN_PATH_APPROVAL + currentUser.getEmployeeNo()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -37,57 +37,61 @@ public class LYOrderExtensionFactoryImpl implements OrderExtensionFactory {
|
|||
TrainDetailResponse.TravelData travelData = data.getTravelData();
|
||||
TrainOrderDetail trainOrderDetail = new TrainOrderDetail();
|
||||
//映射值
|
||||
/*trainOrderDetail.setOrderNo(data.getOrderNo())
|
||||
.setOverStandard(null)
|
||||
.setParentOrderNo()
|
||||
.setOriginalOrderNo(null)
|
||||
/* trainOrderDetail.setOrderNo(data.getOrderNo())
|
||||
.setOverStandard(ruleViolate)
|
||||
.setParentOrderNo(null)
|
||||
.setOriginalOrderNo(originalOrderNo)
|
||||
.setOrderStatus(null)
|
||||
.setAccountCompanyId()
|
||||
.setAccountCompanyName()
|
||||
.setAccountCompanyId(null)
|
||||
.setAccountCompanyName(null)
|
||||
.setReceiptsNum(travelData.getTravelApplyNo())
|
||||
.setScheduleNum()
|
||||
.setScheduleNum(null)
|
||||
.setBookingUserCode(data.getOutEmployeeId())
|
||||
.setBookingName()
|
||||
.setBookingUserPhone()
|
||||
.setCreateTime()
|
||||
.setStartTime()
|
||||
.setArriveTime()
|
||||
.setFromStationName()
|
||||
.setToStationName()
|
||||
.setTrainNo()
|
||||
.setFromCity()
|
||||
.setToCity()
|
||||
.setRunTime()
|
||||
.setOrderAmount()
|
||||
.setPreServiceFee()
|
||||
.setPostServiceFee()
|
||||
.setRefundAmount()
|
||||
.setChangeDifference()
|
||||
.setChangeCost()
|
||||
.setTickets()
|
||||
.setSeatType()
|
||||
.setSeatName()
|
||||
.setTicketPrice()
|
||||
.setRefundCost()
|
||||
.setRefundPrice()
|
||||
.setStandardItems()
|
||||
.setUserName()
|
||||
.setUserCode()
|
||||
.setOverStandard()
|
||||
.setPhone()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
.setBOOK_ORG_STRUCT_1()
|
||||
.setBOOK_ORG_STRUCT_2()
|
||||
.setBOOK_ORG_STRUCT_3()
|
||||
.setPaymentType()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
// .setXXX()
|
||||
;*/
|
||||
.setBookingName(null)
|
||||
.setBookingUserPhone(null)
|
||||
.setCreateTime(issueTime)
|
||||
.setStartTime(departureTime)
|
||||
.setArriveTime(arrivalTime)
|
||||
.setFromStationName(data.getFromStation())
|
||||
.setToStationName(data.getToStation())
|
||||
.setTrainNo(data.getTrainNo())
|
||||
.setFromCity(departCityName)
|
||||
.setToCity(arriveCityName)
|
||||
.setRunTime(null)
|
||||
.setOrderAmount(data.getTotalAmount())
|
||||
.setPreServiceFee(servicePrice)
|
||||
.setPostServiceFee(afterSettlementServicePrice)
|
||||
.setRefundAmount(refundPrice)
|
||||
.setChangeDifference(changePriceDiff)
|
||||
.setChangeCost(serviceCharge)
|
||||
.setTickets(
|
||||
data.getPriceVarList().stream()
|
||||
.flatMap(priceVar -> priceVar.getPassengers().stream())
|
||||
.toList()
|
||||
)
|
||||
.setSeatType(data.getItems().isEmpty() ? null : data.getItems().get(0).getSeatClass())
|
||||
.setSeatName(data.getItems().isEmpty() ? null : data.getItems().get(0).getSeatNo())
|
||||
.setTicketPrice(price)
|
||||
.setRefundCost(null)
|
||||
.setRefundPrice(refundPrice)
|
||||
.setStandardItems(policyName)
|
||||
.setUserName(passengerName)
|
||||
.setUserCode(employeeCode)
|
||||
.setOverStandard(ruleViolate)
|
||||
.setPhone(null)
|
||||
// .setXXX(携程预订/同程预订)
|
||||
// .setXXX(PersonalPrice)
|
||||
// .setXXX(CompanyPrice)
|
||||
// .setXXX(null)
|
||||
// .setXXX(foulReason)//超标原因
|
||||
.setBOOK_ORG_STRUCT_1(null)
|
||||
.setBOOK_ORG_STRUCT_2(null)
|
||||
.setBOOK_ORG_STRUCT_3(null)
|
||||
.setPaymentType(payType)
|
||||
// .setXXX(null)//入住人组织架构信息3
|
||||
// .setXXX(null)//项目订单号
|
||||
// .setXXX(null)//成本中心*/
|
||||
;
|
||||
|
||||
return trainOrderDetail;
|
||||
}
|
||||
|
@ -245,6 +249,7 @@ public class LYOrderExtensionFactoryImpl implements OrderExtensionFactory {
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
private HotelOrderDetail convertHotel(HotelDetailResponse hotelDetailResponse) {
|
||||
HotelOrderDetail hotelOrderDetail = new HotelOrderDetail();
|
||||
HotelDetailResponse.Data data = hotelDetailResponse.getData();
|
||||
|
|
|
@ -4,7 +4,14 @@ public class BPMConstant {
|
|||
//BPM
|
||||
|
||||
public static final String H3BPM = "H3BPM";
|
||||
public static final String H3BPM_EXCEED_STANDARD_URL = "/Portal/Webservices/ExternalStartService.asmx/StartWorkflowByEntityTransJson";
|
||||
public static final String XNBPM = "XNBPM";
|
||||
public static final String H3BPM_EXCEED_STANDARD_URL = "/Portal/Webservices/ExternalStartService.asmx/StartWorkflowByEntityTransJson";//H3BPM
|
||||
public static final String XNBPM_TOKEN_URL = "/api/login/crm/ajax";//新能云枢获取token和用户id
|
||||
public static final String XNBPM_EXCEED_STANDARD_URL = "/api/openapi/v3/workflow/start";//新能云枢发起流程
|
||||
|
||||
public static final String CLIENT_ID = "xclient";//客户端id
|
||||
public static final String CLIENT_SECRET = "0a417ecce58c31b32364ce19ca8fcd15";//密钥
|
||||
|
||||
public static final String EXCEED_STANDARD_TYPE_TRAIN = "火车票超标";//方法名称
|
||||
public static final String EXCEED_STANDARD_TYPE_HOTEL = "酒店超标";//方法名称
|
||||
public static final String EXCEED_STANDARD_TYPE_FLIGHT = "机票超标";//方法名称
|
||||
|
|
|
@ -5,7 +5,9 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.client.methods.HttpUriRequest;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
|
@ -74,6 +76,18 @@ public class PostRequest {
|
|||
return gson.fromJson(responseBody, responseType);
|
||||
}
|
||||
|
||||
|
||||
public <T> T get(String url, Class<T> responseType) {
|
||||
HttpUriRequest request = new HttpGet(url);
|
||||
String responseBody;
|
||||
try {
|
||||
responseBody = EntityUtils.toString(client.execute(request).getEntity(), "UTF-8");
|
||||
return gson.fromJson(responseBody, responseType);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public Gson gson() {
|
||||
return gson;
|
||||
}
|
||||
|
|
|
@ -1,19 +1,33 @@
|
|||
package com.chint.interfaces.rest.bpm;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.authine.cloudpivot.opensdk.ApiException;
|
||||
import com.authine.cloudpivot.opensdk.CloudpivotOpenClient;
|
||||
import com.authine.cloudpivot.opensdk.model.request.workflow.StartWorkflowRequest;
|
||||
import com.authine.cloudpivot.opensdk.model.response.workflow.StartWorkflowResponse;
|
||||
import com.chint.domain.aggregates.user.User;
|
||||
import com.chint.infrastructure.util.BaseContext;
|
||||
import com.chint.interfaces.rest.base.PostRequest;
|
||||
import com.chint.interfaces.rest.bpm.XNBPM.ClientFactory;
|
||||
import com.chint.interfaces.rest.bpm.XNBPM.XNTokenDto;
|
||||
import com.chint.interfaces.rest.bpm.dot.*;
|
||||
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.bpm.dto.RescheduleDto;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.chint.infrastructure.constant.BPMConstant.H3BPM_EXCEED_STANDARD_URL;
|
||||
import static com.chint.infrastructure.constant.BPMConstant.XNBPM_TOKEN_URL;
|
||||
|
||||
|
||||
@Service
|
||||
|
@ -25,17 +39,31 @@ public class BPMRequest {
|
|||
@Value("${bpm.H3BPMUrl}")
|
||||
private String H3BPMUrl;
|
||||
|
||||
@Value("${bpm.XNBPMUrl}")
|
||||
private String XNBPMUrl;
|
||||
|
||||
//超标申请
|
||||
public BPMResponse exceedStandard(ExceedStandardDto exceedStandardDto) {
|
||||
return submitWorkflow("JT_FI_CLCESQ", exceedStandardDto);
|
||||
if ("H3BPM".equals("XNBPM")) {
|
||||
return XNBPMSubmitWorkflow("JG_AS_CLCESQ", exceedStandardDto);
|
||||
} else {
|
||||
return H3BPMSubmitWorkflow("JT_FI_CLCESQ", exceedStandardDto);
|
||||
}
|
||||
}
|
||||
|
||||
//改签
|
||||
//改签申请
|
||||
public BPMResponse reschedule(RescheduleDto rescheduleDto) {
|
||||
return submitWorkflow("JT_FI_CLGQSQ", rescheduleDto);
|
||||
if ("H3BPM".equals("XNBPM")) {
|
||||
return XNBPMSubmitWorkflow("JG_AS_CLGQSQ", rescheduleDto);
|
||||
} else {
|
||||
return H3BPMSubmitWorkflow("JT_FI_CLGQSQ", rescheduleDto);
|
||||
}
|
||||
}
|
||||
|
||||
public BPMResponse submitWorkflow(String workflowCode, Object entityObject) {
|
||||
/**
|
||||
* H3BPM
|
||||
*/
|
||||
public BPMResponse H3BPMSubmitWorkflow(String workflowCode, Object entityObject) {
|
||||
BPMBaseRequest bpmRequest = new BPMBaseRequest();
|
||||
Gson gson = new Gson();
|
||||
String entityParamValues = gson.toJson(entityObject);
|
||||
|
@ -49,4 +77,39 @@ public class BPMRequest {
|
|||
System.out.println("response = " + bpmBaseResponse);
|
||||
return bpmBaseResponse.getD();
|
||||
}
|
||||
|
||||
/**
|
||||
* 新能云枢接口
|
||||
*/
|
||||
public BPMResponse XNBPMSubmitWorkflow(String workflowCode, Object entityObject) {
|
||||
//获取用户信息
|
||||
User user = BaseContext.getCurrentUser();
|
||||
String employeeNo = user.getEmployeeNo();//sf号
|
||||
XNTokenDto xnTokenDto = httpPostRequest.get(XNBPMUrl + XNBPM_TOKEN_URL + "?code=" + employeeNo, XNTokenDto.class);
|
||||
if (!"0".equals(xnTokenDto.getErrcode())) {
|
||||
throw new RuntimeException("用户不存在!");
|
||||
}
|
||||
String userId = xnTokenDto.getUser_id();
|
||||
CloudpivotOpenClient client = ClientFactory.getInstance();
|
||||
StartWorkflowRequest request = new StartWorkflowRequest();
|
||||
Gson gson = new Gson();
|
||||
String entityParamValues = gson.toJson(entityObject);
|
||||
Type type = new TypeToken<HashMap<String, Object>>() {
|
||||
}.getType();
|
||||
HashMap<String, Object> map = gson.fromJson(entityParamValues, type);
|
||||
request.setData(map);//数据
|
||||
request.setDepartmentId("");//部门id,默认主部门
|
||||
request.setFinishStart(true);//发起流程
|
||||
request.setUserId(userId);//员工号
|
||||
request.setWorkflowCode(workflowCode);//超标流程
|
||||
try {
|
||||
StartWorkflowResponse response = client.startWorkflow(request);
|
||||
System.out.println("response = " + JSON.toJSONString(response));
|
||||
} catch (ApiException e) {
|
||||
throw new RuntimeException(e.getMessage());
|
||||
}
|
||||
BPMResponse bpmResponse = new BPMResponse();
|
||||
bpmResponse.setSuccess(true);
|
||||
return bpmResponse;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
package com.chint.interfaces.rest.bpm.XNBPM;
|
||||
|
||||
import com.authine.cloudpivot.opensdk.CloudpivotOpenClient;
|
||||
import com.authine.cloudpivot.opensdk.client.impl.JdkHttpClient;
|
||||
import com.authine.cloudpivot.opensdk.config.CloudpivotEnvConfig;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import static com.chint.infrastructure.constant.BPMConstant.*;
|
||||
|
||||
/**
|
||||
* 新能云枢
|
||||
*/
|
||||
@Service
|
||||
public class ClientFactory {
|
||||
private static CloudpivotOpenClient client;
|
||||
|
||||
private static String XNBPMUrl;
|
||||
|
||||
@Value("${bpm.XNBPMUrl}")
|
||||
public void setXNBPMUrl(String XNBPMUrl) {
|
||||
ClientFactory.XNBPMUrl = XNBPMUrl;
|
||||
}
|
||||
|
||||
|
||||
public synchronized static CloudpivotOpenClient getInstance() {
|
||||
if (client == null) {
|
||||
synchronized (CloudpivotOpenClient.class) {
|
||||
if (client == null) {
|
||||
CloudpivotEnvConfig config = new CloudpivotEnvConfig(XNBPMUrl + "/api", CLIENT_ID, CLIENT_SECRET);
|
||||
client = new CloudpivotOpenClient(config, new JdkHttpClient());
|
||||
}
|
||||
}
|
||||
}
|
||||
return client;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package com.chint.interfaces.rest.bpm.XNBPM;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class XNTokenDto {
|
||||
private String errcode;
|
||||
private String access_token;
|
||||
private String refresh_token;
|
||||
private String user_id;
|
||||
}
|
|
@ -62,4 +62,5 @@ paila:
|
|||
|
||||
|
||||
bpm:
|
||||
H3BPMUrl: http://10.207.0.245:8012
|
||||
H3BPMUrl: http://10.207.0.245:8012
|
||||
XNBPMUrl: http://10.145.30.119:8090
|
|
@ -50,4 +50,5 @@ paila:
|
|||
token-name: token
|
||||
|
||||
bpm:
|
||||
H3BPMUrl: http://10.207.0.245:8012
|
||||
H3BPMUrl: http://10.207.0.245:8012
|
||||
XNBPMUrl: http://10.145.30.119:8090
|
|
@ -1,9 +1,20 @@
|
|||
package com.chint;
|
||||
|
||||
import cn.hutool.core.lang.hash.Hash;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.authine.cloudpivot.opensdk.ApiException;
|
||||
import com.authine.cloudpivot.opensdk.CloudpivotOpenClient;
|
||||
import com.authine.cloudpivot.opensdk.model.request.bizobject.CreateBoRequest;
|
||||
import com.authine.cloudpivot.opensdk.model.request.workflow.StartWorkflowRequest;
|
||||
import com.authine.cloudpivot.opensdk.model.response.bizobject.CreateBoResponse;
|
||||
import com.authine.cloudpivot.opensdk.model.response.workflow.StartWorkflowResponse;
|
||||
import com.chint.domain.aggregates.user.User;
|
||||
import com.chint.infrastructure.constant.LYConstant;
|
||||
import com.chint.infrastructure.util.BaseContext;
|
||||
import com.chint.infrastructure.util.OrderNo;
|
||||
import com.chint.interfaces.rest.base.PostRequest;
|
||||
import com.chint.interfaces.rest.bpm.XNBPM.ClientFactory;
|
||||
import com.chint.interfaces.rest.bpm.XNBPM.XNTokenDto;
|
||||
import com.chint.interfaces.rest.bpm.dot.*;
|
||||
import com.chint.interfaces.rest.bpm.dto.BPMBaseRequest;
|
||||
import com.chint.interfaces.rest.bpm.dto.BPMResponse;
|
||||
|
@ -18,19 +29,23 @@ import com.chint.interfaces.rest.ly.dto.commonresult.Result;
|
|||
import com.chint.interfaces.rest.ly.dto.estimateprice.*;
|
||||
import com.chint.interfaces.rest.ly.vo.estimateprice.TrainPriceVo;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
import static com.chint.infrastructure.constant.BPMConstant.H3BPM_EXCEED_STANDARD_URL;
|
||||
import static com.chint.infrastructure.constant.BPMConstant.XNBPM_TOKEN_URL;
|
||||
|
||||
@SpringBootTest
|
||||
public class LYTest {
|
||||
|
@ -54,6 +69,8 @@ public class LYTest {
|
|||
@Value("${bpm.H3BPMUrl}")
|
||||
private String H3BPMUrl;
|
||||
|
||||
@Value("${bpm.XNBPMUrl}")
|
||||
private String XNBPMUrl;
|
||||
public static final String L_Y_BASE_URL = "https://api.qa.dttrip.cn/openapi";
|
||||
|
||||
public static final String L_Y_ORDER_PATH = "/openapi/api/TravelApplyOrder/ApplyOrderSync";
|
||||
|
@ -354,4 +371,87 @@ public class LYTest {
|
|||
System.out.println("response = " + response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 云枢超标流程测试
|
||||
*/
|
||||
@Test
|
||||
public void testDemo() throws Exception {
|
||||
XNTokenDto xnTokenDto = httpPostRequest.get(XNBPMUrl + XNBPM_TOKEN_URL + "?code=" + "191107079", XNTokenDto.class);
|
||||
if (!"0".equals(xnTokenDto.getErrcode())) {
|
||||
throw new RuntimeException("用户不存在!");
|
||||
}
|
||||
String userId = xnTokenDto.getUser_id();
|
||||
CloudpivotOpenClient client = ClientFactory.getInstance();
|
||||
StartWorkflowRequest request = new StartWorkflowRequest();
|
||||
Gson gson = new Gson();
|
||||
ExceedStandardDto exceedStandardDto = new ExceedStandardDto();
|
||||
exceedStandardDto.setOrderType("酒店超标")//内容选项:酒店超标,火车票超标,机票超标
|
||||
.setOrderSource("携程商旅")//内容选项:携程商旅/同程商旅
|
||||
.setOrderNo("001021214")//订单号
|
||||
.setHotelStandard("标间")//酒店超标提供:住宿标准
|
||||
.setHotelName("酒店名称")//酒店超标提供:酒店名称
|
||||
.setHouseLayout("双人床")//酒店超标提供:房型
|
||||
.setSeatingStandard("")//火车票超标提供:席别标准
|
||||
.setCabinClass("")//:机票超标提供:舱等
|
||||
.setExcessAmount(BigDecimal.valueOf(1000))//超标金额
|
||||
.setReason("酒店爆满订不到");//超标原因
|
||||
|
||||
String entityParamValues = gson.toJson(exceedStandardDto);
|
||||
Type type = new TypeToken<HashMap<String, Object>>(){}.getType();
|
||||
HashMap<String, Object> map = gson.fromJson(entityParamValues, type);
|
||||
request.setData(map);//数据
|
||||
request.setDepartmentId("");//部门id,默认主部门
|
||||
request.setFinishStart(true);//发起流程
|
||||
request.setUserId(userId);//员工号
|
||||
request.setWorkflowCode("JG_AS_CLCESQ");//超标流程
|
||||
try {
|
||||
StartWorkflowResponse response = client.startWorkflow(request);
|
||||
System.out.println("response = " + JSON.toJSONString(response));
|
||||
} catch (ApiException e) {
|
||||
throw new RuntimeException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 云枢改签流程测试
|
||||
*/
|
||||
@Test
|
||||
public void testDemo2() throws Exception {
|
||||
XNTokenDto xnTokenDto = httpPostRequest.get(XNBPMUrl + XNBPM_TOKEN_URL + "?code=" + "191107079", XNTokenDto.class);
|
||||
if (!"0".equals(xnTokenDto.getErrcode())) {
|
||||
throw new RuntimeException("用户不存在!");
|
||||
}
|
||||
String userId = xnTokenDto.getUser_id();
|
||||
CloudpivotOpenClient client = ClientFactory.getInstance();
|
||||
StartWorkflowRequest request = new StartWorkflowRequest();
|
||||
Gson gson = new Gson();
|
||||
RescheduleDto rescheduleDto = new RescheduleDto();
|
||||
rescheduleDto.setOrderType("机票改签")//内容选项:机票改签,机票退票,火车票改签,火车票退票
|
||||
.setOrderSource("携程商旅")//携程商旅/同程商旅
|
||||
.setOrderNo("00002")//订单号
|
||||
.setStartTime("2024-02-22 10:00:00")//机票改签或火车票改签提供: 原时间
|
||||
.setRebookStartTime("2024-02-23 10:00:00")//机票改签或火车票改签提供: 改签后时间
|
||||
.setTrainNumber("")//火车票改签提供: 原车次
|
||||
.setSeatingStandard("")//火车票改签提供: 原席别
|
||||
.setRebookTrainNumber("")//火车票改签提供: 改签后车次
|
||||
.setRebookSeatingStandard("")//火车票改签提供: 改签后席别
|
||||
.setFee(BigDecimal.valueOf(100))//费用
|
||||
.setReason("行程冲突");//原因
|
||||
String entityParamValues = gson.toJson(rescheduleDto);
|
||||
Type type = new TypeToken<HashMap<String, Object>>(){}.getType();
|
||||
HashMap<String, Object> map = gson.fromJson(entityParamValues, type);
|
||||
request.setData(map);//数据
|
||||
request.setDepartmentId("");//部门id,默认主部门
|
||||
request.setFinishStart(true);//发起流程
|
||||
request.setUserId(userId);//员工号
|
||||
request.setWorkflowCode("JG_AS_CLGQSQ");//改签流程
|
||||
try {
|
||||
StartWorkflowResponse response = client.startWorkflow(request);
|
||||
System.out.println("response = " + JSON.toJSONString(response));
|
||||
} catch (ApiException e) {
|
||||
throw new RuntimeException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue