IMF_Sender.java 2.9 KB
package com.tianbo.imfClient;

import com.caac.imf.api.IMFClient;
import com.tianbo.imfClient.schedul.IMF_Task;
import com.tianbo.util.Date.DateUtil;
import com.tianbo.util.IO.FileTool;
import com.tianbo.util.XML.MakeImfMeta;
import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;

import java.io.File;
import java.util.Iterator;
import java.util.List;

public class IMF_Sender extends Thread{

    protected static final Logger logger = Logger.getLogger(IMF_Sender.class);
    public static  boolean isrunning;
    private IMFClient client;
    private String content;

    public IMF_Sender(IMFClient client) {
        this.client = client;
    }
    public IMF_Sender(IMFClient client, String content) {
        this.client = client;
        this.content = content;
    }

    @Override
    public void run(){

            String sendDir   = FileTool.readProperties("readDirectory");
            String SNDR = FileTool.readProperties("loginname");
            String TYPE =  FileTool.readProperties("TYPE");
            String STYP =  FileTool.readProperties("STYP");
            String RCVR =  FileTool.readProperties("RCVR");
            String DDTM = DateUtil.getDDTM();
            String SEQN = DDTM;

            if (this.client == null) {
                logger.info("IMFClient has been closed");
                return;
            }
            isrunning=true;
            if(IMF_Task.isSuc){
                if(IMF_Task.LOGIN_OK){
                    while (true){
                        //发送报文
                        List<File> files = FileTool.readDirectoryFiles(new File(sendDir));
                        String sendMsg = "";
                        Iterator<File> it = files.iterator();
                        while(it.hasNext()){
                            File file = it.next();
                            try {
                                sendMsg = MakeImfMeta.makeImfDocument(SNDR,RCVR,TYPE,STYP,DDTM,SEQN,file);
                                String returnMsg = this.client.sendMSG(sendMsg);
                                if(returnMsg.indexOf("<CODE>9</CODE>")>=0){
                                    FileUtils.forceDelete(file);
                                }
                            }catch (Exception e){
                                e.printStackTrace();
                            }
                        }

                        try {
                            Thread.sleep(500L);
                        } catch (InterruptedException var3) {
                            var3.printStackTrace();
                        }
                    }
                }else{
                    logger.info("<<<<<<<<<<<登陆中>>>>>>>>>>>>");
                }
            }



        isrunning=false;
        logger.info("<<<<<<<<<<<发送线程结束>>>>>>>>>>>>");
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}