审查视图

src/test/java/com/sy/service/impl/GatherInfoHandleImplTest.java 8.3 KB
1 2 3 4 5 6
package com.sy.service.impl;

import com.sy.bwAnalysis.AnalysisRoute;
import com.sy.bwAnalysis.GatherInfoAnalysis;
import com.sy.bwAnalysis.MessageAnalysis;
import com.sy.bwAssist.Message;
7
import com.sy.mapper.LandListDao;
8
import com.sy.model.ChannelEnum;
9 10 11 12
import com.sy.model.GatherInfo;
import com.sy.service.RedisService;
import com.sy.service.router.MessageRouter;
import com.sy.service.router.RouterContext;
13
import lombok.extern.slf4j.Slf4j;
14 15 16
import org.apache.log4j.PropertyConfigurator;
import org.junit.Test;
import org.junit.runner.RunWith;
17
18 19 20 21 22
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
23 24
import javax.annotation.Resource;
25 26
@RunWith(SpringRunner.class)
@SpringBootTest
27
@Slf4j
28 29
public class GatherInfoHandleImplTest {
30
31 32 33 34 35 36 37 38 39 40 41
    @Autowired
    RedisService redisService;

    @Qualifier("X21")
    @Autowired
    MessageRouter messageRouterX21;

    @Qualifier("X22")
    @Autowired
    MessageRouter messageRouterX22;
42 43 44
    @Resource
    private LandListDao landListDao;
45
    //车牌号
46
    private String voNo = "豫NT0267";
47
    //二维码
48
    private static String BARCODE = "2e1-43ce-bf14-bc0d4fb8b877";
49 50
    //场站编号
    private String areaID = "4604600000";
51
52 53 54
    //进出场类型I/E
    private String ie = "I";
55 56 57


    //进通道报文X21
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
    private static String IMPORT_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
            "<MSG>\n" +
            "\t<META>\n" +
            "\t\t<SNDR>KAO</SNDR>\n" +
            "\t\t<RCVR/>\n" +
            "\t\t<SEQN>20220624063157</SEQN>\n" +
            "\t\t<DDTM>20220624063157</DDTM>\n" +
            "\t\t<TYPE>KAKO</TYPE>\n" +
            "\t\t<STYP>CARM</STYP>\n" +
            "\t</META>\n" +
            "\t<GATHER_INFO AREA_ID=\"${areaID}\" CHNL_NO=\"${chnlNo}\" I_E_TYPE=\"${IETYPE}\" SEQ_NO=\"20220624063118000004\">\n" +
            "\t\t<IC>\n" +
            "\t\t\t<DR_IC_NO/>\n" +
            "\t\t\t<IC_DR_CUSTOMS_NO/>\n" +
            "\t\t\t<IC_CO_CUSTOMS_NO/>\n" +
            "\t\t\t<IC_BILL_NO/>\n" +
            "\t\t\t<IC_FORM_TYPE/>\n" +
            "\t\t\t<IC_GROSS_WT/>\n" +
            "\t\t\t<IC_VE_CUSTOMS_NO/>\n" +
            "\t\t\t<IC_VE_NAME/>\n" +
            "\t\t\t<IC_CONTA_ID/>\n" +
            "\t\t\t<IC_ESEAL_ID/>\n" +
            "\t\t\t<IC_REG_DATETIME/>\n" +
            "\t\t\t<IC_PER_DAY_DUE/>\n" +
            "\t\t\t<GPS_ID/>\n" +
            "\t\t</IC>\n" +
            "\t\t<WEIGHT>\n" +
            "\t\t\t<GROSS_WT>${cross_weight}</GROSS_WT>\n" +
            "\t\t</WEIGHT>\n" +
            "\t\t<CAR>\n" +
            "\t\t\t<VE_NAME>${car}</VE_NAME>\n" +
            "\t\t\t<CAR_EC_NO/>\n" +
            "\t\t\t<CAR_EC_NO2/>\n" +
            "\t\t\t<VE_CUSTOMS_NO/>\n" +
            "\t\t\t<VE_WT/>\n" +
            "\t\t</CAR>\n" +
            "\t\t<CONTA>\n" +
            "\t\t\t<CONTA_NUM/>\n" +
            "\t\t\t<CONTA_RECO>1</CONTA_RECO>\n" +
            "\t\t\t<CONTA_ID_F/>\n" +
            "\t\t\t<CONTA_ID_B/>\n" +
            "\t\t\t<CONTA_MODEL_F/>\n" +
            "\t\t\t<CONTA_MODEL_B/>\n" +
            "\t\t</CONTA>\n" +
            "\t\t<ORDER_NUM/>\n" +
            "\t\t<BAR_CODE>${barcode}</BAR_CODE>\n" +
            "\t\t<SEAL>\n" +
            "\t\t\t<ESEAL_ID/>\n" +
            "\t\t\t<SEAL_KEY/>\n" +
            "\t\t</SEAL>\n" +
            "\t</GATHER_INFO>\n" +
            "</MSG>";
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
    /**
     * 入区不放行代码
     */
    private static String CHCEK_RESULT_CODE_I_ERR= "11000000200000000000";
    /**
     * 入区放行代码
     */
    private static String CHCEK_RESULT_CODE_I_SUC= "00000000200000000000";
    /**
     * 出区不放行代码
     */
    private static String CHCEK_RESULT_CODE_E_ERR= "11000000100000000000";
    /**
     * 出区放行代码
     */
    private static String CHCEK_RESULT_CODE_E_SUC= "00000000100000000000";
朱兆平 authored
128
    private static String RESULT_CODE_DES_SUC = "海关放行";
129
130
    private static String RESULT_CODE_DES_ERR = "海关不放行";
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155

    //X22指令报文
    private static String X22_COMMANDINFO_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
            "<MSG>\n" +
            "\t<META>\n" +
            "\t\t<SNDR>KAO</SNDR>\n" +
            "\t\t<RCVR/>\n" +
            "\t\t<SEQN>20220829110020</SEQN>\n" +
            "\t\t<DDTM>20220829110020</DDTM>\n" +
            "\t\t<TYPE>KAKO</TYPE>\n" +
            "\t\t<STYP>CARM</STYP>\n" +
            "\t</META>\n" +
            "\t<COMMAND_INFO AREA_ID=\"${AREA_ID}\" CHNL_NO=\"${CHNL_NO}\" I_E_TYPE=\"${I_E_TYPE}\" SEQ_NO=\"${SEQ_NO}\">\n" +
            "\t\t<CHECK_RESULT>${CHECK_RESULT}</CHECK_RESULT>\n" +
            "\t\t<OP_HINT>${OP_HINT}</OP_HINT>\n" +
            "\t\t<SEAL>\n" +
            "\t\t\t<ESEAL_ID/>\n" +
            "\t\t\t<SEAL_KEY/>\n" +
            "\t\t\t<OPEN_TIMES/>\n" +
            "\t\t\t<ESEAL_IC_NO/>\n" +
            "\t\t</SEAL>\n" +
            "\t\t<SZ_MSG/>\n" +
            "\t</COMMAND_INFO>\n" +
            "</MSG>";
156 157 158 159 160 161 162 163 164


    /**
     * 进场测试
     */
    @Test
    public void exportDownload_I() {
        //车牌号
        //过卡重量
165
        String cross_weight= String.valueOf(5724);
166
        //场站编号
167
        String areaID = ChannelEnum.NORTH_K1_IN_2.getArea();
168
        //通道编号
169
        String chnlNo = ChannelEnum.NORTH_K1_IN_2.getChannel();
170 171 172
        //进出场类型I/E
        String ie = "I";
        //二维码
173
        String barcode = BARCODE;
174
175
        log.error("开始进场测试");
176 177 178 179 180 181 182 183 184 185 186 187
        IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
                .replace("${cross_weight}",cross_weight)
                .replace("${areaID}",areaID)
                .replace("${chnlNo}",chnlNo)
                .replace("${IETYPE}",ie)
                .replace("${barcode}",barcode);
        //进港提货测试

        String string = IMPORT_XML.replace("Msg","MSG");
        MessageAnalysis analysis = new MessageAnalysis();
        Message message = analysis.readTicketsXml(string);
188
        mesageHandle(message);
189 190 191 192 193 194 195 196 197 198 199

    }

    /**
     * 出场测试
     */
    @Test
    public void exportDownload_E(){
        PropertyConfigurator.configure("config/log4j.properties");

        //过卡重量
200
        String cross_weight= String.valueOf(11000);
201
        //场站编号
202
        String areaID = ChannelEnum.NORTH_K1_EX_2.getArea();
203
        //通道编号
204
        String chnlNo = ChannelEnum.NORTH_K1_EX_2.getChannel();
205 206 207
        //进出场类型I/E
        String ie = "E";
        //二维码
208
        String barcode = BARCODE;
209
210
        log.error("开始出口送货离场测试");
211 212 213 214 215 216 217 218 219 220 221 222
        IMPORT_XML= IMPORT_XML.replace("${car}",voNo)
                .replace("${cross_weight}",cross_weight)
                .replace("${areaID}",areaID)
                .replace("${chnlNo}",chnlNo)
                .replace("${IETYPE}",ie)
                .replace("${barcode}",barcode);
        //进港提货测试
        String string = IMPORT_XML.replace("Msg","MSG");
        MessageAnalysis analysis = new MessageAnalysis();
        Message message = analysis.readTicketsXml(string);

223 224 225 226 227 228 229 230 231
        mesageHandle(message);

    }

    /**
     * 接收到金二X22指令测试
     */
    @Test
    public void X22Test(){
232 233 234
        X22_COMMANDINFO_XML= X22_COMMANDINFO_XML.replace("${AREA_ID}",ChannelEnum.NORTH_K1_IN_2.getArea())
                .replace("${CHNL_NO}",ChannelEnum.NORTH_K1_IN_2.getChannel())
                .replace("${I_E_TYPE}","I")
235 236 237 238 239 240 241 242 243 244 245 246 247 248
                .replace("${SEQ_NO}","20220624063118000004")
                .replace("${CHECK_RESULT}",CHCEK_RESULT_CODE_E_SUC)
                .replace("${OP_HINT}",RESULT_CODE_DES_SUC);

        String string = X22_COMMANDINFO_XML.replace("Msg","MSG");
        MessageAnalysis analysis = new MessageAnalysis();
        Message message = analysis.readTicketsXml(string);


        mesageHandle(message);

    }

    public void mesageHandle(Message message){
249 250 251 252 253 254 255 256 257 258 259 260 261 262
        if ("CARM".equals(message.getMeta().getSmType())) {
            //策略判断
            if(message.getComInfo() !=null){
                RouterContext routerContext = new RouterContext(messageRouterX22);
                routerContext.executeStrategy(message);
            }else{
                RouterContext routerContext = new RouterContext(messageRouterX21);
                routerContext.executeStrategy(message);
            }
        }
    }


}