INTERNATIONALTRANSITServiceImp.java 2.9 KB
package com.tianbo.analysis.service.imp;

import com.tianbo.analysis.dao.INTERNATIONALTRANSITMapper;
import com.tianbo.analysis.model.CustomReception;
import com.tianbo.analysis.model.INTERNATIONALTRANSIT;
import com.tianbo.analysis.service.INTERNATIONALTRANSITService;
import com.tianbo.analysis.model.NmmsBase;
import com.tianbo.analysis.tools.AWBTools;
import com.tianbo.util.Date.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Auther: shenhl
 * @Date: 2019/8/28 11:53
 */
@Service
@Slf4j
@Async
public class INTERNATIONALTRANSITServiceImp extends NmmsBase implements INTERNATIONALTRANSITService{

    @Autowired
    INTERNATIONALTRANSITMapper internationaltransitMapper;

    @Override
    public int insertRecept(CustomReception customReception){
        super.insertRecept(customReception);
        log.info("开始解析:运单号 {} 回执类型:{} ",customReception.getImportWaybillMaster(),customReception.getMessageType());
        return master();
    }

    @Override
    public int master() {
        //设置主单回执、航班号、航班日期
        INTERNATIONALTRANSIT inportallocate = new INTERNATIONALTRANSIT();
        inportallocate.setReceiption(customReception.getResponseText());
        String[] flightInfo = AWBTools.splitFlight(customReception.getImportFlightNo());
        inportallocate.setOriginalFlightno(flightInfo[1]);
        inportallocate.setOriginalCarrier(flightInfo[0]);

        inportallocate.setOriginalFlightdate(DateUtil.formatByyyyyMMdd(customReception.getImportFlightDate()));

        //设置主分单的 主单号
        inportallocate.setOriginalBillno(AWBTools.awbFormat(customReception.getImportWaybillMaster()));
        inportallocate.setStatus(AWBTools.transCusRspCode(customReception.getResponseCode()));

        //更新主单回执
        int i = internationaltransitMapper.updateRECEIPTION(inportallocate);
        //获取分单autoid
        List<INTERNATIONALTRANSIT> internationaltransits = internationaltransitMapper.selectAutoIdByAwb(inportallocate);
        if(!internationaltransits.isEmpty()){
            INTERNATIONALTRANSIT internationaltransit = internationaltransits.get(0);
            String autoId = internationaltransit.getAutoid();

            //插入sendlog记录表
            log.info("即将插入日志运单号为:"+awbA+"->autoid="+autoId);
            int ii =coustomAnalysisServiceImp.insertSendlog("MT8205",reception,autoId);

            int iii = shareServiceImp.updateMessages(customReception);
            if (i>0 && ii>0){
                log.info("运单号 {} 国际转运回执更新成功",customReception.getImportWaybillMaster());
                return 1;
            }
            if (iii > 0){
                return 1;
            }
        }
        return 0;
    }
}