GatherInfoHandleImplTest.java 6.5 KB
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;
import com.sy.model.GatherInfo;
import com.sy.service.RedisService;
import com.sy.service.router.MessageRouter;
import com.sy.service.router.RouterContext;
import org.apache.log4j.PropertyConfigurator;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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;

@RunWith(SpringRunner.class)
@SpringBootTest
public class GatherInfoHandleImplTest {

    private static final Logger logger = LoggerFactory.getLogger(GatherInfoHandleImplTest.class);

    private AnalysisRoute analysisRoute=new AnalysisRoute();

    private static String AREA_BEIHUO= "4604600000";
    private static String CHANEL_BEIHUO_I1 = "4604601010";
    private static String CHANEL_BEIHUO_E1 = "4604600010";
    private static String CHANEL_BEIHUO_E2 = "4604600011";

    @Autowired
    RedisService redisService;

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

    @Qualifier("X22")
    @Autowired
    MessageRouter messageRouterX22;

    //车牌号
    private String voNo = "豫A61CR7";
    //备案重量
    private String vo_weight = "2000";
    //过卡重量
    private String cross_weight= "2324";
    //场站编号
    private String areaID = "4604600000";
    //通道编号
    private String chnlNo = "4604601010";
    //进出场类型I/E
    private String ie = "I";
    //二维码
    private String barcode = "613f5c";

    //进通道报文
    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>";



    /**
     * 进场测试
     */
    @Test
    public void exportDownload_I() {
        //车牌号
        String voNo = "豫A61CR7";
        //过卡重量
        String cross_weight= "1660";
        //场站编号
        String areaID = AREA_BEIHUO;
        //通道编号
        String chnlNo = CHANEL_BEIHUO_I1;
        //进出场类型I/E
        String ie = "I";
        //二维码
        String barcode = "74b-4bef-b248-80a95358683f";

        logger.error("开始进场测试");
        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);
        GatherInfoAnalysis gatherInfoAnalysis = new GatherInfoAnalysis();
        GatherInfo info = gatherInfoAnalysis.toJavaBean(message);



    }

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

        //车牌号
        String voNo = "豫A61CR7";
        //过卡重量
        String cross_weight= String.valueOf(2000+123);
        //场站编号
        String areaID = AREA_BEIHUO;
        //通道编号
        String chnlNo = CHANEL_BEIHUO_E2;
        //进出场类型I/E
        String ie = "E";
        //二维码
        String barcode = "22a-47a0-a296-1fe53e37a217";

        logger.error("开始出口送货离场测试");
        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);


        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);
            }
        }

    }


}