BPM超标、改签接口案例测试

This commit is contained in:
dengwc 2024-02-24 17:04:44 +08:00
parent c49ab49fe9
commit f09dd77636
7 changed files with 196 additions and 6 deletions

View File

@ -290,4 +290,7 @@ public class Constant {
public static final String STANDARD_LEVEL_THREE = "STANDARD_LEVEL_THREE";//方法名称 public static final String STANDARD_LEVEL_THREE = "STANDARD_LEVEL_THREE";//方法名称
public static final String STANDARD_LEVEL_FOUR = "STANDARD_LEVEL_FOUR";//方法名称 public static final String STANDARD_LEVEL_FOUR = "STANDARD_LEVEL_FOUR";//方法名称
//BPM
public static final String EXCEED_STANDARD_URL = "http://10.207.0.245:8012/Portal/Webservices/ExternalStartService.asmx?op=StartWorkflowByEntityTransJson";
} }

View File

@ -0,0 +1,46 @@
package com.chint.interfaces.rest.ly;
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.ly.dto.bpm.BPMBaseRequest;
import com.chint.interfaces.rest.ly.dto.bpm.BPMResponse;
import com.chint.interfaces.rest.ly.dto.bpm.ExceedStandardDto;
import com.chint.interfaces.rest.ly.dto.bpm.RescheduleDto;
import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import static com.chint.infrastructure.constant.Constant.EXCEED_STANDARD_URL;
public class BPMRequest {
@Autowired
private PostRequest httpPostRequest;
//超标申请
public BPMResponse exceedStandard(ExceedStandardDto exceedStandardDto) {
return submitWorkflow("JT_FI_CLCESQ", exceedStandardDto);
}
//改签
public BPMResponse reschedule(RescheduleDto rescheduleDto) {
return submitWorkflow("JT_FI_CLGQSQ", rescheduleDto);
}
public BPMResponse submitWorkflow(String workflowCode, Object entityObject) {
BPMBaseRequest bpmRequest = new BPMBaseRequest();
Gson gson = new Gson();
String entityParamValues = gson.toJson(entityObject);
//获取用户信息
User user = BaseContext.getCurrentUser();
bpmRequest.setWorkflowCode(workflowCode)
.setUserCode(String.valueOf(user.getEmployeeNo()))//sf号
.setFinishStart(true)//true会自动流转到下一审批点false:停在手工填写节点
.setEntityParamValues(entityParamValues);
BPMResponse response = httpPostRequest.post(EXCEED_STANDARD_URL, bpmRequest, BPMResponse.class);
System.out.println("response = " + response);
return response;
}
}

View File

@ -0,0 +1,13 @@
package com.chint.interfaces.rest.ly.dto.bpm;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class BPMBaseRequest {
private String workflowCode;//流程编码
private String userCode;//发起人SF号
private Boolean finishStart;//是否结果填单节点
private String EntityParamValues;//数据
}

View File

@ -0,0 +1,10 @@
package com.chint.interfaces.rest.ly.dto.bpm;
import lombok.Data;
@Data
public class BPMResponse {
private Boolean Success;//创建成功标志
private String InstanceID;//实例id
private String Message;//返回消息
}

View File

@ -0,0 +1,27 @@
package com.chint.interfaces.rest.ly.dto.bpm;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 超标
*/
@Data
@Accessors(chain = true)
public class ExceedStandardDto {
private String OrderType; //订单类型 是否必填 内容选项酒店超标火车票超标机票超标
private String OrderSource; //订单来源 是否必填 携程商旅/同程商旅
private String OrderNo; //订单号 是否必填
private String HotelStandard; //住宿标准 是否必填 当订单类型=酒店超标 时需提供
private String HotelName; //酒店名称 是否必填 当订单类型=酒店超标 时需提供
private String HouseLayout; //房型 是否必填 当订单类型=酒店超标 时需提供
private String SeatingStandard; //席别标准 是否必填 当订单类型=火车票超标 时需提供
private String CabinClass; //舱等 是否必填 当订单类型=机票超标 时需提供
private BigDecimal ExcessAmount;//超标金额 是否必填
private String Reason; //超标原因 是否必填
}

View File

@ -0,0 +1,26 @@
package com.chint.interfaces.rest.ly.dto.bpm;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* 改签
*/
@Data
@Accessors(chain = true)
public class RescheduleDto {
private String OrderType;//订单类型 是否必填:
private String OrderSource;//订单来源 是否必填:
private String OrderNo;//订单号 是否必填:
private String StartTime;//原时间 是否必填: 机票改签或火车票改签提供
private String RebookStartTime;//改签后时间 是否必填: 机票改签或火车票改签提供
private String TrainNumber;//原车次 是否必填: 火车票改签提供
private String SeatingStandard;//原席别 是否必填: 火车票改签提供
private String RebookTrainNumber;//改签后车次 是否必填: 火车票改签提供
private String RebookSeatingStandard;//改签后席别 是否必填: 火车票改签提供
private BigDecimal Fee;//费用 是否必填:
private String Reason;//原因 是否必填:
}

View File

@ -4,16 +4,25 @@ import com.chint.domain.aggregates.base.BaseEntity;
import com.chint.domain.aggregates.user.User; import com.chint.domain.aggregates.user.User;
import com.chint.infrastructure.constant.Constant; import com.chint.infrastructure.constant.Constant;
import com.chint.infrastructure.util.BaseContext; import com.chint.infrastructure.util.BaseContext;
import com.chint.interfaces.rest.base.PostRequest;
import com.chint.interfaces.rest.ly.LYLoginRequest; import com.chint.interfaces.rest.ly.LYLoginRequest;
import com.chint.interfaces.rest.ly.LYPostRequest; import com.chint.interfaces.rest.ly.LYPostRequest;
import com.chint.interfaces.rest.ly.LYTokenRequest; import com.chint.interfaces.rest.ly.LYTokenRequest;
import com.chint.interfaces.rest.ly.LYUserRequest; import com.chint.interfaces.rest.ly.LYUserRequest;
import com.chint.interfaces.rest.ly.dto.applyordersync.*; import com.chint.interfaces.rest.ly.dto.applyordersync.*;
import com.chint.interfaces.rest.ly.dto.bpm.BPMBaseRequest;
import com.chint.interfaces.rest.ly.dto.bpm.BPMResponse;
import com.chint.interfaces.rest.ly.dto.bpm.ExceedStandardDto;
import com.chint.interfaces.rest.ly.dto.bpm.RescheduleDto;
import com.chint.interfaces.rest.ly.dto.commonresult.Result; import com.chint.interfaces.rest.ly.dto.commonresult.Result;
import com.chint.interfaces.rest.ly.dto.estimateprice.*; import com.chint.interfaces.rest.ly.dto.estimateprice.*;
import com.chint.interfaces.rest.ly.vo.estimateprice.HotelListVo; import com.chint.interfaces.rest.ly.vo.estimateprice.HotelListVo;
import com.chint.interfaces.rest.ly.vo.estimateprice.TrainPriceVo; import com.chint.interfaces.rest.ly.vo.estimateprice.TrainPriceVo;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
@ -43,6 +52,9 @@ public class LYTest {
@Autowired @Autowired
private LYLoginRequest loginRequest; private LYLoginRequest loginRequest;
@Autowired
private PostRequest httpPostRequest;
public static final String L_Y_BASE_URL = "https://api.qa.dttrip.cn/openapi"; 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"; public static final String L_Y_ORDER_PATH = "/openapi/api/TravelApplyOrder/ApplyOrderSync";
@ -62,6 +74,9 @@ public class LYTest {
private final String minPriceUrl = L_Y_BASE_URL + L_Y_HOTLE_MIN_PRICE_PATH; private final String minPriceUrl = L_Y_BASE_URL + L_Y_HOTLE_MIN_PRICE_PATH;
private final String hotleListUrl = L_Y_BASE_URL + L_Y_HOTLE_LIST_PATH; private final String hotleListUrl = L_Y_BASE_URL + L_Y_HOTLE_LIST_PATH;
private final String ExceedStandardUrl = "http://10.207.0.245:8012/Portal/Webservices/ExternalStartService.asmx?op=StartWorkflowByEntityTransJson";
private User user = new User(1L, 230615020L, 1, "卢麟哲", "1033719135@qq.com", "15857193365"); private User user = new User(1L, 230615020L, 1, "卢麟哲", "1033719135@qq.com", "15857193365");
private User hxh = new User(1L, 231116009L, 1, "黄小恒", "1628870217@qq.com", "18296007063"); private User hxh = new User(1L, 231116009L, 1, "黄小恒", "1628870217@qq.com", "18296007063");
@ -126,8 +141,8 @@ public class LYTest {
System.out.println(max); System.out.println(max);
} }
// @Test // @Test
//外部差旅单同步 //外部差旅单同步
void ApplyOrderSync() { void ApplyOrderSync() {
AOSParam aosParam = new AOSParam(); AOSParam aosParam = new AOSParam();
aosParam.setOutTravelApplyNo("No000001"); aosParam.setOutTravelApplyNo("No000001");
@ -262,29 +277,79 @@ public class LYTest {
System.out.println(post); System.out.println(post);
} }
// @Test // @Test
void loadToken() { void loadToken() {
System.out.println(lyTokenRequest.loadToken()); System.out.println(lyTokenRequest.loadToken());
} }
// @Test // @Test
void saveCurrentUser2Ly() { void saveCurrentUser2Ly() {
// BaseContext.setCurrentUser(user); // BaseContext.setCurrentUser(user);
BaseContext.setCurrentUser(hxh); BaseContext.setCurrentUser(hxh);
System.out.println(lyUserRequest.saveCurrentUser()); System.out.println(lyUserRequest.saveCurrentUser());
} }
// @Test // @Test
void loginLY() { void loginLY() {
BaseContext.setCurrentUser(user); BaseContext.setCurrentUser(user);
System.out.println(loginRequest.login(L_Y_ENTRANCE_HOME)); System.out.println(loginRequest.login(L_Y_ENTRANCE_HOME));
} }
// @Test // @Test
void loginLYPC() { void loginLYPC() {
BaseContext.setCurrentUser(user); BaseContext.setCurrentUser(user);
System.out.println(loginRequest.loginPC(L_Y_ENTRANCE_HOME)); System.out.println(loginRequest.loginPC(L_Y_ENTRANCE_HOME));
} }
//超标
@Test
void exceedStandard() {
BPMBaseRequest bpmRequest = new BPMBaseRequest();
Gson gson = new Gson();
ExceedStandardDto exceedStandardDto = new ExceedStandardDto();
exceedStandardDto.setOrderType("酒店超标")//内容选项酒店超标火车票超标机票超标
.setOrderSource("携程商旅")//内容选项:携程商旅/同程商旅
.setOrderNo("00002")//订单号
.setHotelStandard("标间")//酒店超标提供住宿标准
.setHotelName("酒店名称")//酒店超标提供酒店名称
.setHouseLayout("双人床")//酒店超标提供房型
.setSeatingStandard("")//火车票超标提供席别标准
.setCabinClass("")//机票超标提供舱等
.setExcessAmount(BigDecimal.valueOf(100))//超标金额
.setReason("酒店爆满订不到");//超标原因
String entityParamValues = gson.toJson(exceedStandardDto);
bpmRequest.setWorkflowCode("JT_FI_CLCESQ")//流程编码
.setUserCode("231116011")//sf号
.setFinishStart(true)//true会自动流转到下一审批点false:停在手工填写节点
.setEntityParamValues(entityParamValues);
BPMResponse response = httpPostRequest.post(ExceedStandardUrl, bpmRequest, BPMResponse.class);
System.out.println("response = " + response);
}
//改签
@Test
void reschedule() {
BPMBaseRequest bpmRequest = new BPMBaseRequest();
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);
bpmRequest.setWorkflowCode("JT_FI_CLGQSQ")//流程编码
.setUserCode("231116011")//sf号
.setFinishStart(true)//true会自动流转到下一审批点false:停在手工填写节点
.setEntityParamValues(entityParamValues);
BPMResponse response = httpPostRequest.post(ExceedStandardUrl, bpmRequest, BPMResponse.class);
System.out.println("response = " + response);
}
} }