Przeglądaj źródła

接收到航通007-适配billCode的单号以逗号分隔

linbl 11 miesięcy temu
rodzic
commit
6bde9607c1

+ 8 - 3
sp-service/level-one-server/src/main/java/com/pj/tb_order/TbOrderService.java

@@ -17,6 +17,7 @@ import com.pj.api.client.payment_server.PaymentServerInterface;
 import com.pj.api.consts.FeignFactory;
 import com.pj.api.dto.*;
 import com.pj.common.core.exception.ServiceException;
+import com.pj.common.core.text.Convert;
 import com.pj.common.core.utils.StringUtils;
 import com.pj.current.config.SystemObject;
 import com.pj.current.dto.APPLoginUserInfo;
@@ -795,14 +796,18 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
 
     // TODO: 2023/8/28 系统接收到航通007接口信息:车辆已出一级市场(系统接收到这个信息时,证明已经查验通过,不会有进出口申报单退单)
     public boolean orderFinish(HtPassCardDTO htPassCardDTO) {
-        String billCode = htPassCardDTO.getBillCode();
+        String billCodeStr = htPassCardDTO.getBillCode();
+        List<String> billCodeList = Arrays.stream(billCodeStr.split(",")).collect(Collectors.toList());
+
         //获取出了一级市场的所有边民订单
         LambdaQueryWrapper<TbOrder> wrapper = new LambdaQueryWrapper<>();
         //wrapper.eq(TbOrder::getPreNo, billCode);
-        wrapper.eq(TbOrder::getPreIeportNo, billCode);
+        //wrapper.eq(TbOrder::getPreIeportNo, billCode);
+        wrapper.in(TbOrder::getPreIeportNo, billCodeList);
+
         List<TbOrder> tbOrders = tbOrderMapper.selectList(wrapper);
         if (tbOrders.isEmpty()) {
-            throw new ServiceException(" ------接收到航通007车辆出卡三接口信息,当前获取到的一级市场的边民订单为空。 单证代码billCode = " + billCode);
+            throw new ServiceException(" ------接收到航通007车辆出卡三接口信息,当前获取到的一级市场的边民订单为空。 单证代码billCodeStr = " + billCodeStr);
         }
 
         TbTradeArea area = tbTradeAreaService.getById(tbOrders.get(0).getTradeAreaId());

+ 8 - 1
sp-service/payment-server/src/main/java/com/pj/xml/MessageXML.java

@@ -9,9 +9,11 @@ import com.pj.bank_info.BankInfo;
 import com.pj.utils.CryptoUtil;
 
 import java.text.SimpleDateFormat;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
+import java.util.stream.Collectors;
 
 public class MessageXML {
     static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss sss");
@@ -422,11 +424,16 @@ public class MessageXML {
     public static String SXB023(PaymentDto paymentDto) {
         paymentDto.setFieldCode("861501");
         String date = sdf.format(new Date());
+        List<String> tradeNoList = Arrays.stream(paymentDto.getTradeNos().split(",")).collect(Collectors.toList());
+        String orderXml = "";
+        for (String tradeNo: tradeNoList) {
+            orderXml = orderXml + "<Order>" + tradeNo + "</Order>\n";
+        }
         String payload=
                 "<payload xsi:type=\"carpoolDTO\">" +
                 "<registration>" + paymentDto.getVoyageNo() + "</registration>\n" +  //车辆批号
                 "<plateNumber>" + paymentDto.getVeNo() + "</plateNumber>\n" +        //车牌号
-                "<Order>" + paymentDto.getTradeNos() + "</Order>\n" +//订单号	n个
+                        orderXml +//订单号	n个
                 "</payload>";
         String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" +
                 "<message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"\">\n" +