diff --git a/src/main/java/com/chint/application/in/RankController.java b/src/main/java/com/chint/application/in/RankController.java index 6c00b2aa..c9df5646 100644 --- a/src/main/java/com/chint/application/in/RankController.java +++ b/src/main/java/com/chint/application/in/RankController.java @@ -21,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController @RequestMapping("/rank") public class RankController { @@ -89,6 +91,10 @@ public class RankController { .setProductType(String.valueOf(travelStandardsData.getProductType())) .setPrice(travelStandardsData.getPrice()) .setCityTag(travelStandardsData.getCityTag()); + List travelStandardsList = travelStandardsRepository.findByTravelStandards(travelStandards); + if (travelStandardsList.isEmpty()) { + return Result.error("该差标已经存在,不可重复添加!"); + } travelStandards = travelStandardsRepository.save(travelStandards); return Result.Success(CommonMessageConstant.SUCCESS, travelStandards); } diff --git a/src/main/java/com/chint/domain/repository/TravelStandardsRepository.java b/src/main/java/com/chint/domain/repository/TravelStandardsRepository.java index e8c5be77..702b2b0c 100644 --- a/src/main/java/com/chint/domain/repository/TravelStandardsRepository.java +++ b/src/main/java/com/chint/domain/repository/TravelStandardsRepository.java @@ -12,4 +12,6 @@ public interface TravelStandardsRepository { void saveAll(List travelStandardsList); List findByStandardLevel(String standardLevel); + List findByTravelStandards(TravelStandards travelStandards); + } diff --git a/src/main/java/com/chint/infrastructure/constant/BPMConstant.java b/src/main/java/com/chint/infrastructure/constant/BPMConstant.java index 715aa5a6..33d0efc8 100644 --- a/src/main/java/com/chint/infrastructure/constant/BPMConstant.java +++ b/src/main/java/com/chint/infrastructure/constant/BPMConstant.java @@ -2,7 +2,9 @@ package com.chint.infrastructure.constant; public class BPMConstant { //BPM - public static final String EXCEED_STANDARD_URL = "http://10.207.0.245:8012/Portal/Webservices/ExternalStartService.asmx?op=StartWorkflowByEntityTransJson"; + + public static final String H3BPM = "H3BPM"; + public static final String H3BPM_EXCEED_STANDARD_URL = "/Portal/Webservices/ExternalStartService.asmx/StartWorkflowByEntityTransJson"; public static final String EXCEED_STANDARD_TYPE_TRAIN = "火车票超标";//方法名称 public static final String EXCEED_STANDARD_TYPE_HOTEL = "酒店超标";//方法名称 public static final String EXCEED_STANDARD_TYPE_FLIGHT = "机票超标";//方法名称 diff --git a/src/main/java/com/chint/infrastructure/repository/TravelStandardsRepositoryImpl.java b/src/main/java/com/chint/infrastructure/repository/TravelStandardsRepositoryImpl.java index ac14c920..12ce94fb 100644 --- a/src/main/java/com/chint/infrastructure/repository/TravelStandardsRepositoryImpl.java +++ b/src/main/java/com/chint/infrastructure/repository/TravelStandardsRepositoryImpl.java @@ -30,4 +30,11 @@ public class TravelStandardsRepositoryImpl implements TravelStandardsRepository public List findByStandardLevel(String standardLevel) { return jdbcTravelStandardsRepository.findByStandardLevel(standardLevel); } + + @Override + public List findByTravelStandards(TravelStandards travelStandards) { + return jdbcTravelStandardsRepository.findByProductTypeAndStandardLevelAndCityTag( + travelStandards.getProductType(), travelStandards.getStandardLevel(), travelStandards.getCityTag()); + } + } diff --git a/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcTravelStandardsRepository.java b/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcTravelStandardsRepository.java index 729da6b9..889aacd5 100644 --- a/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcTravelStandardsRepository.java +++ b/src/main/java/com/chint/infrastructure/repository/jdbc/JdbcTravelStandardsRepository.java @@ -11,4 +11,5 @@ import java.util.List; public interface JdbcTravelStandardsRepository extends CrudRepository { List findByStandardLevel(String standardLevel); + List findByProductTypeAndStandardLevelAndCityTag(String productType,String standardLevel,String cityTag); } diff --git a/src/main/java/com/chint/interfaces/rest/bpm/BPMController.java b/src/main/java/com/chint/interfaces/rest/bpm/BPMController.java new file mode 100644 index 00000000..8ae3319f --- /dev/null +++ b/src/main/java/com/chint/interfaces/rest/bpm/BPMController.java @@ -0,0 +1,44 @@ +package com.chint.interfaces.rest.bpm; + +import com.chint.domain.aggregates.standards.TravelStandards; +import com.chint.domain.value_object.TravelStandardsData; +import com.chint.infrastructure.constant.BPMConstant; +import com.chint.infrastructure.constant.CommonMessageConstant; +import com.chint.infrastructure.util.Result; +import com.chint.interfaces.rest.bpm.dot.BPMBack; +import io.swagger.annotations.ApiOperation; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +import static com.chint.infrastructure.constant.BPMConstant.H3BPM; + +@RestController +@RequestMapping("/public/BPM") +public class BPMController { + //超标 + @ApiOperation("BPM超标审批结果回传") + @PostMapping("/exceedStandard/back") + public Result exceedStandardBack(@RequestBody BPMBack bpmBack) { + //H3BPM平台 + if (H3BPM.equals(bpmBack.getTag())) { + System.out.println("H3BPM"); + } + System.out.println("bpmBack = " + bpmBack); + return Result.Success(CommonMessageConstant.SUCCESS); + } + + //改签 + @ApiOperation("BPM改签审批结果回传") + @PostMapping("/reschedule/back") + public Result rescheduleBack(@RequestBody BPMBack bpmBack) { + //获取订单号和审批结果 + + return Result.Success(CommonMessageConstant.SUCCESS); + } +} diff --git a/src/main/java/com/chint/interfaces/rest/bpm/BPMRequest.java b/src/main/java/com/chint/interfaces/rest/bpm/BPMRequest.java index c3f58808..61877ba8 100644 --- a/src/main/java/com/chint/interfaces/rest/bpm/BPMRequest.java +++ b/src/main/java/com/chint/interfaces/rest/bpm/BPMRequest.java @@ -3,15 +3,17 @@ package com.chint.interfaces.rest.bpm; 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.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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import static com.chint.infrastructure.constant.BPMConstant.EXCEED_STANDARD_URL; +import static com.chint.infrastructure.constant.BPMConstant.H3BPM_EXCEED_STANDARD_URL; @Service @@ -20,6 +22,9 @@ public class BPMRequest { @Autowired private PostRequest httpPostRequest; + @Value("${bpm.H3BPMUrl}") + private String H3BPMUrl; + //超标申请 public BPMResponse exceedStandard(ExceedStandardDto exceedStandardDto) { return submitWorkflow("JT_FI_CLCESQ", exceedStandardDto); @@ -40,8 +45,8 @@ public class BPMRequest { .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; + BPMBaseResponse bpmBaseResponse = httpPostRequest.post(H3BPMUrl + H3BPM_EXCEED_STANDARD_URL, bpmRequest, BPMBaseResponse.class); + System.out.println("response = " + bpmBaseResponse); + return bpmBaseResponse.getD(); } } diff --git a/src/main/java/com/chint/interfaces/rest/bpm/dot/BPMBack.java b/src/main/java/com/chint/interfaces/rest/bpm/dot/BPMBack.java new file mode 100644 index 00000000..bc9c0a62 --- /dev/null +++ b/src/main/java/com/chint/interfaces/rest/bpm/dot/BPMBack.java @@ -0,0 +1,10 @@ +package com.chint.interfaces.rest.bpm.dot; + +import lombok.Data; + +@Data +public class BPMBack { + private String tag;//BPM平台:H3BPM/其它 + private String orderNo;//订单号 + private String result;//审批结果:通过/拒绝 +} diff --git a/src/main/java/com/chint/interfaces/rest/bpm/dot/BPMBaseResponse.java b/src/main/java/com/chint/interfaces/rest/bpm/dot/BPMBaseResponse.java new file mode 100644 index 00000000..3c2360d5 --- /dev/null +++ b/src/main/java/com/chint/interfaces/rest/bpm/dot/BPMBaseResponse.java @@ -0,0 +1,9 @@ +package com.chint.interfaces.rest.bpm.dot; + +import com.chint.interfaces.rest.bpm.dto.BPMResponse; +import lombok.Data; + +@Data +public class BPMBaseResponse { + private BPMResponse d; +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 799d13ca..4d435a38 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -24,3 +24,6 @@ cTrip: appKey: obk_zhengtai2024 appSecurity: fI3}FZX+zUdxPa2W!R6I2gYO requestSecret: zhengtai2024_nEbmKfOo + +bpm: + H3BPMUrl: http://10.207.0.245:8012 \ No newline at end of file diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index ab43f354..b7737165 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -37,4 +37,7 @@ cTrip: corpId: zhengtai2024 appKey: obk_zhengtai2024 appSecurity: fI3}FZX+zUdxPa2W!R6I2gYO - requestSecret: zhengtai2024_nEbmKfOo \ No newline at end of file + requestSecret: zhengtai2024_nEbmKfOo + +bpm: + H3BPMUrl: http://10.207.0.245:8012 \ No newline at end of file diff --git a/src/test/java/com/chint/LYTest.java b/src/test/java/com/chint/LYTest.java index e2ac2f46..2dedcd46 100644 --- a/src/test/java/com/chint/LYTest.java +++ b/src/test/java/com/chint/LYTest.java @@ -4,20 +4,23 @@ import com.chint.domain.aggregates.user.User; import com.chint.infrastructure.constant.LYConstant; import com.chint.infrastructure.util.BaseContext; import com.chint.interfaces.rest.base.PostRequest; +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.chint.interfaces.rest.ly.LYLoginRequest; import com.chint.interfaces.rest.ly.LYPostRequest; import com.chint.interfaces.rest.ly.LYTokenRequest; import com.chint.interfaces.rest.ly.LYUserRequest; import com.chint.interfaces.rest.ly.dto.applyordersync.*; -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.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 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.math.BigDecimal; @@ -26,6 +29,9 @@ import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Map; + +import static com.chint.infrastructure.constant.BPMConstant.H3BPM_EXCEED_STANDARD_URL; + @SpringBootTest public class LYTest { @@ -45,6 +51,9 @@ public class LYTest { @Autowired private PostRequest httpPostRequest; + @Value("${bpm.H3BPMUrl}") + private String H3BPMUrl; + 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"; @@ -64,8 +73,7 @@ public class LYTest { 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 ExceedStandardUrl = "http://10.207.0.245:8012/Portal/Webservices/ExternalStartService.asmx?op=StartWorkflowByEntityTransJson"; - + private final String ExceedStandardUrl = "http://10.207.0.245:8012/Portal/Webservices/ExternalStartService.asmx/StartWorkflowByEntityTransJson"; private User user = new User(1L, 230615020L, 1, "卢麟哲", "1033719135@qq.com", "15857193365"); private User hxh = new User(1L, 231116009L, 1, "黄小恒", "1628870217@qq.com", "18296007063"); @@ -282,42 +290,44 @@ public class LYTest { // @Test void loginLY() { BaseContext.setCurrentUser(user); - System.out.println(loginRequest.login(LYConstant.L_Y_ENTRANCE_HOME,null)); + System.out.println(loginRequest.login(LYConstant.L_Y_ENTRANCE_HOME, null)); } // @Test void loginLYPC() { BaseContext.setCurrentUser(user); - System.out.println(loginRequest.loginPC(LYConstant.L_Y_ENTRANCE_HOME,null)); + System.out.println(loginRequest.loginPC(LYConstant.L_Y_ENTRANCE_HOME, null)); } //超标 -// @Test + @Test void exceedStandard() { BPMBaseRequest bpmRequest = new BPMBaseRequest(); Gson gson = new Gson(); ExceedStandardDto exceedStandardDto = new ExceedStandardDto(); exceedStandardDto.setOrderType("酒店超标")//内容选项:酒店超标,火车票超标,机票超标 .setOrderSource("携程商旅")//内容选项:携程商旅/同程商旅 - .setOrderNo("00002")//订单号 + .setOrderNo("001021214")//订单号 .setHotelStandard("标间")//酒店超标提供:住宿标准 .setHotelName("酒店名称")//酒店超标提供:酒店名称 .setHouseLayout("双人床")//酒店超标提供:房型 .setSeatingStandard("")//火车票超标提供:席别标准 .setCabinClass("")//:机票超标提供:舱等 - .setExcessAmount(BigDecimal.valueOf(100))//超标金额 + .setExcessAmount(BigDecimal.valueOf(1000))//超标金额 .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); + BPMBaseResponse bpmBaseResponse = httpPostRequest.post(H3BPMUrl + H3BPM_EXCEED_STANDARD_URL, bpmRequest, BPMBaseResponse.class); + System.out.println("response = " + bpmBaseResponse); + BPMResponse response = bpmBaseResponse.getD(); System.out.println("response = " + response); } //改签 -// @Test + @Test void reschedule() { BPMBaseRequest bpmRequest = new BPMBaseRequest(); Gson gson = new Gson(); @@ -338,7 +348,9 @@ public class LYTest { .setUserCode("231116011")//sf号 .setFinishStart(true)//true:会自动流转到下一审批点,false:停在手工填写节点 .setEntityParamValues(entityParamValues); - BPMResponse response = httpPostRequest.post(ExceedStandardUrl, bpmRequest, BPMResponse.class); + BPMBaseResponse bpmBaseResponse = httpPostRequest.post(H3BPMUrl + H3BPM_EXCEED_STANDARD_URL, bpmRequest, BPMBaseResponse.class); + System.out.println("response = " + bpmBaseResponse); + BPMResponse response = bpmBaseResponse.getD(); System.out.println("response = " + response); }